FRR - FRRouting Configuration

FRRouting (FRR) - это модульный пакет демонов маршрутизации с открытым исходным кодом, который обеспечивает реализацию основных протоколов маршрутизации в VyOS.

Обзор

VyOS использует FRRouting как control plane для динамической маршрутизации. FRR является форком Quagga и поддерживает современные протоколы маршрутизации с активным развитием и поддержкой сообщества.

Что такое FRR

FRRouting (FRR):

  • IP routing protocol suite для Linux и Unix платформ
  • Включает демоны для BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD и других протоколов
  • Модульная архитектура с независимыми демонами для каждого протокола
  • CLI интерфейс vtysh схожий с Cisco/Juniper
  • Используется в production средах крупных интернет-провайдеров и датацентров

Архитектура FRR

FRR состоит из нескольких независимых демонов:

Основные демоны:

  • zebra - ядро FRR, управляет routing table, взаимодействует с kernel
  • bgpd - демон Border Gateway Protocol
  • ospfd - демон OSPF для IPv4
  • ospf6d - демон OSPF для IPv6
  • ripd - демон RIP для IPv4
  • ripngd - демон RIPng для IPv6
  • isisd - демон IS-IS
  • pimd - демон PIM (Protocol Independent Multicast)
  • ldpd - демон Label Distribution Protocol для MPLS
  • bfdd - демон Bidirectional Forwarding Detection
  • staticd - демон статических маршрутов
  • fabricd - демон OpenFabric

Зачем настраивать FRR

Настройка FRR на уровне системы позволяет:

  • Интегрировать SNMP мониторинг для routing демонов
  • Оптимизировать производительность (file descriptors для BGP)
  • Включить дополнительные функции (BMP, IRDP)
  • Настраивать параметры демонов
  • Получать прямой доступ к vtysh для отладки
  • Импортировать/экспортировать конфигурации FRR

vtysh - CLI Shell

vtysh - это интегрированная оболочка для управления FRR демонами через единый CLI интерфейс.

Основы vtysh

Характеристики:

  • Cisco-подобный CLI интерфейс
  • Единая точка управления всеми FRR демонами
  • Режимы: User EXEC, Privileged EXEC, Configuration
  • Tab-completion и контекстная помощь
  • Автоматическая синхронизация с VyOS конфигурацией

Доступ к vtysh

# Вход в vtysh shell
vtysh

# Прямое выполнение команды
vtysh -c "show ip bgp summary"

# Множественные команды
vtysh -c "configure terminal" -c "router bgp 65001" -c "no synchronization"

Режимы vtysh

User EXEC Mode (просмотр информации):

vyos@router:~$ vtysh
router# show ip route
router# show ip bgp summary
router# show running-config

Privileged EXEC Mode (расширенные команды):

router# show debugging bgp
router# clear ip bgp *
router# write memory

Configuration Mode (изменение конфигурации):

router# configure terminal
router(config)# router bgp 65001
router(config-router)# neighbor 192.168.1.1 remote-as 65002
router(config-router)# exit
router(config)# exit
router# write memory

Основные команды vtysh

# Информация о системе
show version
show daemons

# Routing table
show ip route
show ipv6 route

# BGP
show ip bgp summary
show ip bgp neighbors
show ip bgp

# OSPF
show ip ospf neighbor
show ip ospf database
show ip ospf route

# Интерфейсы
show interface
show interface eth0

# Running configuration
show running-config

# Сохранение конфигурации
write memory
write file

Базовая конфигурация FRR

Просмотр активных демонов

# Показать запущенные FRR демоны
show system frr daemons

# Из vtysh
vtysh -c "show daemons"

Вывод:

zebra: running
bgpd: running
ospfd: running
bfdd: running
staticd: running

Системные параметры FRR

VyOS позволяет настраивать глобальные параметры FRR:

# Базовая конфигурация (обычно не требуется)
# Демоны управляются автоматически через VyOS CLI

# Commit и сохранение
commit
save

SNMP интеграция с FRR

FRR поддерживает SNMP для мониторинга состояния routing протоколов через стандартные MIBs.

Включение SNMP для FRR демонов

# SNMP для BGP
set system frr snmp bgpd

# SNMP для OSPF
set system frr snmp ospfd

