Перейти к содержанию

Настройка BFD для IS-IS

BFD используется совместно с протоколом IS-IS для ускоренного обнаружения потери связности между соседними маршрутизаторами.

В стандартной работе IS-IS определяет недоступность соседа на основе таймеров hello (IIH) и механизма holdtime, что может занимать секунды. При интеграции с BFD контроль доступности соседа передаётся отдельному протоколу, который работает значительно быстрее. BFD обнаруживает потерю связности за счёт частого обмена служебными пакетами и уведомляет IS-IS о разрыве соседства. В результате IS-IS немедленно удаляет соседство и инициирует перерасчёт топологии.

Преимущества использования BFD для IS-IS:

  • сокращение времени сходимости
  • повышение отказоустойчивости сети
  • более быстрое переключение на резервные маршруты

Сценарии использования:

  • магистральные соединения между маршрутизаторами
  • сети операторского уровня
  • любые топологии, где критично быстрое восстановление маршрутизации при отказах

Необходимые условия и предварительные требования

  • IP-связность на уровне интерфейсов
  • IS-IS-соседство между маршрутизаторами
  • Поддержка BFD на обеих платформах
  • Поддержка интеграции BFD с IS-IS
  • Совпадающая настройка BFD на обоих концах канала
  • Согласованные таймеры BFD

Основная информация о применяемых технологиях

BFD (Bidirectional Forwarding Detection)

Это протокол быстрого обнаружения отказов канала между двумя устройствами. BFD функционирует независимо от протоколов маршрутизации.

Принцип работы

  1. Между двумя маршрутизаторами устанавливается BFD-сессия.
  2. Устройства обмениваются BFD-пакетами с заданным интервалом.
  3. При отсутствии пакетов в течение согласованного времени:
    • BFD объявляет сессию Down
    • IS-IS немедленно разрывает сессию с соседом и удаляет полученные от этого соседа LSP

IS-IS (Intermediate System to Intermediate System)

IS-IS является протоколом маршрутизации состояния канала (Link-state), работающим поверх канального уровня и не использующим IP для формирования соседств. Соседи обнаруживаются посредством обмена IIH-пакетами, а информация о топологии распространяется с помощью LSP.

Назначение применяемой команды/конфигурации

Для настройки BFD в IS-IS используются три команды:

1
2
3
4
5
6
7
8
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-сессии
1
2
3
4
5
6
7
Switch(config-vlanif-3000)#bfd
  authentication   Authentication
  bind             Bind
  disable          Disable the bfd protocol on this interface
  enable           Enable the bfd protocol on this interface
  min-echo         Bfd min echo receive timerinterval
  min-tx           Bfd session min send packet timerinterval
  • BFD-сессия создается на виртуальном интерфейсе VLAN <номер VLANа> маршрутизатора, на котором существует или планируется IS-IS-соседство. На соседнем маршрутизаторе тоже должен быть настроен BFD с аналогичными параметрами.
  • enable - включает протокол BFD на этом интерфейсе
  • disable - отключает протокол BFD на этом интерфейсе
  • authentication - включает аутентификацию BFD
  • bind - привязывает BFD к механизму отслеживания
  • min-tx - задаёт минимальный интервал отправки BFD-пакетов, значение по умолчанию 1000 миллисекунд
  • min-echo - задаёт минимальный интервал приёма Echo-пакетов, значение по умолчанию 0 миллисекунд (echo отключено)
1
2
3
Switch(config-vlanif-3000)#isis bfd
  disable   Disable bfd protocol
  enable    Enable bfd protocol
  • Команда используется для включения или отключения интеграции BFD с IS-IS на виртуальном интерфейсе VLAN <номер VLANа>.

Пример конфигурирования

Первоначальное состояние - два маршрутизатора, соединенные друг другом напрямую. Физический канал между ними состоит из двух L2 интерфейсов, которые находятся в режиме access и принадлежат одному общему VLAN-у 3000. IS-IS-соседство между маршрутизаторами установлено между виртуальными интерфейсами VLAN 3000.

Задача - добавить BFD в IS-IS для более оперативного обнаружения потери соседства.

IS-IS-BFD1.png

Исходная конфигурация:

hostname SW1
!
vlan 1,3000
!
router isis 1
 net 49.0001.1111.1111.1111.00
