Галкин В.А., Григорьев Ю.А. - Телекоммуникации и сети (1053870), страница 91
Текст из файла (страница 91)
RIP-1 работает только с классовой моделью адресов.Поле «IP-адрес следующего маршрутизатора» (Next Нор) содержит адресследующего маршрутизатора для данного маршрута, если он отличается отадреса маршрутизатора, пославшего данное сообщение. Это поле используют,когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем и, следовательно, некоторые маршрутизаторы «чужой»автономной системы могут быть достигнуты напрямую, минуя пограничныймаршрутизатор.
Об этом пограничный маршрутизатор и объявляет в поле «IPадрес следующего маршрутизатора». Адрес 0.0.0.0 в сообщении типа «ответ»обозначает маршрут, ведущий за пределы RIP-системы. В сообщении типа«запрос» этот адрес означает запрос информащш о всех маршрутах (полноговектора расстояний). Указание в сообщении типа «запрос» адреса конкретнойсети означает запрос элемента вектора расстояний только для этой сети - такой режим используют обычно только в отладочных целях. Аутентификацияможет производиться протоколом RIP-2 для обработки только тех сообщений,которые содержат правильный аутентификационный код. При работе в такомрежиме первый 20-октетный элемент вектора расстояний, следующий непосредственно за первым 32-битным словом RIP-сообщения, является сегментом аутентификации. Его определяют по значению поля «Набор протоколовсети» (Address Family Identifier), равному в этом случае (FFFF)h.
Следующие2 октета этого элемента определяют тип ^ггентификации, а остальные 16 октетов содержат аутентификационный код. Таким образом, в RIP-сообщении саутентификацией может передаваться не 25, а только 24 элемента вектора расстояний, которые следуют за сегментом аутентификации. К настоящему моменту надежного алгоритма аутентификации для протокола RIP не разработано; стандартом определена только аутентификация с помощью обычного пароля(значение поля «Тип» равно 2).Сообщение RIP состоит из 32-битного слова, определяющего тип сообщения и версию протокола (плюс «Марпфутный домен» в RIP-2), за которым следует набор из одного или более элементов вектора расстояний. Каждый элемент вектора расстояний занимает 5 слов (20 октетов) (см.
рис. 5.40).3835. Сетевые протоколыМаксимальное число элементов вектора равно 25, если вектор длиннее, он может разбиваться на несколько сообщений. Таким образом, одно RIP-сообщение может содержать информацию о 25 маршрутах.С точки зрения маршрутизации работа RIP-2 принципиально не отличаетсяот первой версии протокола. Рассмотрим работу RIP-1 подробнее.Алгоритм построения таблицы маршрутов. Для более наглядного представления алгоритма введем следующие обозначения.• Строку в таблице маршрутов будем записывать в виде А = 2 -> R3, Этоозначает, что расстояние от данного маршрутизатора до сети А равно 2, а дейтаграммы, следующие в сеть А, следует пересьшать марпфутизатору R3.• Вектор расстояний будем записьшать в виде {А = 2,В=1).
Это означает,что расстояние от данного маршрутизатора до сети А равно 2, до сети В равно 1.• Расстояние до сети, к которой маршрутизатор подключен непосредственно, примем равным 1.Каждый маршрутизатор, на котором запущен модуль RIP, периодическишироковещательно распространяет свой вектор расстояний. Вектор распространяется через все интерфейсы (порты) маршрутизатора, подключенные к сетям, входящим в RIP-систему. Каждый маршрутизатор также периодическиполучает векторы расстояний от других маршрутизаторов.
Расстояния в этихвекторах инкременггируются (увеличиваются на 1), после чего сравниваютсяс данными в таблице маршрутов, и, если расстояние до какой-то из сетей вполученном векторе оказывается меньше расстояния, указанного в таблице,значение из таблицы замещается новым (меньшим) значением, а адрес маршрутизатора, приславшего вектор с этим значением, записьшается в поле «Следующий маршрутизатор» в этой строке таблицы.
После этого вектор расстояний данного марпфутизатора соответственно изменится.Рассмотрим построения маршрутной таблицы на примере сети, представленной на рис. 5.41 (компьютеры в сетях не показаны). Рассмотрим процессформирования таблицы маршрутов применительно к узлу RI,Рис. 5.41.
Пример структуры RIP-системы:Rl-RA- маршрутизаторы; А-Е- сети3845.5. Протоколы III уровня стека TCP/IPВ начальный момент времени (например, после подачи питания на маршрутизаторы) таблица маршрутов в узле RI (узел RI знает только о тех сетях, ккоторым подключен непосредственно) выглядит следующим образом:A = l-^RlB=\-^RlСледовательно, узел RI рассьшает в сети А и В вектор расстояний (А = I,5 = 1 ) .
Аналогично узел R2 рассьшает в сети A,C,D вектор (yi = l , C = l , Z ) = l ) .Узел RI получает этот вектор из сети А, увеличивает расстояния на 1 (А = 2,С = 2, £) = 2) и сравнивает с данными в своей таблице маршрутов. Новое расстояние до сети А оказывается больше, чем уже Bneceimoe в таблицу (^ = 1),следовательно, новое значение игнорируется. Поскольку сети Си Z) отсутствуют в его таблице маршрутов, они туда вносятся. В узле RI имеем:A = l->RlB=l-^RlС=2->7?2Z) = 2->/?2Узел i? 4 в свою очередь рассьшает вектор расстояний (D= 1,Е= 1)в сетиВиЕ, Узел R 2 получает этот вектор из сети Z), увеличивает расстояния на 1,после чего добавляет себе в таблицу данные о сети Е (Е = 2 -^ R4). Ранее изузла RI он получил информацию о сети В и добавил себе в таблицу строку5 = 2 -> Л1.
Узел R 2 рассьшает в сети A,C,D свой обновленный вектор расстояний (^= 1,5 = 2, C = 1 , D = 1,£ = 2). Узел/г1 получает этот вектор отi!2 изсетиyi, увеличивает расстояния на 1: (^ = 2 , 5 = 3, С = 2, D = 2, J? = 3) и замечает, что все указанные расстояния, кроме расстояния до сети Е, больше либоравны значе1шям, имеющимся в его таблице. Сеть Е в таблице узла RI отсутствует, следовательно, она туда вносится.
В результате в узле RI таблица маршрутов имеет вид:Л = 1->Л15=1->Л1C = 2-^R2D = 2-^R2Далее маршрутизатор /?3, ранее не работавший по каким-либо причинам,рассьшает в сети В, С, Е свой вектор ( 5 = 1 , С = 1 , £ = 1 ) . Узел R\ получает этотвектор из сети В, увеличивает расстояния на 1 и обнаруживает, что расстояниеЕ = 2 меньше имеющегося в таблице £ = 3, следовательно запись о сети Е втаблице заменяется на Е = 2 -> R3.
Остальные элементы полученного от R3вектора не вызывают обновления таблицы. Итоговая таблица маршрутовмаршрутизатора Л1 вьшхядит следующим образом:A = l-->R\B=l->RlС = 2->/?2D = 2-^R2£ = 2->7?33855. Сетевые протоколыРис. 5.42. Отказ порта сети>4 маршрутизатора R\На этом алгоритм сходится, т. е.
при неизменной топологии системы никакие векторы расстояний, получаемые маршрутизатором i?l, больше не внесутизменений в таблицу маршрутов. Аналогичным образом алгоритм составления таблицы маршрутов работает и сходится на других маршрутизаторах. Дляоперативного реагирования на внезапные изменения топологии сети векторырасстояний периодически широковещательно рассьшаются каждым маршрутизатором. Очевидно, что вид построенной таблицы маршрутов может зависеть от порядка получения маршрутизатором векторов расстояний.Изменение состояния ШР-системы.
Рассмотрим случай, когда состояние системы неожиданно изменяется, например, маршрутизатор R\ отключается от сети А (рис. 5.42).Узел RI обнаруживает свое отсоединение от сети А и меняет таблицу маршрутов, устанавливая бесконечное расстояние до всех сетей, ранее достижимых через маршрутизаторы, подключенные к сети А (т. е. R2). В протоколеRIP значение бесконечности равно 16.^ = 16->/?1С=16->7?2D=16->/?2£=2-^/?3Вектор расстоянии, построенный на основании этой таблицы, рассьшается всеть В, чтобы маршрутизаторы, направлявшие свои данные через R\ в ставшие недоступными сети, если таковые маршрутизаторы существуют, соответственно изменили свои маршрутные таблицы. Допустим, в узле /?3 имеласьследующая таблица маршрутов:A = 2-^R2B--\-^R3C=l~>^3£> = 2-^/?4£=1->/?33865.5. Протоколы IIIуровня стека TCP/IPУзел R3 периодически и широковещательно рассьшает в сети Б, С, Е свойвектор расстояния (А = 2, В = 1, С = 1, Z> = 2, £ = 1).
Узел R1 получает этотвектор, увеличивает расстояния на 1: (/4 = 3,5 = 2, С = 2, £> = 3, £ = 2) и замечает, что расстояния ^ = 3,С = 2 и / ) = 3 меньше бесконечности, следовательно,соответствующие записи таблищ>1 маршрутов модифшщруются и она принимает вид:A = 3'^R35=1-^/?1С=2->ЛЗD = 3->/?3E=2->R3Таким образом, узел RI построил маршруты в обход поврежденного участка и восстановил достижимость всех сетей.К сожалению, поведение дисташщонно-векторных протоколов при изменении топологии системы не всегда корректно и предсказуемо.
Рассмотрим вышеописанную ситуащпо в отношении протокола RIP с отсоединением узла RIот сети А. Вьппе мы предполагали, что узел R3 не отправлял дейтаграмм черезузел RI (и, следовательно, изменение таблшды маршрутов в узле RI не повлияло на таблицу узла R3 ). Предположим теперь, что R3 отправлял дейтаграммы в сеть А через i?l, т. е. таблица в узле R3 имела вид:A = 2^R\B=l->R3С=1-^/?3D = 2-^R4^=1->ЛЗПосле отсоединения RI от сети А узел R3 получает от RI вектор {А = 16,В = 1, С = 16, D = 16, JF = 2). Проанализировав этот вектор, узел R3 делаетвывод, что все указанные в нем расстояния больше значений, содержащихся вего маршрутной таблице, на основании чего этот вектор узлом R3 игнорируется.
В свою очередь, узел R3 рассьшает в сети J8, С, Е вектор (^ = 2,5 = 1, С = 1,D = 2,E= 1). Узел RI получает этот вектор, увеличивает расстояния на 1: (v4 = 3,5 = 2, C = 2,£> = 3,JS = 2)H замечает, что расстояния А = 3,С = 2иО = 3 меньшебесконечности, следовательно, соответствующие записи таблицы марпфутовв узле RI модифицируются и она принимает вид:У4 = 3 - > / ? 35=1->Л1С=2->ЛЗD = 3-^R3£=2~>/?3Очевидно, после этого содержимое таблиц узлов R\HR3 стабилизируется.Рассмотрим теперь записи о достижении сети А в таблицах маршрутизаторовRIHR3.Вузле/г1:Л = 3->/?3ВузлеЛЗ:A = 2-^Rl3875.
Сетевые протоколыТаким образом, возникло зацикливание: данные, адресованные в сеть^4, будутпересьшаться между узлами Л1 и /?3 до тех пор, пока не истечет время жизнидейтаграмм и они не будут уничтожены.Для того, чтобы избежать зацикливания, в алгоритм рассьшки векторов расстояний вносятся дополнения.7. Если дейтаграммы, адресованные в сеть X, посылаются через маршрутизатор G, находящийся в сети N, то в векторе расстояний, рассылаемом в сети N, расстояние до сети X не указывается.В нашем примере узел /?3 будет рассылать в сети В вектор (Л = 1, С = 1, £) = 2,£ = 1).
Элемент А = 2нс будет включен в этот вектор, потому что дейтаграммы в сеть А отправлены узлом R3 через узел /?1, а узел RI расположен в сетиВ. При рассьшке узлом R3 вектора расстояний в другие сети элемент А = 2будет указан (но не будут указаны какие-то другие элементы).Модифрпсация дополнения 7 позволяет ликвидировать более сложные особые ситуации, в том числе, некоторые случаи счета до бесконечности.1А. Если дейтаграммы, адресованные в сеть X, посылаются через маршрутизатор G, находящийся в сети 7V, то в векторе расстояний, рассылаемом в сети N, расстояние до сети X полагается равным бесконечности. Тем не менее, и в этом случае могут возникать особые ситуации.2.
Если маршрутизатор G объявляет новое расстояние до сети X, тоэто расстояние вносится в таблицы маршрутов узлов, отправляющихдейтаграммы в сеть X через G независимо от того, больше оно или меньше уэк:е внесенного в таблицы расстояния.В нашем примере это означает, что если в маршрутной таблице узла 7?3записано У4 = 1 - > 7 ? 1 И 7 ? 3 получает от 7? 1 вектор с элементом yi = 16, то несмотря на то, что 1 < 00, узел 7?3 модифицирует запись в таблице: ^ = 16 ~> 7?1.Однако таким образом устраняются далеко не все случаи зацикливания.Счет до бесконечности.