BGP на выделенном сервере: автономная система для независимости и отказоустойчивости

03.04.2026
18:15


BGP — это не про "у нас серьёзная инфраструктура". Это про конкретную задачу: когда стандартного подключения через провайдера уже не хватает. Один провайдер упал — всё лежит. Нужны свои IP-адреса, которые никуда не денутся — негде взять. Трафик идёт не туда, куда хотелось бы — не управляешь. BGP закрывает именно эти вещи.

Если у вас один сервер и один канал — BGP вам не нужен. Читать дальше незачем, это честно. Если ситуация сложнее — разберём как это работает и что потребуется для настройки.

Что такое BGP и при чём тут автономная система

Когда два устройства в одной сети обмениваются данными — это внутренняя маршрутизация, она работает через OSPF, RIP и подобные протоколы. BGP работает на уровень выше: между отдельными сетями, каждая из которых управляется самостоятельно.

Такая самостоятельная сеть называется автономной системой — AS. У каждой AS есть уникальный номер, ASN. Провайдер — это AS. Крупная компания со своей сетью — тоже AS. Весь интернет — это несколько десятков тысяч таких систем, которые договариваются друг с другом о маршрутах именно через BGP.

Обычному серверу до этого нет дела. Провайдер выдаёт IP из своего пула, объявляет его в сеть, трафик приходит. Вы просто работаете. BGP появляется на горизонте только когда этой схемы начинает не хватать.

Как работает BGP-сессия

BGP-сессия — это TCP-соединение на порту 179 между двумя маршрутизаторами. Называются они соседями (peers или neighbors). Сессия не устанавливается автоматически, как в OSPF: вы явно прописываете IP соседа и его номер AS в конфиге.

После установки сессии начинается обмен маршрутами. Провайдер говорит вам, куда смотреть. Вы говорите провайдеру, какие IP-адреса ваши. Провайдер разносит эту информацию дальше по интернету.

Различают два режима:

eBGP — когда сессия идёт между разными автономными системами. Классический случай: ваш сервер и провайдер.

iBGP — когда нужно синхронизировать маршрутную информацию внутри одной AS между несколькими маршрутизаторами. Актуально при сложной топологии, когда точек присутствия больше одной.

Когда BGP реально нужен

Есть четыре сценария, где без него не обойтись.

Свой блок IP-адресов. PI-адреса (Provider Independent) — это адреса, которые принадлежат вам, а не провайдеру. Получить их можно в региональном регистраторе: RIPE NCC для Европы, ARIN для Северной Америки, APNIC для Азии. Но получить мало — их нужно ещё объявить в интернет. Без BGP-сессии с каким-нибудь провайдером эти адреса нигде не видны. Минимальный объём для объявления — /24 для IPv4, то есть 256 адресов. Блоки меньше этого большинство операторов просто фильтруют и не принимают.

Два провайдера одновременно (multihoming). Один канал упал — трафик ушёл в другой автоматически, клиенты ничего не заметили. Это не то же самое, что резервный канал со статическим маршрутом: там при переключении всегда есть пауза и часто нужно ручное вмешательство. BGP отрабатывает переключение за секунды, прозрачно.

Управление тем, откуда и куда идёт трафик. Исходящий — через более дешёвый канал. Входящий из Европы — через провайдера, который там ближе к аудитории. Это настраивается через атрибуты BGP: LOCAL_PREF, MED, AS_PATH prepending. Без BGP повлиять на входящий трафик практически невозможно.

Anycast. Один и тот же IP-адрес объявляется с нескольких серверов в разных локациях. Пользователь попадает на ближайший. Именно так работают крупные DNS-резолверы и CDN-сети.

Что нужно для подключения

Номер автономной системы. Получается в региональном регистраторе. В RIPE NCC годовой взнос для End-User около 50 EUR плюс разовая регистрация. Новые ASN выдаются 32-битные. Срок — обычно 5-10 рабочих дней с момента оплаты.

Собственный блок IP-адресов. Те же PI-адреса из того же регистратора. Минимум /24 для IPv4 (256 адресов) или /48 для IPv6. Если своего блока нет, некоторые провайдеры дают PA-адреса (Provider Aggregatable) — это адреса из их пула, работать будет, но при смене провайдера их придётся вернуть и поменять везде.

BGP-сессия с провайдером. На выделенных серверах THE.Hosting организация BGP доступна как дополнительная услуга. Детали — в поддержке: support@the.hosting или Telegram @thehosting.

Программный маршрутизатор на сервере. Два варианта, которые используют чаще всего:

BIRD 2 — лёгкий, быстро обрабатывает большие таблицы маршрутов, хорошая документация. Выбор по умолчанию если нет специфических требований.

FRRouting (FRR) — поддерживает больше протоколов маршрутизации, синтаксис похож на Cisco IOS. Удобен тем, кто работал с оборудованием Cisco.

Настройка: BIRD 2 на Debian/Ubuntu

Установка:

apt update && apt install bird2 -y

Базовый конфиг /etc/bird/bird.conf для одной BGP-сессии с провайдером:

log syslog all;
router id 203.0.113.1;

