Маршрутная петля является распространенной проблемой в различных типах сетей , в частности, компьютерных сетей . Они образуются, когда в работе алгоритма маршрутизации возникает ошибка , в результате чего в группе узлов путь к определенному пункту назначения образует петлю. [1]
В простейшей версии, маршрутной петле размером два, узел A считает, что путь к некоторому пункту назначения (назовем его C) проходит через соседний узел, узел B. В то же время узел B считает, что путь к C начинается в узле A.
Таким образом, всякий раз, когда трафик для C прибывает в A или B, он будет бесконечно петлять между A и B, если только не будет какого-либо механизма, предотвращающего такое поведение.
Например, на этой иллюстрации узел A передает данные узлу C через узел B. Если связь между узлами B и C выходит из строя, а B еще не сообщил узлу A о поломке, узел A передает данные узлу B, предполагая, что связь ABC исправна и имеет самую низкую стоимость. Узел B знает о сломанной связи и пытается достичь узла C через узел A, таким образом отправляя исходные данные обратно узлу A. Кроме того, узел A получает данные, которые он отправил обратно от узла B, и сверяется со своей таблицей маршрутизации. Таблица маршрутизации узла A скажет, что он может достичь узла C через узел B (потому что он все еще не был проинформирован о поломке), таким образом отправляя свои данные обратно узлу B, создавая бесконечный цикл. Эта проблема цикла маршрутизации также называется двухузловым циклом .
Теперь рассмотрим, что произойдет, если одновременно исчезнут как связь от A до C, так и связь от B до C (это может произойти, если узел C вышел из строя). A считает, что C по-прежнему достижим через B, а B считает, что C достижим через A. В простом протоколе достижимости, таком как EGP , цикл маршрутизации будет сохраняться вечно.
В простом дистанционно-векторном протоколе, таком как протокол маршрутной информации , цикл будет сохраняться до тех пор, пока метрики для C не достигнут бесконечности (максимальное количество маршрутизаторов, которые пакет может пройти в RIP, равно 15. Значение 16 считается бесконечностью, и пакет отбрасывается).
В протоколе маршрутизации на основе состояния канала , таком как OSPF или IS-IS , петля маршрутизации исчезает, как только новая топология сети распространяется по всем маршрутизаторам в зоне маршрутизации. При условии достаточно надежной сети это происходит в течение нескольких секунд. [2]
Более новые протоколы маршрутизации на основе векторов расстояний, такие как EIGRP , DSDV и Babel, имеют встроенную профилактику петель: они используют алгоритмы, которые гарантируют, что петли маршрутизации никогда не возникнут, даже временно. Более старые протоколы маршрутизации, такие как RIP и IGRP, не реализуют новейшие формы профилактики петель и реализуют только смягчения, такие как split horizon , route poisoning и holddown timers.