Маршрутная петля

09.03.2021

Маршрутная петля (routing loops) — это маршруты в сети передачи данных, приводящие на один и тот же маршрутизатор более одного раза. Появление маршрутных петель нежелательно, так как трафику приходится проходить дополнительный путь для того, чтобы прибыть на тот же самый маршрутизатор. Таким образом, происходит задержка трафика, либо трафик не доставляется сетям-получателям. Из-за маршрутных петель сеть передачи данных подвергается избыточной нагрузке, что приводит к немалому числу операций по обработке поступающего трафика на причастных маршрутизаторах.

Классификация

  • Короткоживущие маршрутные петли — петли, которые существуют непродолжительно, обычно не более пары минут. Имеют возможность самоустраняться за определённый непродолжительный период времени.
  • Долгоживущие маршрутные петли — петли, которые существуют продолжительно, от нескольких минут до бесконечности. Их возникновение обусловлено ошибками в настройке процесса маршрутизации внутри домена маршрутизации. Могут быть как постоянными, так и периодическими. Постоянные маршрутные петли существуют всё время, тогда как периодические проходят через циклы, исчезая и появляясь вновь. Обычно долгоживущие маршрутные петли не исчезают, если не принять мер к устранению тех ошибок в процессе маршрутизации, которые привели к их возникновению.

Механизмы устранения маршрутных петель

  • Определение максимальной метрики, чтобы предотвратить счёт до бесконечности
  • Таймеры задержки
  • Расщеплённый горизонт
  • «Отравление» маршрута или «отравление» обратного маршрута
  • Инициированные обновления

Метод большей метрики

Метод заключается в том, чтобы анонсировать в соответствующий домен маршрут с высоким значением метрики, заведомо большим, чем максимальная метрика внутренних маршрутов. Тогда, имея два одинаковых маршрута с разными метриками, маршрутизатор установит в таблицу маршрутизации тот, что будет иметь меньшую метрику – по концепции, внутренний.

Недостаток метода заключается в том, что эту самую «заведомо большую метрику» мы выбираем самостоятельно. И если по какой-то причине в домене появится маршрут с большей внутренней метрикой, возникнет та самая петля, от которой мы пытаемся избавиться.

Таймеры задержки

Сложные топологические сети требуют специального инструмента избежания петель маршрутизации таких как Таймеры задержки (или Hold Down). Если роутер получает информацию о сетевом отказе, он игнорирует дальнейшую информацию об этой сети от других роутеров до истечения определенного времени (примерно 240 секунд).

Основная идея:

  • Чтобы сообщение о сетевом отказе распространилось через всю сеть (как волна), требуется определенное количество времени.
  • Благодаря Таймерам задержки, у всех маршрутизаторов появляется шанс получить сообщение о сетевом отказе.

Недостатки:

  • более длинное время конвергенции.

Расщеплённый горизонт

Чтобы преодолеть циклы маршрутизации, а также медленную конвергенцию (сходимость), был введено правило «Расщепленный горизонт» (split horizon).

  • Маршрутизатор не должен направлять update для маршрутов в адрес их источника.
  • Т.е. это правило препятствует тому, чтобы маршрутизатор послал информацию о достижимости сетей в том направлении, откуда она первоначально прибыла.

Исключение из правила:

  • Если маршрутизатор знает лучший путь.

Используя расщепленный горизонт, маршрутизатор не будет посылать информацию о маршрутах, о которых он действительно не знает. Время конвергенции (convergence time) сокращено до времени обнаружения отказа (180 сек).

«Отравление» маршрута или «отравление» обратного маршрута

При отравлении маршрута используется максимальное количество переходов для остановки петель в сети. Когда маршрутизатор теряет маршрут, он объявляет этот маршрут с количеством переходов, превышающим максимальное количество переходов. Теперь принимающий маршрутизатор находит сеть назначения недоступной и заранее объявляет о ней. Он также отправляет обновление обратно на исходный маршрутизатор, чтобы гарантировать, что маршрут теперь искажен во всей сети. Этот процесс называется отравлением обратным .

Инициированные обновления

Инициированные обновления (triggered update) было введено для ускорения времени конвергенции после обнаружения сетевого отказа роутер немедленно генерирует обновления маршрутf (routing-update), чтобы указать этот отказ.

Triggered Update может также использоваться, когда происходят другие события. Инициированные обновления не может избежать циклов маршрутизации (routing-loops), не используя дополнительные методы.

Для того, чтобы уменьшить время переходных процессов в сети можно использовать процедуру управляемых модификаций. Процедура инициированных обновлений предписывает необходимость формирования мгновенных модификаций в том случае, когда происходит изменение состояния сети. Благодаря тому, что управляемые модификации передаются по сети с высокой скоростью, использование этого механизма может предотвратить появление циклических маршрутов. Однако, поскольку процесс передачи управляемых модификаций имеет вполне определенную конченую скорость, сохраняется возможность, что в процессе передачи регулярного update циклический маршрут все - таки возникнет.