# SNMP для OSPF IPv6
set system frr snmp ospf6d

# SNMP для RIP
set system frr snmp ripd

# SNMP для ISIS
set system frr snmp isisd

# SNMP для LDP
set system frr snmp ldpd

# SNMP для Zebra (ядро)
set system frr snmp zebra

commit
save

Проверка SNMP интеграции

# Показать FRR SNMP конфигурацию
show configuration system frr snmp

# Проверка через snmpwalk (с другой машины)
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.15
# 1.3.6.1.2.1.15 - BGP4-MIB

# OSPF MIB
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.14

Доступные MIBs для FRR

BGP4-MIB (1.3.6.1.2.1.15):

  • bgpPeerTable - информация о BGP peers
  • bgpVersion - версия BGP
  • bgpLocalAs - локальный AS
  • bgpPeerState - состояние соседей

OSPF-MIB (1.3.6.1.2.1.14):

  • ospfGeneralGroup - общая информация OSPF
  • ospfAreaTable - таблица areas
  • ospfIfTable - интерфейсы OSPF
  • ospfNbrTable - OSPF neighbors

IP-FORWARD-MIB (1.3.6.1.2.1.4.24):

  • ipCidrRouteTable - routing table entries

File Descriptors Configuration

Для BGP конфигураций с большим количеством peers необходимо увеличить лимит открытых файловых дескрипторов.

Настройка File Descriptors

# Установить максимальное количество file descriptors
set system frr descriptors 4096

commit
save

Когда использовать:

  • BGP router с 500+ peers
  • Route reflector с множественными clients
  • Large-scale BGP deployments
  • Ошибки “Too many open files” в логах

Проверка текущих лимитов

# Проверить текущие limits для FRR процессов
ps aux | grep bgpd
cat /proc/$(pgrep bgpd)/limits | grep "open files"

# Или из vtysh
vtysh -c "show thread cpu"

По умолчанию: 1024 (может быть недостаточно для больших BGP deployments)

Рекомендуемые значения:

  • Малые deployments (< 50 peers): 1024 (default)
  • Средние deployments (50-500 peers): 2048-4096
  • Крупные deployments (500+ peers): 4096-8192

BFD Support

Bidirectional Forwarding Detection (BFD) обеспечивает быстрое обнаружение отказов связи между роутерами.

Включение BFD

# Включить BFD support в FRR
set system frr bfdd

commit
save

После включения bfdd демон будет автоматически запущен и доступен для использования с протоколами маршрутизации (BGP, OSPF, IS-IS).

Использование BFD с протоколами

BGP + BFD:

set protocols bgp system-as 65001
set protocols bgp neighbor 192.168.1.1 remote-as 65002
set protocols bgp neighbor 192.168.1.1 bfd

commit

OSPF + BFD:

set protocols ospf interface eth1 bfd

commit

Проверка BFD

# Статус BFD сессий
show bfd peers

# Детальная информация
vtysh -c "show bfd peers"

# BFD статистика
vtysh -c "show bfd peers counters"

Вывод:

BFD Peers:
	peer 192.168.1.1
		ID: 1
		Remote ID: 2
		Status: up
		Uptime: 1 day 5 hours
		Diagnostics: ok
		Remote diagnostics: ok
		Local timers:
			Transmit interval: 300 ms
			Receive interval: 300 ms
			Multiplier: 3

BMP Support

BGP Monitoring Protocol (BMP) для экспорта BGP информации в системы мониторинга.

Включение BMP

# Включить BMP support
set system frr bmp

commit
save

BMP позволяет экспортировать:

  • BGP RIB (Routing Information Base)
  • BGP updates в реальном времени
  • Peer up/down события
  • Route mirroring для анализа

Настройка BMP (через vtysh)

vtysh
configure terminal
router bgp 65001
  bmp targets bmp-server
    bmp connect 192.168.1.100 port 11019 min-retry 1000 max-retry 10000
    bmp monitor ipv4 unicast post-policy
    bmp monitor ipv4 unicast pre-policy
  exit
exit
write memory
exit

IRDP Support

ICMP Router Discovery Protocol (IRDP) для автоматического обнаружения роутеров в сети.

Включение IRDP

# Включить IRDP support
set system frr irdp

commit
save

