воскресенье, августа 07, 2016

Таймеры протокола RIP

Всем привет! Сегодня мы продолжаем мучить протокол RIP, и сегодня мы будем разбираться с работой таймеров данного протокола! Ну что же начинаем!

При прочтение предыдущих статей о протоколе RIP, внимательный читатель, скорее всего, обратил внимание на то, что все события связанные с работой данного протокола (рассылка обновлений, добавление/удаление маршрутов) происходят с определенной периодичностью. Эти периодичности называются таймерами протокола RIP. У протокола RIP существуют следующие виды таймеров:
  • Update - данный таймер отвечает за периодичность рассылки обновлений протокола RIP;
  • Invalid - данный таймер определяет временной интервал между получением  последнего нормального анонса о некоторой сети, и тем что маршрутизатор посчитает сеть временно недоступной и пометит её метрикой 16;
  • Hold Down - таймер запускаемый после перехода маршрута в состояние Invalid.
  • Flush - данный таймер определяет временной интервал между получением последнего нормального обновления о сети, до момента исключения данной сети из таблицы маршрутизации (Вот тут есть пара вопросов, например при работе в Packet Tracer, данный интервал считается от момента срабатывания таймера Invalid).

Узнать значения данных таймеров можно при помощи команды:

Router#show ip protocols

Фрагмент её вывода имеет следующий вид:

Routing Protocol is "rip"
Sending updates every 30 seconds, next due in 24 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set

Таким образом мы получаем что таймеры протокола RIP имеют по умолчанию следующие значения: таймер Update - 30 секунд, таймер Invalid - 180 секунд, таймер Hold Down - 180 секунд, таймер Flush - 240 секунд.

Попробуем проиллюстрировать работу данных таймеров на практике. Для этого будем использовать туже самую сеть, что и в конце вот этой статьи.
Тестовая сеть для работы с таймерами протокола RIP
Тестовая сеть для работы с таймерами протокола RIP
Выполним на маршрутизаторе 0 команду:

Router(config)#service timestamps debug datetime msec
Router#debug ip rip

Последим за ходом рассылки обновлений. Находим строку говорящую о рассылке обновлений, например вот такую: 

RIP: sending  v1 update to 255.255.255.255 via FastEthernet1/0 (172.20.20.1)

И засекаем время до появления точно такого же сообщения на экране

*??? 01, 00:24:15.2424: IP: sending  v1 update to 255.255.255.255 via FastEthernet1/0 (172.20.20.1)
*??? 01, 00:24:15.2424: IP: build update entries
*??? 01, 00:24:15.2424:      network 192.168.1.0 metric 1
*??? 01, 00:24:15.2424:      network 192.168.4.0 metric 1
*??? 01, 00:24:16.2424: IP: received v1 update from 192.168.4.2 on FastEthernet0/1
*??? 01, 00:24:16.2424:      192.168.2.0 in 2 hops
*??? 01, 00:24:16.2424:      192.168.5.0 in 1 hops
*??? 01, 00:24:27.2424: IP: received v1 update from 172.20.20.2 on FastEthernet1/0
*??? 01, 00:24:27.2424:      192.168.2.0 in 1 hops
*??? 01, 00:24:27.2424:      192.168.5.0 in 1 hops
*??? 01, 00:24:42.2424: IP: received v1 update from 192.168.4.2 on FastEthernet0/1
*??? 01, 00:24:42.2424:      192.168.2.0 in 2 hops
*??? 01, 00:24:42.2424:      192.168.5.0 in 1 hops
*??? 01, 00:24:44.2424: IP: sending  v1 update to 255.255.255.255 via FastEthernet0/0 (192.168.1.1)
*??? 01, 00:24:44.2424: IP: build update entries
*??? 01, 00:24:44.2424:      network 172.20.0.0 metric 1
*??? 01, 00:24:44.2424:      network 192.168.2.0 metric 2
*??? 01, 00:24:44.2424:      network 192.168.4.0 metric 1
*??? 01, 00:24:44.2424:      network 192.168.5.0 metric 2
*??? 01, 00:24:44.2424: IP: sending  v1 update to 255.255.255.255 via FastEthernet0/1 (192.168.4.1)
*??? 01, 00:24:44.2424: IP: build update entries
*??? 01, 00:24:44.2424:      network 172.20.0.0 metric 1
*??? 01, 00:24:44.2424:      network 192.168.1.0 metric 1
*??? 01, 00:24:44.2424:      network 192.168.2.0 metric 2
*??? 01, 00:24:44.2424: IP: sending  v1 update to 255.255.255.255 via FastEthernet1/0 (172.20.20.1)

Как видим интервал между рассылкой обновлений приблизительно равен 30 секундам (для таймера рассылки обновлений, допустимы отклонения по времени +-5 секунд).

Теперь проиллюстрируем работу таймера Invalid. Давайте погасим интерфейс Fa0/1 маршрутизатора 2. И после этого начнем постоянно выполнять команду show ip route на маршрутизаторе 0. Через 179 секунд после получения последнего обновления о сети   192.168.2.0, таблица маршрутизации маршрутизатора 0 будет иметь следующий вид:

     172.20.0.0/30 is subnetted, 1 subnets
C       172.20.20.0 is directly connected, FastEthernet1/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
R    192.168.2.0/24 [120/1] via 172.20.20.2, 00:02:59, FastEthernet1/0
C    192.168.4.0/24 is directly connected, FastEthernet0/1
R    192.168.5.0/24 [120/1] via 172.20.20.2, 00:00:08, FastEthernet1/0
                    [120/1] via 192.168.4.2, 00:00:25, FastEthernet0/1


А уже через 1 секунду, вот такой

     172.20.0.0/30 is subnetted, 1 subnets
C       172.20.20.0 is directly connected, FastEthernet1/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
R    192.168.2.0/24 is possibly down, routing via 172.20.20.2, FastEthernet1/0
C    192.168.4.0/24 is directly connected, FastEthernet0/1
R    192.168.5.0/24 [120/1] via 172.20.20.2, 00:00:11, FastEthernet1/0
                    [120/1] via 192.168.4.2, 00:00:00, FastEthernet0/1

Как мы видим по истечении 180 секунд , сеть 192.168.2.0 стала помеченной как возможно недоступная.

Теперь если засечь еще 240 секунд (время таймера Flush), я засекал с помощью секундомера, то мы увидим следующую картину:

     172.20.0.0/30 is subnetted, 1 subnets
C       172.20.20.0 is directly connected, FastEthernet1/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.4.0/24 is directly connected, FastEthernet0/1
R    192.168.5.0/24 [120/1] via 172.20.20.2, 00:00:04, FastEthernet1/0
                    [120/1] via 192.168.4.2, 00:00:24, FastEthernet0/1

Как видим маршрут к сети 192.168.2.0 был исключен из таблицы маршрутизации.

На мой взгляд это немного странно. Так как во всей теории которую я встречал, говорится что отсчет таймера Flush должен начинаться одновременно с отсчетом таймера  Invalid, то есть полное время затрачиваемое на исключение маршрута из таблицы маршрутизации должно составлять не 180+240 секунд, а 180+60, то есть всего 240 секунд. Если у кого то  есть мысли по данному поводу, то прошу ими поделится.

С работой таймере Hold Down, я еще разбираюсь. И этому будет посвящена отдельная статья.

Завершая статью, хочется сказать о том, что значения данных таймеров можно изменять. Задать свои значения таймеров можно при помощи команды:

Router(config)#router rip
Router(config-router)#timers basic 5 60 60 240

Всем удачи до новых встреч.

0 коммент.:

Отправить комментарий