2 min read

BGP на FreeBSD: Настройка маршрутизации с BIRD2 на Vultr

Настройка BGP (Border Gateway Protocol) на Vultr — это переход на «высший пилотаж» в управлении сетью. Это позволяет вам анонсировать собственные IP-префиксы или использовать Anycast для отказоустойчивости.

BGP — это протокол, который связывает интернет воедино. Для обычного пользователя это звучит сложно, но для нас это инструмент, позволяющий управлять своим сетевым пространством. На Vultr вы можете использовать BGP для анонсирования своих IP-адресов или создания отказоустойчивых систем.

В этой статье мы разберем, как установить и настроить BIRD2 на FreeBSD для работы с BGP сессией от Vultr.


Подготовка: Включаем BGP в панели Vultr

Перед тем как лезть в консоль, необходимо подготовить «землю»:

  1. Зайдите в панель управления Vultr.
  2. Перейдите в раздел Settings -> BGP.
  3. Нажмите кнопку Enable BGP.
  4. Там же вы найдете свои данные: Your ASNVultr Neighbor IP и BGP Password. Эти данные нам понадобятся для конфига.

Шаг 1: Установка BIRD2

На FreeBSD BIRD2 ставится из портов или пакетов. Мы выберем пакеты для скорости:

Bash

pkg update
pkg install bird2

Добавим службу в автозагрузку:

Bash

sysrc bird_enable="YES"

Шаг 2: Настройка BIRD2 (bird.conf)

Конфигурация BIRD2 существенно отличается от первой версии. Основной файл находится по адресу /usr/local/etc/bird.conf.

Очистите файл и приведите его к следующему виду (подставьте свои данные из панели Vultr):

Фрагмент кода

# Лог и идентификатор сервера
log syslog all;
router id <ВАШ_ВНЕШНИЙ_IP>;

# Протокол Device сканирует интерфейсы системы
protocol device {
    scan time 10;
}

# Протокол Direct импортирует маршруты напрямую подключенных сетей
protocol direct {
    ipv4;
    interface "vtnet*";
}

# Протокол Kernel управляет таблицей маршрутизации FreeBSD
protocol kernel {
    ipv4 {
        export all;   # Отправлять маршруты из BIRD в ядро ОС
        import none;  # Не забирать системные маршруты в BIRD
    };
    learn;
}

# Описание BGP сессии с Vultr
protocol bgp vultr {
    description "Vultr BGP Peer";
    local as <ВАШ_ASN>;
    neighbor <VULTR_NEIGHBOR_IP> as 64512; # 64512 - стандартный ASN Vultr
    password "<ВАШ_BGP_PASSWORD>";

    ipv4 {
        import all;    # Принимать маршруты от Vultr (Default Route)
        export all;    # Анонсировать свои маршруты
    };
}

Шаг 3: Настройка системы

Чтобы BGP маршруты корректно работали, убедитесь, что в /etc/rc.conf включен форвардинг (как мы делали для VPN):

Bash

sysrc gateway_enable="YES"
sysctl net.inet.ip.forwarding=1

Шаг 4: Запуск и проверка

Запускаем BIRD2:

Bash

service bird start

Теперь самое интересное — проверка статуса сессии. Используйте встроенную утилиту birdc:

Bash

birdc show protocols

Если в колонке State вы видите Established, поздравляю — ваша BGP сессия в воздухе!

Для детальной проверки анонсов:

Bash

birdc show route protocol vultr

Зачем это пилоту и трейдеру?

  1. Anycast: Вы можете развернуть два VPS (например, в Европе и Сингапуре) с одним и тем же IP. Пользователь автоматически попадет на ближайший сервер.
  2. Свой IP-ресурс: Если у вас есть своя сеть (/24), вы можете "перевозить" её от провайдера к провайдеру, не меняя настройки своих скриптов и торговых терминалов.
  3. Гибкость: Вы сами решаете, куда пойдет ваш трафик, что особенно полезно при работе из мест со сложной топологией сети, таких как Ирак.

Clear skies and stable routes!