Опубликован: 11.02.2017 | Доступ: свободный | Студентов: 2762 / 706 | Длительность: 13:28:00
Лекция 3:

Динамическая маршрутизация

3.2. Протокол RIP

Протокол RIP для своей работы использует алгоритм Беллмана-Форда. Функционирование алгоритма рассмотрено на примере сети из четырех последовательно соединенных маршрутизаторов ( рис. 3.2), где Сеть 1 непосредственно присоединена к маршрутизатору А, поэтому метрика пути к Сети 1 из А равна 0. Протокол RIP каждые 30 сек. рассылает обновления.

Сеть последовательно соединенных маршрутизаторов

Рис. 3.2. Сеть последовательно соединенных маршрутизаторов

В исходном состоянии у маршрутизаторов нет никакой информации о доступных маршрутах к сетям. После конфигурирования адресной информации и активации интерфейсов в таблице маршрутизации объявляются прямо присоединенные сети. Например, таблица маршрутизации R-А ( рис. 3.2) содержит маршруты к двум прямо присоединенным сетям, а R-B - к трем присоединенным сетям:

R-А>show ip route
...
Gateway of last resort is not set

C     192.168.10.0/24 is directly connected, FastEthernet0/0
C    200.5.5.0/24 is directly connected, Serial1/1


R-B>show ip route
...
Gateway of last resort is not set

C 192.168.20.0/24 is directly connected, FastEthernet0/0
C    200.5.5.0/24 is directly connected, Serial1/2
C    200.6.6.0/24 is directly connected, Serial1/1
  

Метрика прямо присоединенных маршрутов равна 0 (количество переходов = 0).

Конфигурирование протокола RIP

Конфигурирование протокола RIP производится путем использования команды router rip и сообщения протоколу адресов непосредственно присоединенных сетей. При обмене маршрутной информацией между маршрутизаторами обновления передаются через интерфейсы прямо присоединенных сетей и адреса этих сетей объявляются соседям. Поэтому маршрутизаторы последовательно получают от соседей информацию о всех доступных сетях автономной системы.

Обмен маршрутной информацией протокол RIP производит периодически каждые 30 секунд. Таким образом, спустя некоторое время таблица маршрутизации каждого маршрутизатора будет содержать не только информацию о непосредственно присоединенных сетях, но и о путях к удаленным сетям. Ниже приведен пример конфигурирования протокола RIPv1 на маршрутизаторе R-В сети рис. 3.2.:

	R-В(config)#router rip
	R-В(config-router)#network 200.5.5.0
	R-В(config-router)#network 200.6.6.0  
	R-В(config-router)#network 192.168.20.0
    

В приведенном примере по командам network перечислены три сети, непосредственно присоединенные к маршрутизатору. Их адреса передаются через все интерфейсы соседним маршрутизаторам. Другие маршрутизаторы конфигурируется аналогично.

Для отключения протокола RIP используется команда:

	R-В(config)#no router rip
    

Согласно алгоритма Беллмана-Форда маршрутизатор А посылает маршрутизатору В информацию о пути в Сеть 1, при этом добавляется 1 к значению вектора расстояния, т.е. метрика увеличивается до единицы. Таким образом, в таблице маршрутизации В будет информация, что расстояние до Сети 1 равно одному переходу [120/1]:

R-B#showiproute
...
Gateway of last resort is not set

R  192.168.10.0/24 [120/1] via 200.5.5.11, 00:00:02, Serial1/2
C  192.168.20.0/24 is directly connected, FastEthernet0/0
C  200.5.5.0/24 is directly connected, Serial1/2
C  200.6.6.0/24 is directly connected, Serial1/1
    

Первый вход (первая строка) таблицы маршрутизации задает путь к удаленной сети назначения. В квадратных скобках таблицы кроме значения метрики отображается административное расстояние протокола (AD = 120). В строке также показан адрес следующего перехода (200.5.5.11), выходной интерфейс (S1/2) и значение таймера, настроенного на период в 30 сек., т.е. следующее обновление маршрутной информации будет через 28 сек.