!
interface vlan 3000
 ip address 172.30.0.1/24
 ip router isis 1
!
interface 10gigaethernet 1/0/1
 port link-type access
 port default vlan 3000
!
hostname SW2
!
vlan 1,3000
!
router isis 1
 net 49.0001.2222.2222.2222.00
!
interface vlan 3000
 ip address 172.30.0.2/24
 ip router isis 1
!
interface 10gigaethernet 1/0/1
 port link-type access
 port default vlan 3000
!

Цель: Настроить BFD для IS-IS на каждом маршрутизаторе, на тех виртуальных интерфейсах VLAN, на которых установлено OSPF-соседство, то есть на интерфейсе VLAN 3000 каждого маршрутизатора.

Конфигурация на Sw1:

Шаг 1. SW1(config)#bfd start

  • запуск протокола BFD глобально

Шаг 2.

SW1(config)#interface vlan 3000
SW1(config-vlanif-3000)#bfd enable

  • включение BFD на интерфейсе vlan 3000

Шаг 3. SW1(config-vlanif-3000)#isis bfd enable

  • привязка BFD к IS-IS

Конфигурация на Sw2 - аналогичная:

Шаг 1. SW2(config)#bfd start

  • запуск протокола BFD глобально

Шаг 2.

SW2(config)#interface vlan 3000
SW2(config-vlanif-3000)#bfd enable

  • включение BFD на интерфейсе vlan 3000

Шаг 3. SW2(config-vlanif-3000)#isis bfd enable

  • привязка BFD к IS-IS

Полный вывод выполненных конфигураций

Вывод представлен в виде команды show running-config для каждого настраиваемого устройства, в формате для удобного последующего copy-paste.

На Sw1:

1
2
3
4
5
6
configure
bfd start
interface vlan 3000
 bfd enable
 isis bfd enable
end

На Sw2:

1
2
3
4
5
6
configure
bfd start
interface vlan 3000
 bfd enable
 isis bfd enable
end

Изучение состояния устройства

Настройку и работу BFD можно проверить командами вида show bfd:

1
2
3
4
5
Switch#show bfd
  config      The config info
  interface   Interfaces information
  session     Session information
  track       Track
  • команда предназначена для просмотра конфигурации и состояния BFD
  • config - просмотр конфигурации
  • interface - параметры настройки BFD на конкретных интерфейсах
  • session - состояние активных BFD-сессий

Состояние BFD-сессии между соседними маршрутизаторами IS-IS можно посмотреть командой show ip isis bfd session

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

Просмотреть конфигурацию можно с помощью команд show running-config и show bfd config:

На Sw1:

SW1#show running-config
!Device running configuration:
!version V1.0.2
!1970/02/01 09:47:51
!
hostname SW1
!
vlan 1,3000
!
bfd start
!
router isis 1
 net 49.0001.1111.1111.1111.00
!
interface vlan 3000
 ip address 172.30.0.1/24
 ip router isis 1
 isis bfd enable
 bfd enable
!
interface 10gigaethernet 1/0/1
 port link-type access
 port default vlan 3000
!

1
2
3
4
5
6
7
SW1#show bfd config
Version                         :BFD_VX2.10.00.00
!
bfd start
!
interface vlan 3000
 bfd enable
  • BFD сконфигурирован глобально и на интерфейсе VLAN 3000

На Sw2:

SW2#show running-config
!Device running configuration:
!version V1.0.2
!1970/02/01 10:23:07
!
hostname SW2
!
vlan 1,3000
!
bfd start
!
router isis 1
 net 49.0001.2222.2222.2222.00
!
interface vlan 3000
 ip address 172.30.0.2/24
 ip router isis 1
 isis bfd enable
 bfd enable
!
interface 10gigaethernet 1/0/1
 port link-type access
 port default vlan 3000
!

1
2
3
4
5
6
7
SW2#show bfd config
Version                         :BFD_VX2.10.00.00
!
bfd start
!
interface vlan 3000
 bfd enable
  • BFD сконфигурирован глобально и на интерфейсе VLAN 3000

Просмотр параметров работы

Просмотреть состояние работы BFD, в том числе работу BFD с протоколом IS-IS, можно следующими командами:

Просмотр параметров в глобальном режиме