IRDP (RFC 1256) позволяет хостам автоматически обнаруживать роутеры в сегменте без необходимости статической конфигурации default gateway.

Настройка IRDP на интерфейсе

# Включить IRDP на интерфейсе eth0
set interfaces ethernet eth0 ip router-advertisement send-advertisements true
set interfaces ethernet eth0 ip router-advertisement max-interval 600
set interfaces ethernet eth0 ip router-advertisement min-interval 200

commit
save

Прямая работа с FRR конфигурацией

Просмотр FRR конфигурации

# Показать running config FRR
vtysh -c "show running-config"

# Конфигурация конкретного протокола
vtysh -c "show running-config bgpd"
vtysh -c "show running-config ospfd"

# Сохраненная конфигурация
vtysh -c "show configuration"

Файлы конфигурации FRR

FRR хранит конфигурации в:

  • /run/frr/frr.conf - основная конфигурация (managed by VyOS)
  • /run/frr/daemons - список активных демонов

Внимание: Прямое редактирование этих файлов не рекомендуется, используйте VyOS CLI.

Экспорт FRR конфигурации

# Экспорт всей конфигурации FRR
vtysh -c "show running-config" > /tmp/frr-config.txt

# Экспорт конфигурации BGP
vtysh -c "show running-config bgpd" > /tmp/bgp-config.txt

# Копирование на удаленный сервер
scp /tmp/frr-config.txt user@192.168.1.100:/backups/

Импорт FRR конфигурации

Внимание: Импорт конфигурации напрямую в FRR может нарушить интеграцию с VyOS. Используйте только для тестирования или миграции.

# Импорт конфигурации в vtysh
vtysh
configure terminal
# Вставить команды конфигурации
exit
write memory
exit

# Или из файла (не рекомендуется)
sudo cp frr-config.txt /run/frr/frr.conf
sudo systemctl restart frr

Отладка и диагностика FRR

Debug режим FRR

# Включить debug для BGP
vtysh
configure terminal
debug bgp updates
debug bgp neighbor-events
exit
exit

# Просмотр debug вывода
show debugging bgp
monitor log

Просмотр логов FRR

# Логи FRR в syslog
show log | match frr
show log | match bgp
show log | match ospf

# Прямой доступ к логам
tail -f /var/log/frr/frr.log

# Логи конкретного демона
journalctl -u frr -f

Статистика FRR

# Статистика демонов
vtysh -c "show thread cpu"

# Memory usage
vtysh -c "show memory"

# Версия FRR
vtysh -c "show version"

Перезапуск FRR демонов

# Перезапуск всего FRR (осторожно!)
sudo systemctl restart frr

# Перезапуск конкретного демона (из vtysh)
vtysh
clear ip bgp *  # Soft reset BGP
exit

# Hard restart демона (осторожно!)
sudo systemctl restart frr

Примеры конфигураций

Пример 1: SNMP мониторинг для BGP (Yandex Cloud)

Сценарий: Yandex Cloud VM с VyOS в качестве BGP роутера. Необходим SNMP мониторинг через Yandex Monitoring или внешний NMS.

# Конфигурация BGP
set protocols bgp system-as 65001
set protocols bgp parameters router-id 10.0.0.1

# ISP peer
set protocols bgp neighbor 84.201.135.210 remote-as 65000
set protocols bgp neighbor 84.201.135.210 address-family ipv4-unicast

# Announce network
set protocols bgp address-family ipv4-unicast network 10.128.0.0/24

# Включить SNMP для FRR BGP
set system frr snmp bgpd
set system frr snmp zebra

# Конфигурация SNMP
set service snmp community monitoring authorization ro
set service snmp community monitoring network 10.128.0.0/24
set service snmp listen-address 10.128.0.5 port 161
set service snmp location 'Yandex Cloud - ru-central1-a'
set service snmp contact 'netadmin@example.com'

commit
save

Проверка:

# На VyOS
show ip bgp summary
show configuration system frr

# С monitoring сервера в Yandex Cloud
snmpwalk -v2c -c monitoring 10.128.0.5 BGP4-MIB::bgpPeerTable
snmpget -v2c -c monitoring 10.128.0.5 BGP4-MIB::bgpLocalAs.0

Мониторинг метрик:

  • BGP peer state (Up/Down)
  • Received prefixes count
  • BGP message counters
  • Last error codes