Если на маршрутизаторах R-C и R-D также сконфигурирован протокол RIP, то R-В посылает копию таблицы маршрутизации маршрутизатору С, где метрика расстояния до Сети 1 увеличивается до 2:

R-С#show ip route
...
Gateway of last resort is not set

R   192.168.10.0/24 [120/2] via 200.6.6.11, 00:00:04, Serial1/2
R   192.168.20.0/24 [120/1] via 200.6.6.11, 00:00:04, Serial1/2
C   192.168.30.0/24 is directly connected, FastEthernet0/0
R   200.5.5.0/24 [120/1] via 200.6.6.11, 00:00:04, Serial1/2
C   200.6.6.0/24 is directly connected, Serial1/2
C   200.7.7.0/24 is directly connected, Serial1/1
    

Кроме того, в результате обмена маршрутной информацией между R-B и R-Cв таблице последнего появились маршруты к Сети 2 и Сети 5, метрика которых составляет 1.

В свою очередь, маршрутизатор С обменивается маршрутной информацией с маршрутизатором D, при этом метрика пути в Сеть 1 повышается до 3, а в Сеть 2 и Сеть 5 - до 2. То есть, результирующий вектор или расстояние поэтапно увеличивается.

R-D#show ip route
...
Gateway of last resort is not set

R   192.168.10.0/24 [120/3] via 200.7.7.11, 00:00:03, Serial1/2
R   192.168.20.0/24 [120/2] via 200.7.7.11, 00:00:03, Serial1/2
R   192.168.30.0/24 [120/1] via 200.7.7.11, 00:00:03, Serial1/2
C   192.168.40.0/24 is directly connected, FastEthernet0/0
R   200.5.5.0/24 [120/2] via 200.7.7.11, 00:00:03, Serial1/2
R   200.6.6.0/24 [120/1] via 200.7.7.11, 00:00:03, Serial1/2
C   200.7.7.0/24 is directly connected, Serial1/2
    

Эта особенность алгоритма может приводить к появлению маршрутных петель в случае медленной конвергенции после изменений в сети. Движение пакетов по маршрутной петле теоретически может быть бесконечным. Однако в существующих протоколах имеется ряд средств, чтобы предотвратить бесконечную циркуляцию пакетов по петле маршрутизации.

  1. В протоколе вектора расстояния RIP максимальное значение метрики не может превышать 15. Поэтому, как только при обмене маршрутной информацией возрастающая на каждом шаге движения по петле метрика достигает значения 16, сеть будет считаться недостижимой и пакет отбрасывается.
  2. В заголовке сетевого протокола IP имеется поле времени жизни TTL, которое декрементируется при прохождении каждого маршрутизатора. Таким образом, число устройств, через которые может пройти пакет, ограничено. При обнулении значения TTL маршрутизатор отбрасывает пакет и отправителю с помощью протокола ICMP посылается сообщение о недостижимости сети.
    Формат заголовка пакета IPv4

    Формат заголовка пакета IPv4
  3. Принцип расщепления горизонта (split horizon) указывает, что нельзя посылать информацию маршрутизатору о недостижимости сети в обратном направлении, т.е. запрещается пересылать обновления на тот же интерфейс, откуда первоначально была получена информация о состоянии соединения.
  4. Пометка недоступного маршрута запрещенной метрикой (route poisoning). В этом случае маршрутизатор сразу же после получения сообщения о недостижимости какой-то сети, включает в соответствующую строку таблицы маршрутизации запрещенное значение метрики, равное 16. Обычно этот метод используется совместно с принципом расщепления горизонта и механизмом мгновенной рассылки объявлений об изменении топологии сети.
  5. Согласно метода мгновенных обновлений (triggered update) их рассылка производится сразу, как только маршрутизатор обнаружит какие-либо изменения в сети, не дожидаясь окончания периода обновления. Последующие маршрутизаторы также мгновенно рассылают информацию об изменении в сети. Это приводит к ускорению конвергенции сети.
  6. Таймер удержания информации (holddown timer) запускается на маршрутизаторе, когда от соседнего устройства приходит информация о том, что ранее доступная сеть становится недоступной. Это дает больше времени для распространения информации об изменениях по всей сети. При этом возможны разные варианты действия протокола вектора расстояния:
    а) если до истечения времени таймера удержания информации от того же устройства приходит обновление, что сеть снова стала достижимой, то протокол помечает сеть как доступную и выключает таймер;
    б) если до истечения времени таймера приходит обновление от другого маршрутизатора с лучшей метрикой, чем была ранее, то протокол помечает сеть как доступную и выключает таймер;
    в) если до истечения времени таймера приходит обновление от другого маршрутизатора с худшей метрикой, то это обновление игнорируется.

