Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Комментарий: Миллер

...

BFD (Bidirectional Forwarding Detection) — это протокол, работающий поверх других протоколов, позволяющий сократить время обнаружения проблемы до 50 мс. BFD является двусторонним протоколом, т.е. требует настройки обоих маршрутизаторов (оба маршрутизатора генерируют BFD-пакеты и отвечают друг другу).

По умолчанию,  сессия устанавливается в следующем режиме:

ПротоколРежим
iBGPmulti-hop
eBGPsingle-hop
eBGP multi-hopmulti-hop
OSPFsingle-hop
Static routesingle-hop


Для изменения  поведения необходимо в ручную переопределить сессию, указав необходимый режим. Рассмотрим  на примере : 

Допустим, мы установили iBGP соседство и включили для него BFD:

Блок кода
ESR# show running-config routing bgp 
router bgp 65516
  neighbor 10.100.0.2
    remote-as 65515
    update-source 10.100.0.1
    bfd-enable
    enable
  exit
  enable
exit

ESR# show bfd neighbors  10.100.0.2
Neighbor address:                   10.100.0.2
Local address:                      10.100.0.1
Interface:                          --
Remote discriminator:               3751534121
Local discriminator:                1670865501
State:                              Up
Session type:                       Control
Session mode:                       Single-hop
Local diagnostic code:              No Diagnostic
Remote diagnostic code:             No Diagnostic
Minimal Tx Interval:                300 ms
Minimal Rx Interval:                300 ms
Multiplier:                         5
Actual Tx Interval:                 300 ms
Actual Detection Interval:          1500 ms
Number of transmitted packets:      1149
Number of received packets:         1153
Uptime:                             2m
Client:                             BGP 
Last received packet:
    Desired Min Tx Interval:        300 ms
    Required Min Rx Interval:       300 ms
    Multiplier:                     5

Как видим , по умолчанию, BFD установился  в режиме single-hop.  Переключим режим в multi-mode:

Блок кода
ESR(config)# ip bfd neighbor 10.100.0.2 local-address 10.100.0.1 multihop 
ESR(config)# do commit
ESR(config)# do confirm

Конфигурацию необходимо производить на обоих устройствах. После переустановки сессии ее режим сменится на  multi-hop:

Блок кода
esr-200# sh bfd neighbors  10.100.0.2
Neighbor address:                   10.100.0.2
Local address:                      10.100.0.1
Interface:                          --
Remote discriminator:               3751534121
Local discriminator:                1670865501
State:                              Up
Session type:                       Control
Session mode:                       Multi-hop
Local diagnostic code:              No Diagnostic
Remote diagnostic code:             No Diagnostic
Minimal Tx Interval:                300 ms
Minimal Rx Interval:                300 ms
Multiplier:                         5
Actual Tx Interval:                 300 ms
Actual Detection Interval:          1500 ms
Number of transmitted packets:      1149
Number of received packets:         1153
Uptime:                             1d20h22m
Client:                             BGP 
Last received packet:
    Desired Min Tx Interval:        300 ms
    Required Min Rx Interval:       300 ms
    Multiplier:                     5


Алгоритм настройки

Шаг

Описание

Команда

Ключи

1

Активировать BFD для протокола OSPF на интерфейсе

esr(config-if-gi)# ip ospf bfd-enable


2

Активировать BFD для протокола BGP neighbor на интерфейсе

esr(config-bgp-neighbor)# bfd-enable


3

Задать интервал, по истечении которого происходит отправка BFD-сообщения соседу. Глобально
(не обязательно).

esr(config)# ip bfd idle-tx-interval <TIMEOUT>

<TIMEOUT> – интервал, по истечении которого происходит отправка BFD-пакета, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511
/1700/3100 и [300..65535] для ESR-10/12V(F)/14VF/20/21/100/200

По умолчанию 1 секунда

4

Включить логирование изменений состояния BFD-протокола (не обязательно)

esr(config)# ip bfd log-adjacency-changes


5

