Маршрутная петля (routing loops) — это маршруты в сети передачи данных, приводящие на один и тот же маршрутизатор более одного раза. Появление маршрутных петель нежелательно, так как трафику приходится проходить дополнительный путь для того, чтобы прибыть на тот же самый маршрутизатор. Таким образом, происходит задержка трафика, либо трафик не доставляется сетям-получателям. Из-за маршрутных петель сеть передачи данных подвергается избыточной нагрузке, что приводит к немалому числу операций по обработке поступающего трафика на причастных маршрутизаторах.
Метод заключается в том, чтобы анонсировать в соответствующий домен маршрут с высоким значением метрики, заведомо большим, чем максимальная метрика внутренних маршрутов. Тогда, имея два одинаковых маршрута с разными метриками, маршрутизатор установит в таблицу маршрутизации тот, что будет иметь меньшую метрику – по концепции, внутренний.
Недостаток метода заключается в том, что эту самую «заведомо большую метрику» мы выбираем самостоятельно. И если по какой-то причине в домене появится маршрут с большей внутренней метрикой, возникнет та самая петля, от которой мы пытаемся избавиться.
Сложные топологические сети требуют специального инструмента избежания петель маршрутизации таких как Таймеры задержки (или Hold Down). Если роутер получает информацию о сетевом отказе, он игнорирует дальнейшую информацию об этой сети от других роутеров до истечения определенного времени (примерно 240 секунд).
Основная идея:
Недостатки:
Чтобы преодолеть циклы маршрутизации, а также медленную конвергенцию (сходимость), было введено правило «Расщепленный горизонт» (split horizon).
Исключение из правила:
Используя расщепленный горизонт, маршрутизатор не будет посылать информацию о маршрутах, о которых он действительно не знает. Время конвергенции (convergence time) сокращено до времени обнаружения отказа (180 секунд).
При отравлении маршрута используется максимальное количество переходов для остановки петель в сети. Когда маршрутизатор теряет маршрут, он объявляет этот маршрут с количеством переходов, превышающим максимальное количество переходов. Теперь принимающий маршрутизатор находит сеть назначения недоступной и заранее объявляет о ней. Он также отправляет обновление обратно на исходный маршрутизатор, чтобы гарантировать, что маршрут теперь искажен во всей сети. Этот процесс называется отравлением обратным.
Инициированные обновления (triggered update) было введено для ускорения времени конвергенции после обнаружения сетевого отказа роутер немедленно генерирует обновления маршрута (routing-update), чтобы указать этот отказ.
Triggered Update может также использоваться, когда происходят другие события. Инициированные обновления не может избежать циклов маршрутизации (routing-loops), не используя дополнительные методы.
Для того, чтобы уменьшить время переходных процессов в сети можно использовать процедуру управляемых модификаций. Процедура инициированных обновлений предписывает необходимость формирования мгновенных модификаций в том случае, когда происходит изменение состояния сети. Благодаря тому, что управляемые модификации передаются по сети с высокой скоростью, использование этого механизма может предотвратить появление циклических маршрутов. Однако, поскольку процесс передачи управляемых модификаций имеет вполне определенную конченую скорость, сохраняется возможность, что в процессе передачи регулярного update циклический маршрут все-таки возникнет.