Пример 2: Настройка File Descriptors для крупного Route Reflector

Сценарий: VyOS Route Reflector с 500+ BGP clients в enterprise сети. Необходимо увеличить лимиты для стабильной работы.

# Увеличить file descriptors
set system frr descriptors 8192

# BGP Route Reflector конфигурация
set protocols bgp system-as 65001
set protocols bgp parameters router-id 10.255.255.1
set protocols bgp parameters cluster-id 10.255.255.1

# Peer group для clients
set protocols bgp peer-group RR-CLIENTS remote-as 65001
set protocols bgp peer-group RR-CLIENTS address-family ipv4-unicast route-reflector-client

# Массовое добавление clients через скрипт не показано
# Примеры clients
set protocols bgp neighbor 10.0.1.1 peer-group RR-CLIENTS
set protocols bgp neighbor 10.0.1.2 peer-group RR-CLIENTS
# ... еще 498 clients

# BFD для быстрого failover
set system frr bfdd
set protocols bgp peer-group RR-CLIENTS bfd

commit
save

Проверка лимитов:

# Проверить применение лимитов
ps aux | grep bgpd
cat /proc/$(pgrep bgpd)/limits | grep "open files"

# Должно показать: Max open files 8192

# Статистика BGP
vtysh -c "show ip bgp summary"
vtysh -c "show thread cpu"

Пример 3: Интеграция BFD для быстрого failover

Сценарий: Dual-homed подключение к двум ISP с требованием быстрого переключения при отказе.

# Включить BFD
set system frr bfdd

# BGP конфигурация
set protocols bgp system-as 65001
set protocols bgp parameters router-id 10.0.0.1

# ISP1 с BFD
set protocols bgp neighbor 203.0.113.1 remote-as 65000
set protocols bgp neighbor 203.0.113.1 description 'ISP1 Primary'
set protocols bgp neighbor 203.0.113.1 address-family ipv4-unicast
set protocols bgp neighbor 203.0.113.1 bfd

# ISP2 с BFD
set protocols bgp neighbor 198.51.100.1 remote-as 65002
set protocols bgp neighbor 198.51.100.1 description 'ISP2 Backup'
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast
set protocols bgp neighbor 198.51.100.1 bfd

# BFD профиль для быстрого обнаружения (300ms)
set protocols bfd profile bgp-peers interval transmit 300
set protocols bfd profile bgp-peers interval receive 300
set protocols bfd profile bgp-peers interval multiplier 3

# Применить профиль
set protocols bgp neighbor 203.0.113.1 bfd profile bgp-peers
set protocols bgp neighbor 198.51.100.1 bfd profile bgp-peers

commit
save

Проверка BFD:

# Статус BFD peers
show bfd peers

# Детальная информация
vtysh -c "show bfd peers detail"

# При отказе линии BGP должен переключиться за ~1 секунду вместо 90+ секунд

Пример 4: Кастомная настройка демонов FRR (VK Cloud)

Сценарий: VK Cloud instance с VyOS для сложной маршрутизации. Требуется тонкая настройка OSPF и SNMP мониторинг.

# OSPF конфигурация
set protocols ospf parameters router-id 10.0.0.1
set protocols ospf area 0.0.0.0 network 192.168.1.0/24
set protocols ospf area 0.0.0.0 network 192.168.2.0/24

# SNMP для OSPF мониторинга
set system frr snmp ospfd
set system frr snmp zebra

# SNMP конфигурация
set service snmp community vkcloud authorization ro
set service snmp community vkcloud network 192.168.1.0/24
set service snmp listen-address 192.168.1.1 port 161

# BFD для OSPF neighbors
set system frr bfdd
set protocols ospf interface eth1 bfd
set protocols ospf interface eth2 bfd

# File descriptors (если много OSPF neighbors)
set system frr descriptors 2048

commit
save

Мониторинг через SNMP:

# С NMS сервера
snmpwalk -v2c -c vkcloud 192.168.1.1 OSPF-MIB::ospfNbrTable
snmpwalk -v2c -c vkcloud 192.168.1.1 OSPF-MIB::ospfIfTable

# Проверка neighbor state
snmpget -v2c -c vkcloud 192.168.1.1 OSPF-MIB::ospfNbrState.192.168.1.2.0

