Пояснение

пятница, 7 февраля 2014 г.

Cisco и таблица маршрутизации.

sh ip route

Известная всем команда выводит текущение содержимое таблицы маршрутизации. Но стоит задуматься, откуда там появляются маршруты? Как они удаляются оттуда? Что вообще черт побери происходит? Рассмотрим ответы на эти вопросы далее.
Итак, Routing Information Base (RIB) - можно сказать краеугольный камень маршрутизации как таковой. Откуда могут появиться данные в RIB?


Различные протоколы маршрутизации могут добавлять информацию в RIB. Каждый интерфейс сам по себе тоже добавляет присоединенную сеть (пометка C - connected). Другими источниками являются PFR (perfomance routing), RRI (reverse-route injection) плюс классические DHCP и PPP IPCP. 

Дополним предыдущий рисунок дополнительными процессами обеспечивающими нормальную работу маршрутизации:

  


RIB передает нужные маршруты при процессе редистрибьюции. Копия RIB передается "вниз", для обеспечения нормальной работы CEF, на рисунке отображены его ключевые компоненты: Forwarding Information Base (FIB) и adjacencies table. 

Как происходит выбор маршрута?

Пусть у нас запущено два процесса маршрутизации EIGRP и OSPF. Как будет выбран маршрут для установки в RIB? Кто вообще решает какой из маршрутов стоит добавить? Точно можно сказать, что это делает не RIB сама по себе. Все маршруты хранящиеся в таблице имеют отметку о родительском процессе маршрутизации. В случае если другой процесс попытается установить совпадающий маршрут, информация об этом событии будет передана родительскому процессу имеющегося маршрута, который уже и будет решать разрешить установку маршрута или нет. Данный процесс указан на рисунке:

  
Родительский процесс производит сравнение только в случае их полной идентичности. Сравнение проводится вполне канонично, по маске, AD, метрике и прочим условиями.

А что если интерфейс упал?

RIB по умолчанию отслеживает падение интерфейсов оповещает об этом процесс динамической маршрутизации и инициирует удаление сначала связанной с ним connected сети, а потом и остальных маршрутов next-hop которых был за этим интерфейсом. К сожалению, удаление с помощью RIB не самый быстрый процесс. К тому же, в некоторых случаях он "залипает" (баг проявлялся на ASR). Для ускорения процесса удаления неактуальных маршрутов в IOS 12.0(26)S  была введена команда:

ip routing protocol purge interface

При использовании которой ответственность за удаление маршрутов перекладывается на процесс маршрутизации, который очевидно быстрее. Команда теперь по умолчанию включена начиная с версии IOS 15.1(2)S.

Комментариев нет:

Отправить комментарий