Задать минимальный интервал, по истечении которого сосед должен сгенерировать BFD-сообщение.
Глобально
(не обязательно).

esr(config)# ip bfd min-rx-interval <TIMEOUT>

<TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511
/1700/3100 и [300..65535] для ESR-10/12V(F)/14VF/20/21/100/200

По умолчанию:

  • 300 миллисекунд на ESR-10/12V(F)/14VF/20/21/100/200
  • 200 миллисекунд на ESR-1000/1200/1500
    /1511/1700/3100

6

Задать минимальный интервал, по истечении которого происходит отправка BFD-сообщения соседу.
Глобально
(не обязательно).

esr(config)# ip bfd min-tx-interval <TIMEOUT>

<TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511
/1700/3100 и [300..65535] для ESR-10/12V(F)/14VF/20/21/100/200

По умолчанию:

  • 300 миллисекунд на ESR-10/12V(F)/14VF/20/21/100/200
  • 200 миллисекунд на ESR-1000/1200/1500
    /1511/1700/3100

7

Задать число пропущенных пакетов, после достижения которого BFD-сосед считается недоступным. Глобально.

esr(config)# ip bfd multiplier <COUNT>

<COUNT> – число пропущенных пакетов, после достижения которого сосед считается недоступным, принимает значение в диапазоне [1..100].

По умолчанию: 5

8

Запустить работу механизма BFD с определенным IP-адресом.

esr(config)# ip bfd neighbor <ADDR> [ { interface <IF> | tunnel <TUN> } ]
[local-address <ADDR> [multihop]] [vrf <VRF>]

<ADDR> – IP-адрес шлюза, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

<IF> – интерфейс или группы интерфейсов;

<TUN> – тип и номер туннеля;

<VRF> – имя экземпляра VRF, задается строкой до 31 символа;

multihop – ключ для установки TTL=255, для работы механизма BFD через маршрутизируемую сеть.

9

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

(не обязательно).

esr(config)# ip bfd passive


10

Задать интервал, по истечении которого происходит отправка BFD-сообщения соседу.
На интерфейсе
(не обязательно).

esr(config-if-gi)# ip bfd idle-tx-interval <TIMEOUT>

<TIMEOUT> – интервал, по истечении которого происходит отправка BFD-пакета, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511
/1700/3100 и [300..65535] для ESR-10/12V(F)/14VF/20/21/100/200.

По умолчанию: 1 секунда

11

Задать минимальный интервал, по истечении которого сосед должен сгенерировать BFD-сообщение.
На интерфейсе
(не обязательно).

esr(config-if-gi)# ip bfd min-rx-interval <TIMEOUT>

<TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511
/1700/3100 и [300..65535] для ESR-10/12V(F)/14VF/20/21/100/200

По умолчанию:

  • 300 миллисекунд на ESR-10/12V(F)/14VF/20/21/100/200
  • 200 миллисекунд на ESR-1000/1200/1500
    /1511/1700/3100

12

Задать минимальный интервал, по истечении которого происходит отправка BFD-сообщения соседу.
На интерфейсе
(не обязательно).

esr(config-if-gi)# ip bfd min-tx-interval <TIMEOUT>

<TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511
/1700/3100 и [300..65535] для ESR-10/12V(F)/14VF/20/21/100/200

По умолчанию:

  • 300 миллисекунд на ESR-10/12V(F)/14VF/20/21/100/200
  • 200 миллисекунд на ESR-1000/1200/1500
    /1511/1700/3100

13

Задать число пропущенных пакетов, после достижения которого BFD-сосед считается недоступным.
На интерфейсе

(не обязательно).

esr(config-if-gi)# ip bfd multiplier <COUNT>

<COUNT> – число пропущенных пакетов, после достижения которого сосед считается недоступным, принимает значение в диапазоне [1..100].

По умолчанию: 5

14

Перевести BFD-сессию в пассивный режим, то есть BFD-сообщения не будут отправляться до тех пор, пока не будут получены сообщения от BFD-соседа. На интерфейсе
(не обязательно).

esr(config-if-gi)# ip bfd passive


...