Коротко про BFD.
Все більш важливою особливістю мережевого обладнання стає швидке виявлення несправності зв'язку між суміжними системами, з метою швидшого створення альтернативних шляхів. Є ситуації, коли використовуються протоколи маршрутизації не відразу виявляють порушення суміжності, в результаті чого, при великому навантаженні на мережу, подібна «неквапливість» може позначитися на якості сервісу. Bidirectional Forwarding Detection (BFD) - це протокол, що працює поверх інших протоколів, що дозволяє скоротити час виявлення проблеми до 50мс. BFD є двостороннім протоколом, тобто вимагає настройки обох маршрутизаторів (Обидва генерують BFD пакети і відповідають один одному). Розглянемо на прикладі, коли може виникнути ця «неквапливість».
Припустимо, у нас є 2 маршрутизатора, з'єднані прямим лінком.
Обрив линка призведе до падіння інтерфейсу, в результаті чого обидва маршрутизатора швидко виявлять проблему і видалять недійсні маршрути. Однак, роутери не завжди з'єднані прямим лінком. Дуже часто, наприклад, на інтернет майданчиках (IX), з'єднання відбувається через проміжний комутатор.
В даному випадку, при падінні линка між другим роутером і комутатором це не буде виявлено першим роутером. Саме в такому випадку видалення маршруту з таблиці маршутізаціі буде залежати від налаштувань використовуваного протоколу. Наприклад, якщо взяти протокол BGP, то цей час може досягати 2-х хвилин.
Як працює протокол BFD.
Кожен з суміжних маршрутизаторів, на яких налаштований протокол BFD, періодично посилає «Hello» повідомлення своєму сусідові. Отримання даного повідомлення означає працездатність каналу в одному певному напрямку, неотримання «Hello» повідомлення говорить про непрацездатність каналу, що і фіксує протокол BFD. За замовчуванням, на непрацездатність каналу вказують 3 поспіль не отриманих пакету «Hello». Кількість пакетів і їх інтервал відправки може бути змінений при конфігурації протоколу.
Налаштування BFD на Juniper MX
Напевно, це найпростіше, що вам доводилося в житті налаштовувати.
Оскільки потреба в BFD виникає в основному при використанні протоколу BGP, налаштуємо BFD поверх BGP.
Для того, щоб включити його роботу, треба вбити команду:
Тут ми встановлюємо мінімальний інтервал в мілісекундах, при якому маршрутизатор передає «Hello» пакети.
Для того, щоб перевірити, чи працює протокол:
Щоб протокол заробив, потрібно, щоб на суміжних маршрутизаторах інтервал відправки hello-пакетів збігався.
Включення балки для діагностики:
У результаті повинно вийти щось типу цього:
Також слід зазначити, що для роботи bfd повинні бути відкриті порти 3785, 3784, 4784, відповідно, якщо у вас налаштований firewall, то треба їх відкрити: