Настройка BFD для BGP
BFD используется совместно с BGP для ускоренного обнаружения потери связности между соседними маршрутизаторами. В стандартной работе BGP определяет недоступность соседа на основе механизма keepalive и hold timer, значения которых обычно составляют десятки секунд. Это приводит к медленной реакции сети на отказ канала или устройства.
При использовании BFD контроль доступности соседа выносится на отдельный механизм, работающий независимо от BGP. BFD обеспечивает обнаружение отказа за миллисекунды или единицы секунд, после чего BGP немедленно разрывает соседство и инициирует пересчёт маршрутов.
Преимущества использования BFD для BGP:
- сокращение времени сходимости
- повышение отказоустойчивости сети
- более быстрое переключение на резервные маршруты
Сценарии использования:
- магистральные соединения между маршрутизаторами
- сети операторского уровня
- любые топологии, где критично быстрое восстановление маршрутизации при отказах
Необходимые условия и предварительные требования
- IP-связность на уровне интерфейсов
- BGP-соседство между маршрутизаторами
- Поддержка BFD на обеих платформах
- Поддержка интеграции BFD с BGP
- Совпадающая настройка BFD на обоих концах канала
- Согласованные таймеры BFD
Основная информация о применяемых технологиях
BFD (Bidirectional Forwarding Detection)
Это протокол быстрого обнаружения отказов канала между двумя устройствами.
Принцип работы
- Между двумя маршрутизаторами устанавливается BFD-сессия.
- Устройства обмениваются BFD-пакетами с заданным интервалом.
- При отсутствии пакетов в течение согласованного времени:
- BFD объявляет сессию Down
- BGP немедленно завершает TCP-сессию с соседом и удаляет полученные маршруты
Назначение применяемой команды/конфигурации
Для настройки BFD в BGP используются две команды:
| Switch(config)#bfd
auto-linkbundle auto-linkbundle
auto-switch auto-switch
bind Bind
start Start the bfd protocol on this device
stop Stop the bfd protocol on this device
track Track
trap Send the trap when session linkup or linkdown
|
- протокол BFD запускается в глобальном режиме конфигурации:
start - запустить протокол
stop - остановить работу протокола
bind - привязывает работу BFD к конкретному интерфейсу
auto-linkbundle - автоматическая интеграция BFD с агрегированными каналами (LAG)
auto-switch - автоматическое переключение маршрутизации при падении BFD-сессии
track - привязка состояния BFD к механизму отслеживания
trap - отправка SNMP-trap при изменении состояния BFD-сессии
| Switch(config-bgp)#neighbor <IP адрес соседа> bfd
disable Disable BFD function
enable Enable BFD function
|
- включение или отключение механизма BFD для конкретного BGP-соседа
Пример конфигурирования
Первоначальное состояние - два маршрутизатора, соединенные друг другом напрямую. Между ними поднято BGP-соседство. Задача - добавить BFD в BGP для более оперативного обнаружения потери соседства.