Пример 5: Debug сессии BGP через vtysh

# Вход в vtysh
vtysh

# Включить debug
configure terminal
debug bgp neighbor-events
debug bgp updates in
debug bgp updates out
debug bgp keepalives
exit

# Просмотр debug вывода в реальном времени
terminal monitor

# Или просмотр логов
exit
monitor log

# Отключить debug после диагностики
vtysh
configure terminal
no debug bgp neighbor-events
no debug bgp updates
no debug bgp keepalives
exit
exit

Пример 6: Экспорт и резервное копирование FRR конфигурации

# Создать директорию для backup
mkdir -p /config/backups/frr

# Экспорт всей FRR конфигурации
vtysh -c "show running-config" > /config/backups/frr/frr-config-$(date +%Y%m%d-%H%M%S).txt

# Экспорт по протоколам
vtysh -c "show running-config bgpd" > /config/backups/frr/bgp-config-$(date +%Y%m%d-%H%M%S).txt
vtysh -c "show running-config ospfd" > /config/backups/frr/ospf-config-$(date +%Y%m%d-%H%M%S).txt

# Копирование на удаленный сервер
scp /config/backups/frr/frr-config-*.txt backup@192.168.1.100:/backups/vyos/

# Автоматизация через cron
set system task-scheduler task backup-frr executable path /config/scripts/backup-frr.sh
set system task-scheduler task backup-frr interval 1d

commit
save

Скрипт /config/scripts/backup-frr.sh:

#!/bin/bash
DATE=$(date +%Y%m%d-%H%M%S)
BACKUP_DIR="/config/backups/frr"
mkdir -p $BACKUP_DIR

vtysh -c "show running-config" > $BACKUP_DIR/frr-config-$DATE.txt

# Удалить старые backup (старше 30 дней)
find $BACKUP_DIR -name "frr-config-*.txt" -mtime +30 -delete

Команды проверки

Системные команды

# Показать запущенные FRR демоны
show system frr daemons

# Показать FRR конфигурацию в VyOS
show configuration system frr

# Версия FRR
vtysh -c "show version"

Команды vtysh

# Общая информация
vtysh -c "show version"
vtysh -c "show daemons"
vtysh -c "show memory"

# Routing table
vtysh -c "show ip route"
vtysh -c "show ipv6 route"

# BGP
vtysh -c "show ip bgp summary"
vtysh -c "show ip bgp neighbors"
vtysh -c "show ip bgp"

# OSPF
vtysh -c "show ip ospf neighbor"
vtysh -c "show ip ospf interface"
vtysh -c "show ip ospf database"

# BFD
vtysh -c "show bfd peers"
vtysh -c "show bfd peers counters"

# Интерфейсы
vtysh -c "show interface"
vtysh -c "show interface eth0"

# Running configuration
vtysh -c "show running-config"

SNMP проверки (с удаленного сервера)

# BGP
snmpwalk -v2c -c public 192.168.1.1 BGP4-MIB::bgpPeerTable
snmpget -v2c -c public 192.168.1.1 BGP4-MIB::bgpLocalAs.0
snmpget -v2c -c public 192.168.1.1 BGP4-MIB::bgpPeerState.192.168.1.2

# OSPF
snmpwalk -v2c -c public 192.168.1.1 OSPF-MIB::ospfNbrTable
snmpget -v2c -c public 192.168.1.1 OSPF-MIB::ospfRouterId.0

# IP Forwarding
snmpwalk -v2c -c public 192.168.1.1 IP-FORWARD-MIB::ipCidrRouteTable

Troubleshooting

FRR демон не запускается

Проблема: Демон FRR (bgpd, ospfd) не запускается после конфигурации.

Диагностика:

# Проверить статус FRR
systemctl status frr

# Проверить какие демоны должны быть запущены
show system frr daemons

# Логи FRR
show log | match frr
journalctl -u frr -n 50

# Проверить конфигурацию FRR
vtysh -c "show running-config"

Решение:

# Перезапуск FRR
sudo systemctl restart frr

# Проверить после рестарта
vtysh -c "show daemons"

# Если проблема persist - проверить syntax конфигурации
sudo /usr/lib/frr/frrinit.sh start

SNMP не возвращает данные от FRR

Проблема: SNMP walk не показывает BGP/OSPF данные.