ipv4 table master4;

protocol kernel {
    ipv4 {
        export filter { accept; };
    };
}

protocol device {
    scan time 10;
}

protocol bgp upstream {
    local 203.0.113.1 as 65001;
    neighbor 203.0.113.254 as 12345;

    ipv4 {
        import all;
        export filter {
            if net = 198.51.100.0/24 then accept;
            reject;
        };
    };
}

Замените 203.0.113.1 на IP вашего сервера, 65001 на ваш ASN, 203.0.113.254 и 12345 — на IP и ASN провайдера. Фильтр export пропускает только ваш блок — остальное режет.

Запуск и проверка состояния сессии:

systemctl enable bird && systemctl start bird
birdc show protocols
birdc show protocols upstream

Если сессия установлена, увидите:

Name       Proto      Table      State  Since         Info
upstream   BGP        ---        up     2026-04-03    Established

Таблица принятых маршрутов:

birdc show route

Настройка FRR

apt install frr -y
sed -i 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
systemctl restart frr

Конфигурация через vtysh:

router bgp 65001
 bgp router-id 203.0.113.1
 neighbor 203.0.113.254 remote-as 12345
 !
 address-family ipv4 unicast
  network 198.51.100.0/24
  neighbor 203.0.113.254 activate
 exit-address-family

Сравнение с альтернативами

BGP нужен не всегда. Вот честное сравнение:

Статические маршруты у провайдера. Работает хорошо, пока один провайдер и нет требований к автоматическому переключению. Настраивается за пять минут. Когда канал падает — падаешь вместе с ним.

Failover IP. Один резервный адрес, переключение по запросу или автоматически через API провайдера. Проще BGP, дешевле BGP, но управления маршрутизацией нет никакого.

PA-адреса провайдера. Не нужно регистрировать AS и покупать PI-блок. Всё равно зависишь от конкретного провайдера — уйдёшь, адреса останутся у него.

BGP оправдан если: требования к доступности выше 99.9%, трафик от 1 Гбит/с и важно куда он идёт, несколько точек присутствия, или нужны собственные IP-адреса надолго.

Ошибки, которые встречаются при настройке

Объявить чужой IP-блок. BGP позволяет технически объявить что угодно — система не проверяет право собственности автоматически. Провайдеры защищаются через RPKI и IRR-фильтры, но настроены они не везде. Перед запуском: зарегистрируйте свой блок в базе RIPE или ARIN и создайте ROA-запись в RPKI. Это занимает час, но защищает и вас, и чужие сети.

Принять full table без достаточной памяти. Полная таблица маршрутов BGP — около 900 000 записей для IPv4, и она продолжает расти. Для хранения в памяти BIRD или FRR нужно минимум 2-4 ГБ оперативной памяти только под маршрутизацию. Если full table не нужна — достаточно попросить провайдера отдавать только default route.

Нет фильтра на исходящие анонсы. Без явного фильтра маршрутизатор может начать анонсировать провайдеру всё, что знает — включая маршруты от других соседей. Это BGP route leaking, и последствия могут быть неприятными для чужих сетей. Всегда прописывайте явный фильтр: пропускаем только наш блок, остальное режем.

Агрессивные таймеры. Стандартный keepalive — 60 секунд, holdtime — 180 секунд. На нестабильном канале сессия будет регулярно падать. Таймеры можно уменьшить (например, 10/30), но слишком короткие создадут постоянные флапы. Подбирается под конкретный канал.

Часто задаваемые вопросы

Можно ли обойтись без собственного ASN? Приватные ASN (диапазон 64512-65534) подойдут для BGP-сессии внутри сети одного провайдера. Для анонсирования в публичный интернет нужен зарегистрированный ASN — без этого никто не примет ваши маршруты всерьёз.

Сколько ждать ASN и PI-адреса от RIPE? При правильно оформленных документах — 5-10 рабочих дней. Основная задержка обычно на этапе оформления заявки, а не рассмотрения. Проверьте, что организация корректно зарегистрирована в RIPE NCC как End User.

BIRD или FRR — что выбрать? Если нужен только BGP и нужна скорость работы с большими таблицами — BIRD 2. Если в инфраструктуре уже есть Cisco или команда привыкла к этому синтаксису — FRR удобнее. Принципиальной разницы в надёжности нет.

Заработает ли BGP на VPS? Редко. На большинстве VPS гипервизор не даёт гостевой машине управлять маршрутизацией на уровне сети провайдера. BGP на практике требует выделенного сервера. На выделенных серверах THE.Hosting BGP-сессия организуется как дополнительная услуга — детали в поддержке.

Зачем нужна RPKI-валидация? RPKI позволяет криптографически подтвердить, что вы действительно имеете право анонсировать свой IP-блок. Без ROA-записи часть провайдеров откажется принимать ваши маршруты — а таких провайдеров с каждым годом больше. Настройка делается в личном кабинете RIPE NCC, занимает минут 20.

Организовать BGP на выделенном сервере THE.Hosting можно по запросу — напишите в поддержку support@the.hosting или в Telegram @thehosting.

Выбрать выделенный сервер