Таким образом, указанные меры борьбы с маршрутными петлями позволяют маршрутизаторам избегать их. Однако время конвергенции протокола RIP велико, по сравнению с протоколами состояния канала link-state. Поэтому протокол RIP используется только в малых сетях. Однако у названного протокола есть важное достоинство. Для его функционирования требуется существенно меньше объем оперативной памяти и меньшее быстродействие центрального процессора. Поэтому данный протокол остается востребованным, он разработан и для IPv6.

Протокол вектора расстояния RIP не включает в обновления маршрутизации информацию о маске подсети (о префиксе), поэтому является протоколом маршрутизации на основе адресов полного класса (classfull), что является главным недостатком протокола.

В случае не корректно спроектированной сети, содержащей разделенные подсети одной сети полного класса, применение протокола RIPможет привести к проблемам маршрутизации. Примером не корректно спроектированной сети является схема рис. 3.3.

Пример составной сети

Рис. 3.3. Пример составной сети

Из рис. 3.3 следует, что Сеть 1 (192.168.10.16/28), Сеть 2 (192.168.10.32/27) и Сеть 4 (192.168.10.128/26) являются подсетями сети 192.168.10.0/24. Причем, Сети 1, 2 и Сеть 4 разделены Сетью 5 и Сетью 6. Конфигурирование адресов интерфейсов и протокола RIP приведено на примере маршрутизатора R-A:

R_А(config)#router rip
R_А(config-router)#network 192.168.10.16
R_А(config-router)#network 192.168.10.32
R_А(config-router)#network 200.5.5.0 

R-А#show run
... 
interface FastEthernet0/0
 ip address 192.168.10.17 255.255.255.240
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 192.168.10.33 255.255.255.224
 duplex auto
 speed auto
!
interface Serial1/1
 ip address 200.5.5.1 255.255.255.252
 clock rate 64000
!
router rip
network 192.168.10.0
 network 200.5.5.0
    

Поскольку RIP относится к протоколам типа classfull, то он объединяет отдельные подсети в рамках сети полного класса, в данном случае сети класса С, что можно увидеть из распечатки команды show running-config. Две подсети (192.168.10.16 и 192.168.10.32), которые были заданы при конфигурировании, протокол RIP объединил в сеть класса С (network 192.168.10.0).

R-А#show ip route
...
Gateway of last resort is not set

     192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C192.168.10.16/28 is directly connected, FastEthernet0/0
C       192.168.10.32/27 is directly connected, FastEthernet0/1
R    192.168.20.0/24 [120/1] via 200.5.5.2, 00:00:05, Serial1/1
     200.5.5.0/30 is subnetted, 2 subnets
C       200.5.5.0 is directly connected, Serial1/1
R       200.5.5.4 [120/1] via 200.5.5.2, 00:00:05, Serial1/1
    