Диагностика:

# Проверить SNMP включен для демона
show configuration system frr snmp

# Проверить SNMP service запущен
show service snmp

# Тест локально
snmpwalk -v2c -c public localhost BGP4-MIB::bgpPeerTable

# Проверить MIB загружены
ls -la /usr/share/snmp/mibs/

Решение:

# Включить SNMP для нужного демона
set system frr snmp bgpd
set system frr snmp zebra

# Убедиться что SNMP service настроен
set service snmp community public authorization ro
set service snmp listen-address 0.0.0.0 port 161

commit
save

# Перезапуск SNMP и FRR
sudo systemctl restart snmpd
sudo systemctl restart frr

File descriptors ошибка в BGP

Проблема: Логи показывают “Too many open files” для bgpd.

Диагностика:

# Проверить текущий лимит
cat /proc/$(pgrep bgpd)/limits | grep "open files"

# Количество BGP peers
vtysh -c "show ip bgp summary" | grep -c "^[0-9]"

# Проверить конфигурацию
show configuration system frr descriptors

Решение:

# Увеличить лимит
set system frr descriptors 4096

commit
save

# Перезапуск BGP (осторожно, разорвет сессии!)
sudo systemctl restart frr

# Проверить применение
cat /proc/$(pgrep bgpd)/limits | grep "open files"

BFD сессии не устанавливаются

Проблема: BFD peers показывают состояние “Down”.

Диагностика:

# Проверить BFD демон запущен
vtysh -c "show daemons" | grep bfdd

# Статус BFD peers
show bfd peers

# Детальная информация
vtysh -c "show bfd peers detail"

# Проверить BFD включен в протоколе
show configuration protocols bgp | match bfd

Решение:

# Убедиться что bfdd включен
set system frr bfdd

# Проверить BFD настроен на neighbor
set protocols bgp neighbor 192.168.1.1 bfd

# Проверить network connectivity
ping 192.168.1.1 count 5

# Проверить firewall не блокирует BFD (UDP 3784)
set firewall ipv4 input filter rule 200 action accept
set firewall ipv4 input filter rule 200 destination port 3784
set firewall ipv4 input filter rule 200 protocol udp

commit
save

vtysh команды не работают

Проблема: vtysh выдает ошибки или не подключается к демонам.

Диагностика:

# Проверить vtysh доступен
which vtysh

# Попытка подключения
vtysh

# Если ошибка - проверить FRR демоны
systemctl status frr

# Проверить socket файлы
ls -la /run/frr/

Решение:

# Перезапуск FRR
sudo systemctl restart frr

