В текущей схеме пакеты с PC1 будут идти к PC3 по пути PC1-R1-R3-PC3, поскольку стоимость канала на R1 в сторону R2 выше, чем в сторону R3.
Вывод проверки доступности PC3 с PC1:
На иллюстрации видно, что в процессе проверки потерялось два пакета. В этот момент в таблице маршрутизации R1 изменился маршрут к PC3 — теперь пакеты отправляются в сторону R2 и идут по пути PC1-R1-R2-R3-PC3, что демонстрируется на рисунке ниже. Проверка маршрута к PC3 на R1:
Преобразуем схему с резервированием, установив в разрыв между R1 и R3 коммутатор. Конфигурацию устройств приведём к начальной, т.е. включим интерфейс eth1 на R3 (команда /interface ether set ether1 disabled=no):
Простейшая схема с резервированием с добавлением коммутатора:
Повторим манипуляции: запустим проверку доступности PC3 с PC1, отключив в процессе проверки интерфейс eth3 на SW1:
В процессе проверки доступности, как видно на рисунке, пропало 18 пакетов. Обратив внимание на параметр ttl, можно сказать, что ситуация предыдущего примера повторилась и пакеты стали ходить по пути PC1-R1-R2-R3-PC3, однако на перестроение таблицы маршрутизации R1 потребовалось больше времени.
Данная ситуация возникает потому что при отключении интерфейса на R3, R3 тут же совершает соседям рассылку LSU, в которых сообщает о недоступности канала связи. Данный LSU доходит до R1 через R2 и маршрутизатор корректирует LSDB и FIB, пуская пакеты по другому каналу связи. Во втором примере становится недоступным интерфейс на коммутаторе и маршрутизаторы, участвующие в OSPF об этом не знают. R1 обновит LSDB в тот момент, когда не будет принято ни одного Hello-пакета от R3, т.е. в течении Dead-interval, что в настройках по умолчанию может достигать сорока секунд.
Для того, чтобы уменьшить время обнаружения потери связи на сети, можно использовать протокол BFD.
BFD (Bidirectional Forwarding Detection) — протокол двусторонней проверки связи) – протокол, предназначенный для обнаружения неисправности каналов. В отличие от подобных механизмов в протоколах маршрутизации, является более “лёгким” с точки зрения трафика.
BFD работает независимо от среды, протоколов данных и протоколов маршрутизации. Служебные пакеты BFD помещаются в UDP-дейтаграммы с портом назначения 3784 и динамически определяемым портом отправителя в диапазоне 49152-65535. По сути, является hello-протоколом обнаружения соседа, но с меньшими значениями таймеров и описан в RFC 5880, 5881, 5882.
Настройки BFD расположены в меню /routing bfd interface. Основные параметры настройки:
Параметр |
Описание |
Возможные значения |
Значения по умолчанию |
interface |
список интерфейсов, на которых будет запущен BFD |
— |
all |
interval |
интервал отправки служебных сообщений |
0.01-10 секунд |
0.2 секунды |
min-rx |
минимальный интервал между принимаемыми сообщениями |
0.01-10 секунд |
0.2 секунды |
multiplier |
Число непринятых пакетов, после которых канал будет считаться недоступным |
1-100 пакетов |
5 пакетов |
Вернёмся к схеме
— включим интерфейс eth3 на SW1 и настроим работу протокола BFD, выполнив следующие команды: