...
После того как BFD сессия установлена, каждая сторона индивидуально вычисляет свои Tx Interval и Detection Interval. Tx Interval выбирается наибольшее значение из локального Tx Interval и удаленного RX интервалInterval. Detection Interval вычисляется по следующей формуле: Detection Interval = remoteMultiplier * MAX( RxLocal и TxRemote|| TxRemote), где remoteMultiplier - значение Multiplier удаленный удаленной стороны, minRxLocal RxLocal - локальный Tx Interval, TxRemote - Tx Interval удаленной стороны.
Локально настроенные таймеры, таймеры удаленной стороны, а также вычисленные таймеры, можно посмотреть следующим образом:
Блок кода |
---|
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 <---- Локальный Tx Interval
Minimal Rx Interval: 300 ms <---- Локальный Rx Interval
Multiplier: 5 <---- Локальный Multiplier
Actual Tx Interval: 300 ms <---- Вычисленный Tx Interval
Actual Detection Interval: 1500 ms <---- Вычисленный Detection Interval
Number of transmitted packets: 21781
Number of received packets: 21804
Uptime: 1d21h54m
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 По умолчанию 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 По умолчанию:
|
6 | Задать минимальный интервал, по истечении которого происходит отправка BFD-сообщения соседу. | esr(config)# ip bfd min-tx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511 По умолчанию:
|
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> } ] | <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 По умолчанию: 1 секунда |
11 | Задать минимальный интервал, по истечении которого сосед должен сгенерировать BFD-сообщение. | esr(config-if-gi)# ip bfd min-rx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511 По умолчанию:
|
12 | Задать минимальный интервал, по истечении которого происходит отправка BFD-сообщения соседу. | esr(config-if-gi)# ip bfd min-tx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне [200..65535] для ESR-1000/1200/1500/1511 По умолчанию:
|
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 |
...