Исходная конфигурация:
| hostname SW3
!
router bgp 65300
router-id 3.3.3.3
neighbor 10.34.0.4 remote-as 65400
ipv4-family unicast
neighbor 10.34.0.4 enable
!
interface 10gigaethernet 1/1/0/1
work-mode router
ip address 10.34.0.3/24
!
|
| hostname SW4
!
router bgp 65400
router-id 10.34.0.4
neighbor 10.34.0.3 remote-as 65300
ipv4-family unicast
neighbor 10.34.0.3 enable
!
interface 10gigaethernet 2/1/0/1
work-mode router
ip address 10.34.0.4/24
!
|
Цель:
Настроить BFD для BGP на каждом маршрутизаторе, на тех интерфейсах, на которых установлено BGP-соседство.
Конфигурация на Sw3:
Шаг 1. SW3(config)#bfd start
- запуск протокола BFD глобально
Шаг 2. SW3(config-bgp)#neighbor 10.34.0.4 bfd enable
- привязка BFD к BGP-соседу 10.34.0.4
Конфигурация на Sw4 - аналогичная:
Шаг 1. SW4(config)#bfd start
- запуск протокола BFD глобально
Шаг 2. SW4(config-bgp)#neighbor 10.34.0.3 bfd enable
- привязка BFD к BGP-соседу 10.34.0.3
Полный вывод выполненных конфигураций
Вывод представлен в виде команды show running-config для каждого настраиваемого устройства, в формате для удобного последующего copy-paste.
На Sw3:
| configure
bfd start
router bgp 65300
neighbor 10.34.0.4 bfd enable
end
|
На Sw4:
| configure
bfd start
router bgp 65400
neighbor 10.34.0.3 bfd enable
end
|
Изучение состояния устройства
Настройку и работу BFD можно проверить командами вида show bfd:
| Switch#show bfd
config The config info
interface Interfaces information
session Session information
track Track
|
- команда предназначена для просмотра конфигурации и состояния BFD
config - просмотр конфигурации
interface - параметры настройки BFD на конкретных интерфейсах (для BGP не используется)
session - состояние активных BFD-сессий
Просмотр конфигурации
Просмотреть конфигурацию можно с помощью команд show running-config и show bfd config:
На Sw3:
| SW3#show running-config
!Device running configuration:
!version V1.0.2
!1970/01/06 08:24:04
!
hostname SW3
!
bfd start
!
router bgp 65300
router-id 3.3.3.3
neighbor 10.34.0.4 remote-as 65400
neighbor 10.34.0.4 bfd enable
ipv4-family unicast
neighbor 10.34.0.4 enable
!
interface 10gigaethernet 1/1/0/1
work-mode router
ip address 10.34.0.3/24
!
|
| SW3#show bfd config
Version :BFD_VX2.10.00.00
!
bfd start
|
- BFD сконфигурирован глобально и привязан к BGP соседу 10.34.0.4
На Sw4:
| SW4#show running-config
!Device running configuration:
!version V1.0.2
!1970/01/06 08:51:55
!
hostname SW4
!
bfd start
!
router bgp 65400
router-id 10.34.0.4
neighbor 10.34.0.3 remote-as 65300
neighbor 10.34.0.3 bfd enable
ipv4-family unicast
neighbor 10.34.0.3 enable
!
interface 10gigaethernet 2/1/0/1
work-mode router
ip address 10.34.0.4/24
!
|
| SW4#show bfd config
Version :BFD_VX2.10.00.00
!
bfd start
|
- BFD сконфигурирован глобально и привязан к BGP соседу 10.34.0.3
Просмотр параметров работы
Просмотреть состояние работы BFD, в том числе работу BFD с протоколом BGP, можно следующими командами:
Просмотр параметров в глобальном режиме
На Sw3:
| SW3#show bfd session
Interface State Local-Discr Remote-Discr local-addr remote-addr type
10ge1/1/0/1 up 1 1 10.34.0.3 10.34.0.4 dynamic
|
На Sw4:
| SW4#show bfd session
Interface State Local-Discr Remote-Discr local-addr remote-addr type
10ge2/1/0/1 up 1 1 10.34.0.4 10.34.0.3 dynamic
|
- BFD-сессия активна
- убедитесь, что BFD-сессия установлена между корректными BGP-соседями (параметры local-addr и remote-addr)
Просмотр параметров в режиме соседа
На Sw3:
| SW3#show ip bgp neighbor 10.34.0.4
Neighbor Address:10.34.0.4
Remote AS :65400
BGP version :4
Remote Router ID :10.34.0.4
Current State :Established
State Change :3
Port :Local :48588
Remote :179
Configured:Active Hold Time :90 sec
Keepalive Time :30 sec
Negotiated:Active Hold Time :90 sec
Keepalive Time :30 sec
Multihop EBGP :Disable
Router Reflector Client :No
Community :Not Send
Min ASOrigination Interval :15 sec
Min Advertisement Interval :30 sec
ConnectRetry Timer :20 sec
In Message(from UP) :212
Ou Message(from UP) :213
In Update(from UP) :0
Out Update(from UP) :0
Local IP :10.34.0.3
Last Error :Holdtime Expired
Admin State :Running
Fake AS :65300
In Open :3
Out Open :5
In Notify :0
Out Notify :2
In Keepalive :999
Out Keepalive :998
Local 4bytes AS :Disable
4bytes AS :Disable
TCP Client Only :Disable
TCP Server Only :Disable
HoldTimer Remain :64
KeepTimer Remain :18
TCP Socket :185
BFD ID :1 <--- внутренний идентификатор BFD-сессии
TCP Connect :186
Connect Error :180
TCP Send :1005
TCP Send Bytes :19149
TCP Recv Bytes :19068
TCP Recv Error :2
MD5 Authentication :Not Support
Send Label :disable
Valid Ttl :255
Next Hop Local :disable
Bfd state :enable <--- для данного соседа BFD включен
Public AS Only :disable
Substitute-as :disable
Allow AS Loop :0
UPE State :disable
Vpn instance :N/A
Neighbor optional capabilities:
Route Refresh :Disable
Advertise Route Refresh :Disable
Graceful Restart :Not Support
Restart Timer from Neighbor :0
Graceful Restart Role :Normal
Address family IPv4 Unicast :advertised and received
IPv4 Unicast :advertised and received
Rx Feasible :0
Rx Withdraw :0
Tx Feasible :0
Tx Withdraw :0
Total Route :0
Pending Route :0
Best Route :0
System Route :0
System Pending Route :0
Flood Pending Route :0
Deleted Route :0
|
- обратите внимание на строки
BFD ID :1 и Bfd state :enable
На Sw4:
| SW4#show ip bgp neighbor 10.34.0.3
Neighbor Address:10.34.0.3
Remote AS :65300
BGP version :4
Remote Router ID :3.3.3.3
Current State :Established
State Change :3
Port :Local :179
Remote :48588
Configured:Active Hold Time :90 sec
Keepalive Time :30 sec
Negotiated:Active Hold Time :90 sec
Keepalive Time :30 sec
Multihop EBGP :Disable
Router Reflector Client :No
Community :Not Send
Min ASOrigination Interval :15 sec
Min Advertisement Interval :30 sec
ConnectRetry Timer :20 sec
In Message(from UP) :219
Ou Message(from UP) :219
In Update(from UP) :0
Out Update(from UP) :0
Local IP :10.34.0.4
Last Error :Holdtime Expired
Admin State :Running
Fake AS :65400
In Open :3
Out Open :3
In Notify :0
Out Notify :2
In Keepalive :1004
Out Keepalive :1006
Local 4bytes AS :Disable
4bytes AS :Disable
TCP Client Only :Disable
TCP Server Only :Disable
HoldTimer Remain :65
KeepTimer Remain :6
TCP Socket :186
BFD ID :1 <--- внутренний идентификатор BFD-сессии
TCP Connect :115
Connect Error :113
TCP Send :1011
TCP Send Bytes :19243
TCP Recv Bytes :19163
MD5 Authentication :Not Support
Send Label :disable
Valid Ttl :255
Next Hop Local :disable
Bfd state :enable <--- для данного соседа BFD включен
Public AS Only :disable
Substitute-as :disable
Allow AS Loop :0
UPE State :disable
Vpn instance :N/A
Neighbor optional capabilities:
Route Refresh :Disable
Advertise Route Refresh :Disable
Graceful Restart :Not Support
Restart Timer from Neighbor :0
Graceful Restart Role :Normal
Address family IPv4 Unicast :advertised and received
IPv4 Unicast :advertised and received
Rx Feasible :0
Rx Withdraw :0
Tx Feasible :0
Tx Withdraw :0
Total Route :0
Pending Route :0
Best Route :0
System Route :0
System Pending Route :0
Flood Pending Route :0
Deleted Route :0
|
- обратите внимание на строки
BFD ID :1 и Bfd state :enable
Рекомендации выполнения команд/настроек
Ограничение применения
BFD работает только между напрямую подключёнными соседями.
Согласованность параметров
При несовпадении параметров между соседними маршрутизаторами BFD-сессия не установится.
Нагрузка на CPU
Слишком маленькие интервалы увеличивают нагрузку на CPU.
Ложные срабатывания
При неправильной настройке BFD может вызывать ложные срабатывания.
Стабильные каналы
Применение BFD рекомендуется на стабильных каналах связи, где потеря пакетов минимальна.
Влияние на BGP
Использование BFD не изменяет логику работы BGP и не влияет на процесс выбора маршрутов, а только ускоряет обнаружение недоступности соседа.
История возникновения команды
Версия ПО
Настройки и выводы команд выполнялись на версии ПО V1.0.2
Ссылка на внешнюю документацию
Стандарт
- RFC 5880 — Bidirectional Forwarding Detection (BFD)
- RFC 5881 — BFD для single-hop IPv4/IPv6
- RFC 5882 — Generic application of BFD