# Проверить permissions
sudo chown frr:frrvty /run/frr/*

# Убедиться что пользователь в группе frrvty
groups
# Если нет - добавить
sudo usermod -a -G frrvty vyos

Конфигурация FRR не сохраняется после reboot

Проблема: После перезагрузки VyOS конфигурация FRR сбрасывается.

Причина: Конфигурация в vtysh не синхронизируется с VyOS.

Решение:

  • Всегда используйте VyOS CLI для конфигурации протоколов маршрутизации
  • После изменений через vtysh выполните commit и save в VyOS
  • Не редактируйте /run/frr/frr.conf напрямую
# Правильный способ
configure
set protocols bgp system-as 65001
commit
save

# НЕ рекомендуется
vtysh
configure terminal
router bgp 65001
# Эта конфигурация будет потеряна после reboot

Лучшие практики

1. Конфигурация через VyOS CLI

Всегда используйте VyOS CLI (configure, set, commit) вместо прямого редактирования FRR конфигурации. VyOS автоматически синхронизирует конфигурацию с FRR.

2. SNMP мониторинг

Включайте SNMP для критичных routing демонов:

set system frr snmp bgpd
set system frr snmp ospfd
set system frr snmp zebra

Интегрируйте с NMS для мониторинга:

  • BGP peer states
  • OSPF neighbor adjacencies
  • Routing table changes
  • Protocol errors

3. File Descriptors для BGP

Для BGP deployments с большим количеством peers:

  • < 50 peers: default (1024) достаточно
  • 50-500 peers: 2048-4096
  • 500+ peers: 4096-8192
set system frr descriptors 4096

4. BFD для быстрого failover

Используйте BFD для критичных линков:

set system frr bfdd
set protocols bgp neighbor X.X.X.X bfd
set protocols ospf interface ethX bfd

BFD обеспечивает обнаружение отказа за секунды вместо минут.

5. Backup конфигураций FRR

Регулярно экспортируйте FRR конфигурацию:

vtysh -c "show running-config" > /config/backups/frr-$(date +%Y%m%d).txt

Автоматизируйте через task-scheduler.

6. Debug с осторожностью

Debug режим генерирует большое количество логов:

# Включать только для диагностики
vtysh -c "configure terminal" -c "debug bgp updates"

# Отключать после завершения
vtysh -c "configure terminal" -c "no debug all"

7. Мониторинг производительности

Регулярно проверяйте:

vtysh -c "show thread cpu"  # CPU usage демонов
vtysh -c "show memory"      # Memory usage
show system resources       # Системные ресурсы

8. Документирование изменений

Документируйте все изменения в FRR конфигурации:

  • Дата и время изменения
  • Причина изменения
  • Измененные параметры
  • Результат изменения

9. Testing перед production

Тестируйте изменения FRR в lab environment:

  • Проверяйте convergence time
  • Тестируйте failover scenarios
  • Проверяйте BFD timers
  • Мониторьте resource usage

10. Keep FRR updated

VyOS регулярно обновляет FRR версию. После обновления VyOS:

  • Проверьте compatibility notes
  • Тестируйте в non-production
  • Проверьте что все функции работают
  • Обновите документацию

Интеграция с мониторингом

Zabbix

Template для FRR/BGP мониторинга:

Создайте items для мониторинга:

Name: BGP Peer State - {#PEER_IP}
Type: SNMP agent
Key: bgpPeerState[{#PEER_IP}]
SNMP OID: BGP4-MIB::bgpPeerState.{#PEER_IP}

Triggers:

Name: BGP Peer {#PEER_IP} is down
Expression: {VyOS:bgpPeerState[{#PEER_IP}].last()}≠6
Severity: High

Prometheus + SNMP Exporter

snmp.yml конфигурация:

modules:
  vyos_frr:
    walk:
      - 1.3.6.1.2.1.15  # BGP4-MIB
      - 1.3.6.1.2.1.14  # OSPF-MIB
    metrics:
      - name: bgpPeerState
        oid: 1.3.6.1.2.1.15.3.1.2
        type: gauge
        help: BGP peer connection state
      - name: bgpPeerFsmEstablishedTransitions
        oid: 1.3.6.1.2.1.15.3.1.15
        type: counter
        help: BGP FSM established transitions

Grafana Dashboard:

  • BGP peer status panel
  • Received/Advertised prefixes graph
  • OSPF neighbor states
  • BFD session status

Logging integration

# Отправка FRR логов на удаленный syslog
set system syslog host 192.168.1.100 facility daemon level info

# Локальные логи для quick troubleshooting
set system syslog file frr.log facility daemon level info

commit
save

Заключение

FRRouting в VyOS обеспечивает enterprise-grade routing functionality с богатыми возможностями настройки и мониторинга. Ключевые возможности:

Основные функции:

  • Модульная архитектура с independent демонами для каждого протокола
  • vtysh CLI для прямого управления и отладки
  • SNMP интеграция для мониторинга routing протоколов
  • BFD для быстрого обнаружения отказов
  • Настройка производительности (file descriptors)

Интеграция с мониторингом:

  • SNMP MIBs для BGP, OSPF, IS-IS
  • Syslog для централизованного логирования
  • Prometheus/Grafana для метрик
  • Zabbix/Nagios для alerting

Production использование:

  • Yandex Cloud: BGP peering с SNMP мониторингом
  • VK Cloud: OSPF networks с BFD
  • Enterprise: Route Reflector с thousands of peers
  • ISP: Multi-protocol routing с performance tuning

Правильная конфигурация FRR обеспечивает stable, scalable и observable routing infrastructure. Используйте SNMP мониторинг, включайте BFD для критичных линков, настраивайте file descriptors для large-scale BGP, и регулярно экспортируйте конфигурации для backup.

VyOS abstraction над FRR упрощает управление, но прямой доступ через vtysh остается доступным для advanced troubleshooting и fine-tuning.

Проверено OpenNix LLC · Обновлено