- •Протоколы маршрутизации Введение
- •Маршрутизируемые протоколы
- •Протоколы маршрутизации
- •Динамические маршруты
- •Цели протоколов маршрутизации
- •Метрики типы маршрутов и согласование Convergence
- •Маршрутизация на векторе расстояния
- •Маршрутные петли
- •Счет до бесконечности Count to Infinity
- •Пример протокола вектора расстояния: rip
Маршрутизация на векторе расстояния
-
Алгоритмы вектора расстояния передают периодически копии таблиц маршрутов от Маршрутизатора к Маршрутизатору. Эти регулярные обновления между Маршрутизаторами оповещают об изменениях в топологии.
-
Каждое оповещение имеет такие поля:
-
Сетевой адрес Network identity
-
Маска
-
Стоимость
-
-
Промежуточные Маршрутизаторы добавляют стоимость перед отсылкой сообщения.
-
Каждый Маршрутизатор получивший оповещение от своих соседей, включает их в свои таблицы.
-
Маршрутизатор который отослал оповещение, записывается как следующий Next Router.
-
Маршрутизаторы могут иметь множество записей по одному маршруту, но используют тот, который имеет наименьшую стоимость.
-
Таблица маршрутизации периодически обновляется так, что изменения требуют некоторого времени, чтобы достичь последнего Маршрутизатора.
-
Примеры протоколов RIP, IGRP. RIP отсылает обновления каждые 30 sec; IGRP каждые 90 sec.
Маршрутные петли
-
Петли в маршрутах происходят тогда, когда время согласования достаточно большое и некоторые Маршрутизаторы используют устаревшую информацию. Пример:
-
Перед тем как сеть Network 1 выйдет из строя все Маршрутизаторы имели правильное представление от сети. Говорят, что сеть согласована. Допустим, что для Router C предпочтительный путь к сети Network 1 это путь через Router B, и расстояние от Router C до сети Network 1 равно 3.
-
Когда сеть Network1 отказала, Маршрутизатор Router E посылает обновления Маршрутизатору Router A. Маршрутизатор Router A прекращает маршрутизировать пакеты в Network 1, но Routers B, C, и D продолжают отсылать, поскольку они еще не информированы об отказе. Когда Маршрутизатор Router A отсылает обновления, Маршрутизаторы Routers B и D прекращают отсылку в Network 1; однако Router C не получил обновления. Для Маршрутизатора Router C, сеть Network 1 продолжает быть достижимой через Router B.
-
Далее Router C посылает периодическое обновление Маршрутизатору Router D, указывающее путь к сети Network 1 посредством Router B. Router D изменяет свою таблицу для отражения этой доброй но неверной вести и передает далее к Маршрутизатору Router A. Маршрутизатор Router A пересылает информацию Маршрутизатору Routers B и E, и т.д. Любой пакет отправленный в сеть Network 1 будет теперь петлять от Router C к B к A к D и обратно к C.
-
Эти неверные оповещения до тех пор пока все Маршрутизаторы не получат копию плохой маршрутной информации.
Счет до бесконечности Count to Infinity
-
Однако может быть еще хуже.
-
Маршрутизатор Router C имеет только маршрут через B, поскольку некоторое время назад B объявлял маршрут к C. Допустим, что B оповещает "Network 1, стоимость 3".
-
C теперь оповещает "N1, стоимость 4" к D. D в свою очередь "N1, стоимость 5" к A. A далее "N1, стоимость 6" к B.
-
B теперь объявляет "N1, стоимость 7" к C. C отбрасывает старую таблицу и сохраняет новую и начинает объявлять "N1, стоит 8" к D.
-
Этот цикл продолжается неограниченно.
-
Для того чтобы избежать этого определенное значение считается бесконечностью. Как только это значение достигается, маршрутизатор считает, что возникла петля и сеть недоступна. Когда это случается, объявляемый маршрут считается невозможным и никогда не используется. В RIP, это значение 16. Это в частности значит что RIP может использоваться только в сетях с максимум 15 hops.
-
Исключение маршрута в том случае, если метрика равна бесконечности, называется "counting to infinity".
-
Эта техника позволяет избежать циклов, но требует много времени.
Split Horizon
-
Иная возможность возникновения петель - это когда неверная информация отсылается обратно маршрутизатору, которая противоречит информации, которая отослана ранее. Вот как это случается:
-
Router 2 оповещает "Network 1, cost 1" к Router 1, но затем связь с Network 1 разрывается.
-
Router 2 удаляет запись о сети Network 1 из таблицы.
-
по прошествии 30 sec, Router 1 посылает оповещение "Network 1, cost 2" назад к Router 2.
-
Router 1 теперь считает что он может достичь сети Network 1 через Router 2.
-
Router 2 в свою очередь считает что он может достичь сети Network 1 через Router 1. Получена петля.
-
Разделение горизонта Split-horizon предназначен для обработки такой ситуации. Как показано на рис, Если маршрутное обновление получено от Router 2, то Router 1 не может отсылать информацию о сети Network 1 обратно к Router 2.
-
При применении split-horizon, информация, полученная от одного маршрутизатора, никогда не отсылается обратно.
-
Однако, Маршрут полученный от другого Маршрутизатора может быть передана. Например, если имеется второй более длинный путь от Router 1 до сети Network 1, то Router 1 может объявить эту информацию Маршрутизатору Router 2.
Split Horizon with Poison Reverse
-
Модифицированный метод разделения горизонта называется разделение горизонта с запретом обратного (Split Horizon with Poison Reverse).
-
Здесь информация, полученная от одного маршрутизатора, всегда отсылается обратно тому же маршрутизатору, но она обозначается стоимостью бесконечность.
-
Эффект тот же в обоих случаях:- петля между двумя маршрутизаторами не образуется.
Hold-Down Timers
-
Разделение горизонта разбивает петли только между двумя маршрутизаторами. Для больших петель можно использовать метод счета до бесконечности, что очень медленно. Существует иное решение.
-
Счет до бесконечности с включением нескольких маршрутизаторов может быть дополнен при помощи hold-down timers, которые работают так:
-
Если Маршрутизатор не может получить предыдущий маршрут в течение определенного времени hold-down time, Маршрутизатор помечает этот маршрут как невозможный и запускает таймер очистки (flush timer). Маршрутизатор продолжает использовать маршрут, но считает его подозрительным. Этот маршрут также не объявляется соседям.
-
Если до того как истечет flush timer обновление будет получено от того же соседа и сеть будет вновь доступна Маршрутизатор помечает маршрут как достижимый , и удаляет таймер flush timer.
-
Если обновление прибывает от иного соседнего маршрутизатора с метрикой лучшей предыдущей записи, маршрутизатор использует новый маршрут. Старый также отмечен при помощи flush timer.
-
Если в промежутке flush timer обновления получены от иного соседа и метрика хуже предыдущего это обновление игнорируется. Игнорирование таких обновлений предотвращает многозвенные петли и предоставляет больше времени для продвижения информации по сети.
-
Как только таймер flush timer истечет, подозрительный маршрут удаляется.
-
Обычно, таймер hold-down time кратен периоду оповещения (например, в 3 раза), и таймер flush time также кратен периоду оповещения(. 4 раза).
Route Poisoning
-
Предупреждение: Это совсем не то, что poison reverse, несмотря на название.
-
Когда Маршрутизатор имеет прямую линию, которая разрывается он прекращает оповещать маршрут своим соседям. Тут запускается таймер hold-down timers, который приводит к тому, что все Маршрутизаторы считают маршрут подозрительным.
-
Однако они продолжают использовать его до истечения таймера, хотя существует другой маршрут с большей стоимостью.
-
Мы должны дождаться пока все таймеры истекут, чтобы сеть пришла в согласование.
-
Ускорением этого служит отравление маршрутов route poisoning. Вместо того чтобы не объявлять разорванную связь он объявляет ее с бесконечной стоимостью.
-
Вместо того чтобы запускать таймеры, это дает знать соседям что маршрут определенно плох. Они прекращают использовать его и могут использовать любой возможный альтернативный маршрут.
Flash Updates
-
Один из способов увеличить скорость согласования в протоколах Distance Vector это разрешить маршрутизаторам отсылать оповещения немедленно, после того как маршрут отказывает или новые маршруты найдены.
-
Это дает эффект лавинообразного изменения от одного соседа к другому.
-
Недостаток такого подхода для связей `flapping' link (т.е. тех, которые возникают и разрываются), то вся сеть будет наводнена маршрутным трафиком.