На Sw1:

1
2
3
SW1#show bfd session
  Interface      State Local-Discr Remote-Discr local-addr                              remote-addr                             type                         
  vlan3000       up    1           1            172.30.0.1                              172.30.0.2                              dynamic                      

  • BFD-сессия активна
  • убедитесь, что BFD-сессия установлена между корректными IS-IS-соседями (параметры local-addr и remote-addr)
1
2
3
4
5
SW1#show ip isis bfd session

Num  Instance   Interface      Type   ID               BFD State  Peer Address     Local Address
1    1          vlan3000       L1     2222.2222.2222   bind       172.30.0.2       172.30.0.1
2    1          vlan3000       L2     2222.2222.2222   bind       172.30.0.2       172.30.0.1
  • BFD-state bind указывает на то, что IS-IS видит рабочую BFD-сессию
  • Поскольку уровень маршрутизации между соседями (level-1 или level-2) не задан явно, то по умолчанию поднимается уровень level-1-2, в результате BFD-соседство также установится для обоих уровней и будет показано отдельно для каждого уровня.

На Sw2:

1
2
3
SW2#show bfd session
  Interface      State Local-Discr Remote-Discr local-addr                              remote-addr                             type                         
  10ge1/0/1      up    1           1            172.30.0.2                              172.30.0.1                              dynamic                      

  • BFD-сессия активна
  • убедитесь, что BFD-сессия установлена между корректными IS-IS-соседями (параметры local-addr и remote-addr)
1
2
3
4
5
6
7
8
SW2#show ip rip bfd session
 Rip Process : 1
 Neighbor       :172.30.0.1
 Interface      :10ge1/0/1                 BFD State      :up
 Min TX         :1000                      Min RX         :1000
 Multiplier     :3                         BFD Local Dis  :1
 LocalIpAdd     :2.0.30.172                RemoteIpAdd    :1.0.30.172
 Diagnostic Info:noDiagnostic
  • BFD-state up указывает на то, что IS-IS видит рабочую BFD-сессию
  • Поскольку уровень маршрутизации между соседями (level-1 или level-2) не задан явно, то по умолчанию поднимается уровень level-1-2, в результате BFD-соседство также установится для обоих уровней и будет показано отдельно для каждого уровня.

Просмотр параметров в режиме интерфейса

На Sw1:

SW1#show bfd interface
  Interface: vlan3000
  Version: v1.0
  Role: active
  Mode: asynch
  Echo State: disabled
  Min out interval(ms): 1000
  Min in interval(ms): 1000
  Multiplier: 3
  Authentication: disabled

  • протокол BFD активен на интерфейсе VLAN 3000 и работает в асинхронном режиме
  • время обнаружения отказа 3 секунды (min interval * multiplier)

На Sw2:

SW2#show bfd interface
  Interface: vlan3000
  Version: v1.0
  Role: active
  Mode: asynch
  Echo State: disabled
  Min out interval(ms): 1000
  Min in interval(ms): 1000
  Multiplier: 3
  Authentication: disabled

  • протокол BFD активен на интерфейсе VLAN 3000 и работает в асинхронном режиме
  • время обнаружения отказа 3 секунды (min interval * multiplier)

Рекомендации выполнения команд/настроек

Прямое подключение

BFD работает только между напрямую подключёнными соседями.

Несовпадение параметров

При несовпадении параметров между соседними маршрутизаторами BFD-сессия не установится.

Нагрузка на CPU

Слишком маленькие интервалы увеличивают нагрузку на CPU.

Ложные срабатывания

При неправильной настройке BFD может вызывать ложные срабатывания.

Стабильность канала

Применение BFD рекомендуется на стабильных каналах связи, где потеря пакетов минимальна.

Влияние на IS-IS

Использование BFD не изменяет алгоритм работы IS-IS и не влияет на расчёт метрик и процесс выбора маршрутов, а только ускоряет обнаружение недоступности соседа.

История возникновения команды

Версия ПО

Настройки и выводы команд выполнялись на версии ПО V1.0.2

Ссылка на внешнюю документацию

Стандарт

  • RFC 5880 — Bidirectional Forwarding Detection (BFD)
  • RFC 5881 — BFD для single-hop IPv4/IPv6
  • RFC 5882 — Generic application of BFD