Петля маршрутизации является распространенной проблемой в различных типах сетей , особенно в компьютерных сетях . Они образуются, когда в работе алгоритма маршрутизации возникает ошибка , и в результате в группе узлов путь к определенному пункту назначения образует петлю. [1]
В простейшей версии, петле маршрутизации размера два, узел A думает, что путь к некоторому пункту назначения (назовем его C) проходит через соседний узел, узел B. В то же время узел B думает, что путь к C начинается в узел А.
Таким образом, всякий раз, когда трафик для 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, не реализуют новейшие формы предотвращения петель, а реализуют только средства смягчения последствий, такие как разделение горизонта , отравление маршрута и таймеры удержания .