timattt/Cognitia-II

Do not open!

Closed this issue · 0 comments

Основная информация

  • RIP (Routing Information Protocol) - протокол динамической маршрутизации.

  • Дистанционно-векторный алгоритм - алгоритм для определения метрики [роутер, на котором запущен RIP, отправит своим соседям маршрутную информацию (префикс + метрика)](знает информацию только о соседях и насколько далеко до той, или иной подсети)

  • Метрика характеризует удаленность того или иного префикса. Чем больше метрика, тем более удаленная сетка от нас.

  • RIPv1 - протокол классовой маршрутизации (отправляется широковещательно)

  • RIPv2 - протокол бесклассовой маршрутизации IPv4 (в качестве адресата ставит широковещательный адрес [255.255.255.255] или груповой адрес [224.0.0.9])

  • RIPng - протокол бесклассовой маршрутизации IPv6

  • Метрика = кол-во роутеров на пути между узлом-отправителем и узлом-назначения = кол-во L3 переходов.

image

  • Максимальное значение метрики для достижимой сети = 15.
  • Если для какого-то префикса метрика = 16, то такой узел недостижим. Следовательно, максимальный диаметр сети - 15 hop-ов.
  • Метрика обладает свойством аддитивности - для сложного пути метрики складываются.

Пример

image

  • Трафик между A и B в RIP пойдет напрямую через R1 и R2 т.к. кол-во хопов меньше.
  • То, что полоса пропускания R1R2 меньше RIP не учитывает.
  • RIP не учитывает скорости каналов.

Таймер

  • Update-timer - частота отправки обновлений (все префиксы) протокола, по истечению таймера отправится обновление.
    По умолчанию t = 30 сек.
  • Invalid-timer - если обновление о маршруте не будет получено до истечения данного таймера, маршрут будет помечен как invalid (недостижимая сеть), т.е. с метрикой = 16. По умолчанию t = 180 сек.
  • Flush-timer - маршрут, который оказался invalid не удаляется из таблицы маршрутизации сразу, а только если не пришло обновление во время данного таймера, который запускается после update таймера. По умолчанию t = 240 сек.
  • Holdown-timer - запуск таймера произойдет после того, как маршрут был помечен, как недоступный (после invalid). До истечения данного таймера маршрут будет находиться в памяти для предотвращения образования маршрутной петли. (роутер отправляет информацию соседям о том, что этот префикс недостижим) По умолчанию t = 180 сек.

Пример

image

Проблема

  • Проблема в медленной сходимости. Сходимость - реагирование на изменения в сети. Бывает такое, что RIP очень долго сходится.

image

  • Что происходит:
  1. R2 знает маршрут до сети A с метрикой 2.
  2. Если разорвать кабель между A и R1, то на R1 исчезнет префикс A, R1 объявит в сторону R2, что префикса нет, но R2 сообщает, что этот префикс через R2 (хоть и с метрикой 2 доступен)
  3. Начинается обмен сообщениями с увеличением метрики
  4. И так, пока метрика не станет 16. (count to infinity)

Оптимизации

  • Метод расщепления горизонта [split horizon] - роутер не отправит update обратно через тот же интерфейс, через который он его получил.

image

R2 отправит update только на R3 (что есть метрика A = 1). На R1 R2 update не отправляет, иначе будет циклическая ситуация.

  • Poison reverse (усиление оптимизации расщепления горизонта) - в сторону интерфейса, от которого мы получили лучший маршрут (в сторону R1), мы обратно отправим этот же префикс с метрикой 16.

  • Route poisoning - когда понимаем, что какая-то сеть недостижима, то не просто исключаем этот префикс из update-ов, а начинаем рассылать update об этом префиксе с метрикой = 16. Тогда не надо ждать invalid timer.

  • Triggered update - обновления отправляются сразу при изменении маршрута (только о появившихся), вместо того, чтобы ожидать, когда истечет update timer.

  • update о появившихся префиксах быстро распространяется по сети

  • RIP сходится медленно в случае пропадания сети, а в случае появления - быстро

На границе классовых сетей

image

image

  • Роутер, на котором работал RIP выполняет автоматическую суммаризацию до сети класса (в сторону R2 от R1 будет update о сети A вида 10.0.0.0/8)
  • Admin distance (RIP) = 120. () и () - два равноправных маршрута с одинаковой метрикой - оба попадают в таблицу маршрутизации
  • R2 выполняет балансировку: часть трафика пойдет в сторону R1 налево, часть в сторону R2 направо. Это называется ECMP - балансировка по множеству путей с одинаковой стоимостью. Т.е. если B захочет связаться с A, то A получит только 1/2 данных, а еще 1/2 уйдем на C.
  • Поэтому, если ПК старше, не нужно отключать автоматическую суммаризацию, чтобы R1 и R3 отправлял настоящий маршрут 10.0.1.0/24, а не пытался его подогнать до размера классового. Иначе 50% пакетов улетит не туда.