Из распечатки команды sh ip route следует, что сеть 192.168.10.0/24 разделена на две непосредственно присоединенных подсети с масками разной длины: 192.168.10.16/28 и 192.168.10.32/27. При этом сеть полного класса 192.168.10.0/24 называется родительской, а подсети 192.168.10.16/28 и 192.168.10.32/27 - дочерними.

Кроме того, в таблице маршрутизации R-А( рис. 3.3) отсутствует маршрут к сети 192.168.10.128/26.Поскольку протокол RIPв своих обновлениях не передает маску подсети, то подсеть 192.168.10.128/26объединена в рамках сети 192.168.10.0/24. Из-за отсутствия в таблице маршрутизации R-А маршрута к сети 192.168.10.128/26 "пингование" интерфейса 192.168.10.129 - неудачное:

R-А>ping 192.168.10.129
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.129, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
    

Конфигурирование маршрутизатора В дало следующий результат:

R-В#show ip route
...

Gateway of last resort is not set

R    192.168.10.0/24 [120/1] via 200.5.5.1, 00:00:15, Serial1/2
                     [120/1] via 200.5.5.6, 00:00:02, Serial1/1
192.168.20.0/29 is subnetted, 1 subnets
C       192.168.20.64 is directly connected, FastEthernet0/0
     200.5.5.0/30 is subnetted, 2 subnets
C       200.5.5.0 is directly connected, Serial1/2
C       200.5.5.4 is directly connected, Serial1/1
    

Протокол RIP объединил две подсети 200.5.5.0/30 и 200.5.5.4/30 в сеть network 200.5.5.0, поэтому в таблице маршрутизации R-В имеется два маршрута к сети 192.168.10.0/24, причем, один путь направлен влево через интерфейс 200.5.5.1, а другой вправо через 200.5.5.6. Поскольку оба пути характеризуются одинаковой метрикой, равной 1, то протокол RIP использует баланс маршрутов и поочередно посылает пакеты через два разных интерфейса одному адресату назначения, например - 192.168.10.17. Поэтому один пакет доходит до адресата, а второй - нет:

R-В#ping 192.168.10.17

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.17, timeout is 2 seconds:
!U!.!
Success rate is 60 percent (3/5), round-trip min/avg/max = 34/59/59 ms
    

Пакеты эхо запроса поочередно попадают, то к адресату назначения (ответ !), то направляются в другую сторону, где устройство назначения недоступно (U) или время ожидания превышает допустимое (.).

В таблице маршрутизации R-С отсутствует маршрут к подсетям 192.168.10.16/28 и 192.168.10.32/27, поскольку они объединены с подсетью 192.168.10.128/26 в рамках одной родительской сети 192.168.10.0:

R_С#show ip route
...

192.168.10.0/26 is subnetted, 1 subnets
C       192.168.10.128 is directly connected, FastEthernet0/0
R    192.168.20.0/24 [120/1] via 200.5.5.5, 00:00:03, Serial1/2
     200.5.5.0/30 is subnetted, 2 subnets
R       200.5.5.0 [120/1] via 200.5.5.5, 00:00:03, Serial1/2
C       200.5.5.4 is directly connected, Serial1/2
    

Таким образом, в некорректно спроектированной сети ( рис. 3.3) подсети 192.168.10.16/28, 192.168.10.32/27 и 192.168.10.128/26 разделены (или, по-другому, разобщены) сетями 200.5.5.0/30 и 200.5.5.4/30. При использовании протокола RIP в такой сети ее работоспособность нарушена. Это происходит из-за того, что протокол RIP в своих обновлениях маршрутной информацией не передает значения маски подсетей и суммирует адреса подсетей в рамках сети полного класса.

Богдан Божок
Богдан Божок

Поделитесь пожалуйста ► Первой частью курса.

В первой лекции упоминается, цитирую: "В первой части настоящего курса отмечалось, что соединение локальных сетей LAN..." 

Дмитрий Михайлусов
Дмитрий Михайлусов