В сетях, использующих дистанционно-векторную маршрутизацию, таблица маршрутизации (routing table) может обновляться как периодически, так и при изменении топологии соединений. При обновлении таблиц маршрутизации от протокола маршрутизации требуется достаточная эффективность. По мере обнаружения новых сетей обновления маршрутизации систематически передаются от одного маршрутизатора другому. Дистанционно-векторные алгоритмы требуют, чтобы каждый маршрутизатор рассылал копию своей таблицы маршрутизации смежным устройствам (adjacent neighbors). Смежное устройство — это маршрутизатор следующего перехода на подключенном к устройству канале. В таблицах маршрутизации содержится информация об общей стоимости маршрута, определяемой используемой метрикой, и логический адрес анонсирующего сеть маршрутизатора для маршрута к каждой сети.
Три способа предотвращения петель:
1) Расщепление горизонта (Split Horizon). Другой возможный источник петли в маршрутизации возникает в том случае, когда маршрутизатору переслана неверная информация, противоречащая правильной, которую он первоначально распространил. Как показано на рис. 18.5, при этом происходит описанный ниже процесс, который и создает проблему петли маршрутизации.
1. Маршрутизатор А посылает маршрутизаторам Б и Г обновление, в котором указывается, что есть 1 неработоспособна.
2. Однако маршрутизатор В передает маршрутизатору Б другое сообщение, в котором указывается, что сеть 1 доступна через маршрутизатор Г с расстоянием, равным четырем переходам. Такое действие не нарушает правил расщепления горизонта.
3. После получения последнего сообщения маршрутизатор Б неправильно заключает, что у маршрутизатора В по-прежнему имеется действительный маршрут к сети 1, хотя он гораздо менее предпочтителен для метрики. Маршрутизатор Б отсылает сообщения об обновлении маршрутизатору А, извешая его о новом маршруте к сети 1.
4. Получив его, устройство А делает вывод о том, что оно может переслать информацию в сеть 1 через маршрутизатор Б. В свою очередь маршрутизатор Б заключает, что он может посылать информацию в сеть 1 через маршрутизатор В, а маршрутизатор В решает, что он может послать информацию в сеть 1 через маршрутизатор Г. В такой ситуации любой пакет будет двигаться по кольцевому маршруту (петле) между этими маршрутизаторами.
5. Расщепление горизонта пытается предотвратить такую ситуацию. Согласно этому методу, при поступлении сообщения об обновлении маршрутов для сети 1 от маршрутизатора А маршрутизаторы Б и Г не могут посылать информацию о сети 1 в обратном направлении, т.е. маршрутизатору А, как показано на рис. 18.5. Таким образом, расщепление горизонта (split horizon) не позволяет распространять неверную информацию маршрутизации и уменьшает объем передаваемых служебных сообщений.
2) Удаление маршрута в обратном направлении (route poisoning) используется различными дистанционно-векторными протоколами для предотвращения больших петель маршрутизации и предоставления явной информации о маршрутах в тех случаях, когда подсеть или сеть недостижимы. Предположим, на всех маршрутизаторах на рис. 18.6 включен механизм обратного удаления маршрутов. После получения информации маршрутизатором One о сети А от маршрутизатора Two устройство Оnе объявляет сеть А недостижимой через свои каналы к маршрутизаторам Two и Three. Если маршрутизатор Three имеет какой-либо маршрут к сети А через маршрутизатор Оnе, он удаляет этот маршрут, поскольку получил сообщение о недостижимости этой сети.
3) Зацикливания можно избежать путем использования таймеров удержания информации (holddown timer). Правильная последовательность действий при этом описана ниже.
1. Когда маршрутизатор получает от соседнего устройства обновление маршрутов, указывающее, что ранее доступная сеть стала неработающей, он помечает этот маршрут как недоступный и запускает таймер.
2. Если до истечения времени таймера от того же соседнего устройства поступает новое сообщение-обновление, в котором указывается, что вышедшая из строя есть вновь доступна, то маршрутизатор помечает сеть как доступную и отключает таймер удержания информации.
3. Если же новое обновление поступает от другого соседнего маршрутизатора, и указанная в нем метрика лучше первоначально зарегистрированной для данной сети, то маршрутизатор помечает сеть как доступную и отключает таймер.
4. Если до истечения времени таймера удержания информации от иного соседнего маршрутизатора поступает новое обновление и указанная в нем метрика для данной сети хуже первоначально зарегистрированной, сообщение обновления игнорируется. В такой Ситуаций игнорирование сообщений об обновлениях предоставляет больше времени для распространения по всей сети информации об изменениях в топологии сети, как показано на рис. 18.8.