Настройка BGP в BIRD2 на Linux VPS
Установка BIRD2 на Debian 12 или Ubuntu 24.04 и настройка BGP-сессии для анонса собственных IP-префиксов. Dual-stack, фильтры экспорта, persistent dummy-интерфейсы, правила nftables и проверка через birdc.
BIRD — демон маршрутизации, который поддерживает CZ.NIC. Версия 2 объединила IPv4 и IPv6 в один процесс, заменила разделенную архитектуру BIRD/BIRD6 из 1.x и добавила мощный язык фильтров. В этом руководстве рассматривается установка BIRD2 на Linux VPS, настройка BGP-сессии с вышестоящим провайдером, анонс ваших IP-префиксов и проверка работоспособности.
Все примеры dual-stack (IPv4 + IPv6). Подставляйте свои ASN, IP-адреса и префиксы вместо плейсхолдеров.
Что нужно перед настройкой BIRD2 для BGP?
Прежде чем редактировать bird.conf, вам нужен ASN, выделенное IP-пространство и провайдер, который предоставляет BGP-сессии на VPS. Без всех трех составляющих BIRD2 нечего анонсировать и некому пировать.
Соберите эти данные у провайдера или из аллокации RIR:
| Параметр | Пример | Где взять |
|---|---|---|
| Ваш ASN | AS65400 | RIPE NCC, ARIN или ваш LIR |
| Ваш IPv4-префикс | 203.0.113.0/24 | Аллокация RIR или PA-назначение от провайдера |
| Ваш IPv6-префикс | 2001:db8:1000::/48 | Аллокация RIR или PA-назначение от провайдера |
| ASN аплинка | AS64496 | Данные BGP-сессии от провайдера |
| IPv4 пира аплинка | 198.51.100.1 | Данные BGP-сессии от провайдера |
| IPv6 пира аплинка | 2001:db8::1 | Данные BGP-сессии от провайдера |
| Ваш IPv4 для пиринга | 198.51.100.2 | Данные BGP-сессии от провайдера |
| Ваш IPv6 для пиринга | 2001:db8::2 | Данные BGP-сессии от провайдера |
| MD5-пароль | (общий секрет) | Согласовывается с провайдером |
Также нужны ROA-записи для ваших префиксов, иначе маршруты не пройдут RPKI-валидацию на downstream-сетях. Настройка описана тут: .
Убедитесь, что провайдер добавил ваши префиксы в свои IRR-фильтры. Без этого анонсы будут отфильтрованы, даже если BGP-сессия поднялась.
VPS с 1 ГБ RAM достаточно для BIRD2 с полной таблицей (больше 1 миллиона IPv4-маршрутов). Если вы принимаете от аплинка только default route, потребление памяти не превысит 100 МБ.
Как установить BIRD2 на Debian 12 и Ubuntu 24.04?
BIRD2 доступен в стандартных репозиториях обоих дистрибутивов. Debian 12 содержит версию 2.0.12, Ubuntu 24.04 — версию 2.14. Обе подходят для базового BGP, но официальный репозиторий CZ.NIC предоставляет BIRD 2.18 (релиз январь 2026) с поддержкой BGP dynamic unnumbered, улучшенной производительностью и последними исправлениями. Для продакшена используйте репозиторий CZ.NIC.
Примечание: CZ.NIC публикует пакеты BIRD2 под именем проекта bird2. Не путайте с проектом bird (только для Debian) или bird3 (BIRD 3.x).
Установка из репозитория CZ.NIC (рекомендуется)
Добавьте официальный репозиторий, затем установите:
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates wget
Импортируйте GPG-ключ CZ.NIC:
sudo wget -O /usr/share/keyrings/cznic-labs-pkg.gpg https://pkg.labs.nic.cz/gpg
Добавьте репозиторий. На Debian 12:
echo "deb [signed-by=/usr/share/keyrings/cznic-labs-pkg.gpg] https://pkg.labs.nic.cz/bird2 bookworm main" | sudo tee /etc/apt/sources.list.d/cznic-labs-bird.list
На Ubuntu 24.04:
echo "deb [signed-by=/usr/share/keyrings/cznic-labs-pkg.gpg] https://pkg.labs.nic.cz/bird2 noble main" | sudo tee /etc/apt/sources.list.d/cznic-labs-bird.list
Установите BIRD2:
sudo apt-get update
sudo apt-get -y install bird2
Установка из стандартных репозиториев
Если предпочитаете пакет из дистрибутива:
sudo apt-get update
sudo apt-get -y install bird2
Проверка установки
bird --version
Ожидаемый вывод (репозиторий CZ.NIC):
BIRD version 2.18
Проверьте, что сервис запущен:
sudo systemctl status bird
BIRD стартует автоматически после установки. Стандартный конфиг в /etc/bird/bird.conf — это заготовка. В следующем разделе вы замените его полностью.
Как устроен bird.conf для BGP?
BGP-ready bird.conf состоит из пяти блоков: глобальные настройки и четыре секции протоколов (device, direct, kernel, bgp). Каждый протокол работает независимо и обменивается данными через таблицы маршрутизации.
Ниже полный bird.conf для dual-stack BGP. Сначала прочитайте его целиком, затем разделы ниже объяснят каждый блок.
sudo cp /etc/bird/bird.conf /etc/bird/bird.conf.bak
sudo tee /etc/bird/bird.conf > /dev/null << 'BIRDCONF'
# /etc/bird/bird.conf - BIRD2 BGP configuration
# Replace all placeholder values with your own
log syslog all;
router id 198.51.100.2;
# Watch interface state changes
protocol device {
scan time 10;
}
# Import connected routes (needed for next-hop resolution)
protocol direct {
ipv4;
ipv6;
interface "dummy0";
interface "eth0";
}
# Sync BIRD routes to kernel routing table
protocol kernel {
ipv4 {
export all;
import all;
};
learn;
scan time 15;
merge paths on;
}
protocol kernel {
ipv6 {
export all;
import all;
};
learn;
scan time 15;
merge paths on;
}
# Define your prefixes
define OWN_V4_PREFIX = 203.0.113.0/24;
define OWN_V6_PREFIX = 2001:db8:1000::/48;
# Export filter: only announce your own prefixes
filter export_bgp_v4 {
if net = OWN_V4_PREFIX then accept;
reject;
}
filter export_bgp_v6 {
if net = OWN_V6_PREFIX then accept;
reject;
}
# Static routes for prefix origination (point to dummy0)
protocol static static_v4 {
ipv4;
route 203.0.113.0/24 via "dummy0";
}
protocol static static_v6 {
ipv6;
route 2001:db8:1000::/48 via "dummy0";
}
# BGP session with upstream provider
protocol bgp upstream1 {
description "Upstream Provider";
local 198.51.100.2 as 65400;
neighbor 198.51.100.1 as 64496;
source address 198.51.100.2;
hold time 90;
keepalive time 30;
password "your-md5-secret";
ipv4 {
import all;
export filter export_bgp_v4;
next hop self;
};
ipv6 {
import all;
export filter export_bgp_v6;
next hop self;
};
}
BIRDCONF
Установите права на конфигурационный файл. Доступ нужен только root и пользователю bird:
sudo chown root:bird /etc/bird/bird.conf
sudo chmod 640 /etc/bird/bird.conf
Проверьте права:
ls -la /etc/bird/bird.conf
Ожидаемый вывод:
-rw-r----- 1 root bird 1247 Mar 19 12:00 /etc/bird/bird.conf
Глобальные настройки
log syslog all;
router id 198.51.100.2;
router id должен быть глобально уникальным IPv4-адресом. Используйте один из назначенных вам IP. BIRD может определить его автоматически по интерфейсам, но явное указание надежнее.
log syslog all отправляет все логи в системный журнал. Читайте их через journalctl -u bird -f. Если нужен подробный вывод при отладке конкретного протокола, временно добавьте debug protocols all;. Уберите после того, как сессия заработает. Debug-логирование генерирует большой объем и может заполнить хранилище журнала.
Protocol device
protocol device {
scan time 10;
}
Отслеживает изменения состояния интерфейсов каждые 10 секунд. Обязателен. Без него BIRD не знает, когда интерфейсы поднимаются или падают.
Protocol direct
protocol direct {
ipv4;
ipv6;
interface "dummy0";
interface "eth0";
}
Импортирует connected-маршруты с перечисленных интерфейсов. BIRD нуждается в них для разрешения next-hop. Указывайте только интерфейсы, задействованные в BGP.
Protocol kernel
Нужны два блока kernel protocol: один для IPv4, другой для IPv6. Каждый синхронизирует свое адресное семейство между таблицей маршрутизации BIRD и таблицей ядра Linux.
merge paths on включает ECMP при наличии нескольких аплинков. learn импортирует существующие маршруты ядра в BIRD.
Что делает блок protocol BGP?
Блок protocol bgp определяет пиринг-сессию с одним соседом. Он указывает, кто вы (local ... as), с кем пирите (neighbor ... as), аутентификацию (password) и какие маршруты обмениваются (блоки каналов).
Основные директивы:
| Директива | Назначение |
|---|---|
local <ip> as <ASN> |
Ваш IP для пиринга и ASN |
neighbor <ip> as <ASN> |
IP и ASN аплинка |
source address <ip> |
Source IP для TCP-соединения |
hold time 90 |
Секунды до объявления пира мертвым (3x keepalive) |
keepalive time 30 |
Интервал между keepalive-сообщениями |
password "..." |
MD5-аутентификация (RFC 2385) |
MD5-аутентификация защищает BGP-сессию от поддельных TCP RST и инъекционных атак. Обе стороны должны настроить одинаковый пароль. Запросите общий секрет у провайдера.
Как настроить dual-stack каналы IPv4 и IPv6?
BIRD2 обрабатывает IPv4 и IPv6 как отдельные каналы внутри одного блока протокола. У каждого канала своя политика import/export:
ipv4 {
import all;
export filter export_bgp_v4;
next hop self;
};
ipv6 {
import all;
export filter export_bgp_v6;
next hop self;
};
import all принимает все маршруты от аплинка. В продакшене стоит фильтровать и входящие маршруты тоже. Примеры импортных фильтров описаны тут: .
next hop self перезаписывает атрибут next-hop на ваш пиринговый IP. Требуется, когда аплинк ожидает, что трафик пойдет через ваш адрес — стандартная схема на VPS.
Если провайдер использует отдельные BGP-сессии для IPv4 и IPv6 (разные IP соседа для каждого адресного семейства), разнесите их в два отдельных блока protocol bgp.
Как написать фильтры экспорта для анонса только своих префиксов?
Фильтры экспорта контролируют, какие маршруты BIRD отправляет аплинку. Неправильно настроенный фильтр может утечь чужие маршруты, что приведет к отключению сессии и, возможно, звонку из NOC вашего аплинка.
Фильтр из конфига выше использует простое совпадение по префиксу:
define OWN_V4_PREFIX = 203.0.113.0/24;
filter export_bgp_v4 {
if net = OWN_V4_PREFIX then accept;
reject;
}
Это принимает только точный /24. Все остальное отклоняется. reject в конце — это default deny.
Для нескольких префиксов используйте set:
define OWN_V4_PREFIXES = [ 203.0.113.0/24, 198.51.100.0/24 ];
filter export_bgp_v4 {
if net ~ OWN_V4_PREFIXES then accept;
reject;
}
Оператор ~ выполняет совпадение по набору префиксов. Также поддерживается нотация диапазонов:
define OWN_V4_PREFIXES = [ 203.0.113.0/24{24,24} ];
{24,24} ограничивает совпадение ровно /24. Используйте {24,28}, если нужно анонсировать more-specific до /28 для traffic engineering.
Для IPv6 применяется тот же шаблон:
define OWN_V6_PREFIXES = [ 2001:db8:1000::/48{48,48} ];
filter export_bgp_v6 {
if net ~ OWN_V6_PREFIXES then accept;
reject;
}
Всегда делайте фильтры экспорта максимально строгими. Анонсируйте только то, что принадлежит вам, с точными длинами префиксов. Отсутствующий reject в конце фильтра заставит BIRD использовать действие по умолчанию для канала, которое может быть accept. Всегда завершайте явным reject.
Можно протестировать фильтр без применения:
sudo birdc eval '203.0.113.0/24 ~ [ 203.0.113.0/24 ]'
Вернет TRUE или FALSE и поможет отладить логику фильтра до перезагрузки конфига.
Как создать persistent dummy-интерфейс для origination префикса?
BGP анонсирует префиксы, которые присутствуют в таблице маршрутизации. Нужен интерфейс с назначенным префиксом, чтобы BIRD мог originate маршрут. Dummy-интерфейс для этого подходит: он всегда поднят, не имеет физического линка и переживает перезагрузку при настройке через systemd-networkd.
Команды ip link add через командную строку теряются при перезагрузке. Используйте systemd-networkd.
Создание .netdev-файла
sudo tee /etc/systemd/network/10-dummy0.netdev > /dev/null << 'EOF'
[NetDev]
Name=dummy0
Kind=dummy
EOF
Создание .network-файла
sudo tee /etc/systemd/network/10-dummy0.network > /dev/null << 'EOF'
[Match]
Name=dummy0
[Network]
Address=203.0.113.1/32
Address=2001:db8:1000::1/128
EOF
Назначьте один /32 (или /128 для IPv6) из вашего выделенного префикса на dummy-интерфейс. Этот адрес не должен быть доступен извне. Он нужен только для того, чтобы у BIRD был connected-маршрут для префикса.
Применение и проверка
sudo systemctl restart systemd-networkd
Подождите несколько секунд, затем проверьте:
ip addr show dummy0
Ожидаемый вывод:
3: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
inet 203.0.113.1/32 scope global dummy0
valid_lft forever preferred_lft forever
inet6 2001:db8:1000::1/128 scope global
valid_lft forever preferred_lft forever
state UNKNOWN для dummy-интерфейса — это нормально. Это означает, что на канальном уровне нет физического носителя для отслеживания, но интерфейс UP и пересылает трафик. MAC-адрес генерируется случайно systemd-networkd и будет отличаться на вашей системе.
Если вы используете ifupdown вместо systemd-networkd (проверьте через networkctl status), может потребоваться сначала включить systemd-networkd:
sudo systemctl enable --now systemd-networkd
Убедитесь, что файлы на месте для следующей перезагрузки:
ls -la /etc/systemd/network/10-dummy0.*
-rw-r--r-- 1 root root 42 Mar 19 12:00 /etc/systemd/network/10-dummy0.netdev
-rw-r--r-- 1 root root 89 Mar 19 12:00 /etc/systemd/network/10-dummy0.network
Как защитить BGP правилами файрвола nftables?
BGP работает на TCP-порту 179. Без правил файрвола любой хост в интернете может попытаться открыть BGP-сессию с вашим роутером. Автоматические сканеры находят открытый порт 179 в течение нескольких часов после запуска VPS. Ограничьте порт 179 только IP-адресами пиров.
nftables может не быть установлен по умолчанию на Ubuntu 24.04. Сначала установите:
sudo apt-get -y install nftables
Создание набора правил nftables
sudo tee /etc/nftables.d/bgp.conf > /dev/null << 'EOF'
table inet bgp_filter {
set bgp_peers_v4 {
type ipv4_addr
elements = { 198.51.100.1 }
}
set bgp_peers_v6 {
type ipv6_addr
elements = { 2001:db8::1 }
}
chain input {
type filter hook input priority 0; policy accept;
# Allow BGP from known peers only
tcp dport 179 ip saddr @bgp_peers_v4 accept
tcp dport 179 ip6 saddr @bgp_peers_v6 accept
# Drop BGP from everyone else
tcp dport 179 drop
}
}
EOF
Добавляйте IP пиров в наборы по мере добавления аплинков. Именованные наборы позволяют обновлять списки пиров без переписывания правил.
Интеграция с существующей конфигурацией nftables
Если у вас уже есть /etc/nftables.conf, включите правила BGP:
echo 'include "/etc/nftables.d/bgp.conf"' | sudo tee -a /etc/nftables.conf
Если nftables еще не настроен, создайте директорию и загрузите конфигурацию:
sudo mkdir -p /etc/nftables.d
sudo systemctl enable --now nftables
enable --now запускает nftables немедленно и гарантирует загрузку при каждой перезагрузке.
Примените правила:
sudo nft -f /etc/nftables.d/bgp.conf
Проверка правил
sudo nft list table inet bgp_filter
Ожидаемый вывод:
table inet bgp_filter {
set bgp_peers_v4 {
type ipv4_addr
elements = { 198.51.100.1 }
}
set bgp_peers_v6 {
type ipv6_addr
elements = { 2001:db8::1 }
}
chain input {
type filter hook input priority filter; policy accept;
tcp dport 179 ip saddr @bgp_peers_v4 accept
tcp dport 179 ip6 saddr @bgp_peers_v6 accept
tcp dport 179 drop
}
}
nft list нормализует priority 0 в priority filter и убирает комментарии. Это ожидаемое поведение.
Проверьте работоспособность правила. С VPS:
sudo nft list ruleset | grep -c "179"
Должно вернуть число, совпадающее с количеством созданных правил для порта 179.
Также убедитесь, что BGP-трафик не блокируется между вами и пиром. Приведенные правила влияют только на входящие соединения. BIRD инициирует исходящие соединения к пиру, которые обрабатываются через established/related conntrack. Если у вас ограничительная политика для исходящего трафика, добавьте:
sudo nft add rule inet bgp_filter input ct state established,related accept
Это должно быть в вашем базовом наборе правил файрвола. Если нет — добавьте перед правилами BGP.
Как применить конфигурацию BIRD2?
Перед загрузкой нового конфига проверьте его:
sudo birdc configure check
Ожидаемый вывод:
BIRD 2.18 ready.
Reading configuration from /etc/bird/bird.conf
Configuration OK
При синтаксических ошибках BIRD сообщит номер строки и проблему. Исправьте и проверьте снова.
Примените конфигурацию:
sudo birdc configure
BIRD 2.18 ready.
Reading configuration from /etc/bird/bird.conf
Reconfigured
Вместо Reconfigured вы можете увидеть Reconfiguration in progress, если BIRD еще обрабатывает изменения протоколов (например, устанавливает новую BGP-сессию). Оба варианта нормальны.
BIRD применяет новый конфиг без перезапуска. Существующие сессии выполняют soft reconfiguration, когда это возможно. Если вы изменили IP соседа или локальный AS, BIRD автоматически перезапустит затронутый протокол.
Для изменений конфигурации, которые не должны прерывать работающие сессии (изменения фильтров, добавление статических маршрутов), используйте:
sudo birdc reload upstream1
Это повторно применяет фильтры import/export к существующим маршрутам без разрыва TCP-сессии.
Как проверить BGP-сессию и анонсы маршрутов?
После применения конфига используйте birdc для проверки состояния сессии и анонса маршрутов. Эти команды — ваши основные инструменты отладки.
| Команда | Что показывает | Когда использовать |
|---|---|---|
show protocols |
Сводка состояния протоколов (Established, Active и т.д.) | Первая проверка после изменения конфига |
show protocols all upstream1 |
Полные детали сессии, счетчики, таймеры | Отладка конкретной сессии |
show route |
Все маршруты в таблице BIRD | Проверка полученных и статических маршрутов |
show route export upstream1 |
Маршруты, отправляемые аплинку | Подтверждение анонса ваших префиксов |
show route for 203.0.113.0/24 |
Лучший маршрут для конкретного префикса | Отслеживание выбора пути |
show route protocol static_v4 |
Маршруты от конкретного протокола | Проверка загрузки статических маршрутов |
Проверка состояния сессии
sudo birdc show protocols
Ожидаемый вывод при нормальной работе:
BIRD 2.18 ready.
Name Proto Table State Since Info
device1 Device --- up 12:00:00.000
direct1 Direct --- up 12:00:00.000
kernel1 Kernel master4 up 12:00:00.000
kernel2 Kernel master6 up 12:00:00.000
static_v4 Static master4 up 12:00:00.000
static_v6 Static master6 up 12:00:00.000
upstream1 BGP --- up 12:00:05.000 Established
Состояние Established означает, что BGP-сессия поднята и маршруты могут обмениваться. Любое другое состояние означает проблему.
Проверка экспортируемых маршрутов
sudo birdc show route export upstream1
BIRD 2.18 ready.
Table master4:
203.0.113.0/24 unicast [static_v4 12:00:00.000] * (200)
dev dummy0
Table master6:
2001:db8:1000::/48 unicast [static_v6 12:00:00.000] * (200)
dev dummy0
Оба ваших IPv4 и IPv6 префикса должны отображаться. Если префикс отсутствует, фильтр экспорта его отклоняет.
Проверка полных данных сессии
sudo birdc show protocols all upstream1
Ищите строку Routes::
Routes: 2 imported, 0 filtered, 2 exported, 0 preferred
Значение exported должно совпадать с количеством префиксов, которые вы анонсируете.
Проверка извне
Используйте публичный looking glass для подтверждения видимости вашего префикса в интернете. Помогут NLNOG Looking Glass или PeeringDB. Найдите свой префикс и проверьте:
- Origin AS совпадает с вашим
- AS path проходит через ваш аплинк
- Нет статуса RPKI invalid
Также проверьте таблицу маршрутизации ядра:
ip route show | grep 203.0.113
ip -6 route show | grep 2001:db8:1000
Вы должны увидеть маршруты, указывающие на интерфейс dummy0.
Как устранять типичные проблемы BIRD2 BGP?
Большинство проблем BGP попадают в несколько категорий. Проверяйте по порядку.
Справочник состояний BGP-сессии
| Состояние | Значение | Что проверять |
|---|---|---|
| Idle | BIRD не пытается подключиться | Ошибка конфигурации, протокол отключен |
| Connect | TCP-соединение в процессе | Файрвол блокирует порт 179, неверный IP соседа |
| Active | TCP-соединение не удалось, повторная попытка | Пир недоступен, файрвол, неверный source address |
| OpenSent | TCP подключен, ожидание ответа OPEN | Несовпадение MD5, неверный ASN на удаленной стороне |
| OpenConfirm | OPEN получен, ожидание KEEPALIVE | Редко наблюдается, обычно быстро переходит дальше |
| Established | Сессия поднята, обмен маршрутами | Работает |
Сессия зависла в Connect или Active
TCP не может достичь порта 179 на пире. Проверьте:
# Can you reach the peer at all?
ping -c 3 198.51.100.1
# Is port 179 open on the peer?
nc -zv 198.51.100.1 179
# Are your nftables rules blocking outbound?
sudo nft list ruleset | grep 179
# Check BIRD logs
journalctl -u bird --since "5 minutes ago" --no-pager
Типичные причины: неверный source address в блоке BGP, пир еще не настроил свою сторону, или файрвол блокирует исходящие соединения.
Сессия зависла в OpenSent
TCP-соединение работает, но BGP OPEN отклоняется. Почти всегда это несовпадение MD5-пароля. Проверьте:
passwordв bird.conf точно совпадает с тем, что дал провайдер (регистрозависимо, следите за пробелами в конце)- Обе стороны согласны по ASN
Проверьте логи:
journalctl -u bird | grep -i "error\|md5\|password"
Префикс не отображается в show route export
Ваш префикс есть в таблице BIRD, но фильтр экспорта его не принимает. Отладьте фильтр:
sudo birdc show route 203.0.113.0/24 all
Проверьте источник маршрута. Если указано [device1] или [direct1] вместо [static_v4], статический маршрут настроен неправильно. Фильтр экспорта совпадает по маршруту, поэтому он должен приходить от правильного протокола.
sudo birdc show route noexport upstream1
Это показывает маршруты, которые фильтр явно отклонил. Если ваш префикс тут — в логике фильтра ошибка.
Префикс анонсирован, но не виден на looking glass
Экспорт работает, но маршрут не распространяется. Возможные причины:
- Нет ROA-записи: ваш аплинк или его пиры фильтруют RPKI-invalid маршруты. Сначала опубликуйте ROA-записи
- IRR-фильтрация: аплинк фильтрует по IRR-объектам (RIPE DB, RADB). Создайте или обновите ваши объекты route/route6
- Лимит max-prefix: аплинк может иметь настроенный лимит префиксов. Свяжитесь с ним, если достигли лимита
- Задержка распространения: конвергенция BGP занимает минуты. Подождите 5-10 минут и проверьте снова
Чтение логов
BIRD пишет в системный журнал. Для отладки в реальном времени:
journalctl -u bird -f
За последний час:
journalctl -u bird --since "1 hour ago" --no-pager
Ищите строки, содержащие Error, BGP, session или Received. Они точно покажут, что делает BIRD и что пошло не так.
BIRD2 vs BIRD 1.x: заметки по миграции
Если вы мигрируете с BIRD 1.x, основные отличия:
- Один демон: BIRD2 заменяет оба
birdиbird6одним процессом - Синтаксис каналов: IPv4 и IPv6 настраиваются как каналы внутри блоков протоколов, а не как отдельные протоколы
- Синтаксис фильтров: в основном совместим, но некоторые функции сменили имена. Проверьте документацию BIRD2 для полного справочника фильтров
- Конфигурационный файл: расположение по умолчанию сменилось с
/etc/bird/bird.confи/etc/bird/bird6.confна единый/etc/bird/bird.conf - Сокет birdc: один сокет
/run/bird/bird.ctlвместо раздельных для IPv4/IPv6
Дальнейшие шаги
После установки BGP-сессии и анонса префиксов стоит настроить:
- RPKI-валидация: настройте RTR для проверки входящих маршрутов по ROA-данным
- Фильтры импорта: фильтруйте входящие маршруты для предотвращения утечек и перехватов маршрутов
- Несколько аплинков: добавьте второй блок
protocol bgpдля резервирования. Используйтеpreferenceдля установки primary/backup - BFD: включите Bidirectional Forwarding Detection для субсекундного переключения между аплинками
- Мониторинг: экспортируйте метрики BIRD в Prometheus через bird_exporter
Альтернативный демон маршрутизации описан тут: . Полный путь BYOIP начинается с руководства по BYOIP.
Copyright 2026 Virtua.Cloud. Vse prava zashchishcheny.
Готовы попробовать?
Разверните свой сервер за секунды. Linux, Windows или FreeBSD.
Смотреть тарифы VPS