Адаптация RIP-маршрутизаторов к изменениям состояния сети

К новым маршрутам RIP-маршрутизаторы приспосабливаются просто — они передают новую информацию в очередном сообщении своим соседям и посте­пенно эта информация становится известна всем маршрутизаторам сети. А вот к изменениям, связанным с потерей какого-либо маршрута, RIP-маршрутизаторы адаптируются сложнее. Это связано с тем, что в формате сообщений протокола RIP нет поля, которое бы указывало на то, что путь к данной сети больше не су­ществует.

Для уведомления о том, что некоторый маршрут недействителен, используются два механизма:

□ истечение времени жизни маршрута;

□ указание специального (бесконечного) расстояния до сети, ставшей недос­тупной.

Механизм истечения времени жизни маршрута основан на том, что каждая запись таблицы маршрутизации (как и записи таблицы продвижения моста/ коммутатора), полученная по протоколу RIP, имеет время жизни (TTL). При поступлении очередного RIP-сообщения, которое подтверждает справедливость данной записи, таймер TTL устанавливается в исходное состояние, а затем из него каждую секунду вычитается единица. Если за время тайм-аута не придет новое сообщение об этом маршруте, он помечается как недействительный.

Время тайм-аута связано с периодом рассылки векторов по сети. В протоколе RIP IP период рассылки выбран равным 30 секундам, а в качестве тайм-аута вы­брано шестикратное значение периода рассылки, то есть 180 секунд. Шестикрат­ный запас времени нужен для уверенности в том, что сеть действительно стала недоступной, а не просто произошли потери RIP-сообщений (а это возмож­но, так как протокол RIP использует транспортный протокол UDP, который не обеспечивает надежной доставки сообщений). Если какой-либо маршрутизатор отказывает, переставая слать своим соседям сообщения о сетях, которые можно достичь через него, то через 180 секунд все записи, порожденные этим мар­шрутизатором, станут недействительными у его ближайших соседей. После это­го процесс повторится уже для соседей ближайших соседей — они вычеркнут по­добные записи уже через 360 секунд.

Как видно, сведения о недоступных через отказавший маршрутизатор сетях рас­пространяются по сети не очень быстро. В этом заключается одна из причин вы­бора в качестве периода рассылки небольшой величины в 30 секунд. Механизм тайм-аута работает в тех случаях, когда маршрутизатор не может послать сосе­дям сообщение об отказавшем маршруте, так как либо он сам неработоспособен, либо неработоспособна линия связи, по которой можно было бы передать сооб­щение.

Когда же сообщение послать можно, RIP-маршрутизаторы используют прием, заключающий в указании бесконечного расстояния до сети, ставшей недоступной. В протоколе RIP бесконечным условно считается расстояние равным 16 хопов. Получив сообщение, в котором расстояние до некоторой сети равно 16 (или 15, что приводит к тому же результату, так как маршрутизатор наращивает получен­ное значение на 1), маршрутизатор должен проверить, исходит ли эта «плохая» информация о сети от того же маршрутизатора, сообщение которого послужило в свое время основанием для записи о данной сети в таблице маршрутизации. Если это тот же маршрутизатор, то информация считается достоверной и мар­шрут помечается как недоступный.

То, что за «бесконечное» расстояние принято столь небольшое число, вызвано тем, что в некоторых случаях отказы связей в сети вызывают длительные перио­ды некорректной работы RIP-маршрутизаторов, выражающейся в зацикливании пакетов в петлях сети. И чем меньше расстояние, используемое в качестве «бес­конечного», тем такие периоды короче.

Пример

Рассмотрим случай зацикливания пакетов на примере сети, изображенной на рис. 19.15. Пусть маршрутизатор R1 обнаружил, чго его связь с непосредственно подключенной сетью 201.36.14.0 потеряна (например, но причине отказа интерфейса 201.36.14.3). Мар­шрутизатор R1 отмечает в своей таблице маршрутизации, что сеть 201.36.14.0 недос­тупна. В худшем случае он обнаружит это сразу же после отправки очередных RIP-co- общений, так что до начала нового цикла его объявлений, в котором он должен сообщить соседям, что расстояние до сети 201.36.14.0 стало равным 16, остается почти 30 секунд. Каждый маршрутизатор работает на основании своего внутреннего таймера, не син­хронизируя работу но рассылке объявлений с другими маршрутизаторами. Поэтому весьма вероятно, маршрутизатор R2 опередит маршрутизатор R1 и передаст ему свое сообщение раньше, чем R1 успеет передать новость о недостижимости сети 201.36.14.0. А в этом сообщении имеются данные, порожденные записью в таблице маршрутиза­ции R2 (табл. 19.5).

Таблица 19.5. Таблица маршрутизации маршрутизатора R2

Номер сети Адрес след. маршрутизатора Порт Расстояние
201.36.14.0 132.11.0.7    

Эта запись, полученная от маршрутизатора R1, была корректна до отказа интерфейса 201.36.14.3; теперь она устарела, но маршрутизатор R2 об этом не знает.

Далее маршрутизатор R1 получает новую информацию о сети 201.36.14.0 — эта сеть достижима через маршрутизатор R2 с метрикой 2. Раньше R1 также получал эту ин­формацию от R2, но игнорировал ее, так как его собственная метрика для 201.36.14.0 была лучше. Теперь R1 должен принять данные о сети 201.36.14.0, полученные от R2, и заменить запись в таблице маршрутизации о недостижимости этой сети (табл. 19.6)-

Таблица 19.6. Таблица маршрутизации маршрутизатора R1

Номер сети Адрес след. маршрутизатора Порт Расстояние
201.36.14.0 132.11.0.101    

В результате в сети обртуется маршрутная петля: пакеты, направляемые узлам сети 201.36.14.0, станут передаваться маршрутизатором R2 маршрутизатору R1, а маршру- гизатор R1 будет возвращать их маршрутизатору R2. IP-пакеты будут циркулировать по этой петле до тех пор, пока не истечет время жизни каждого пакета. Рассмотрим периоды времени, кратные времени жизни записей в таблицах маршрутизаторов.

Время 0-180 с. После отказа интерфейса в маршрутизаторах R1 и R2 будут сохра­няться некорректные записи. Маршрутизатор R2 по-прежнему снабжает маршрутиза­тор R1 своей записью о сети 201.36.14.0 с метрикой 2, так как ее время жизни не ис­текло. Пакеты зацикливаются.

Время 180-360 с. В начале этого периода у маршрутизатора R2 истекает время жизни записи о сети 201.36.14.0 с метрикой 2, так как маршрутизатор R1 в предыдущий пе­риод посылал ему сообщения о сети 201.36.14.0 с худшей метрикой, чем у R2, и оии не могли подтверждать эту запись. Теперь маршрутизатор R2 принимает от маршрутиза­тора R1 запись о сети 201.36.14.0 с метрикой 3 и трансформирует ее в запись с метри­кой 4. Маршрутизатор R1 не получает новых сообщений от маршрутизатора R2 о сети 201.36.14.0 с метрикой 2, поэтому время жизни его записи начинает уменьшаться. Па­кеты продолжают зацикливаться.

Время 360-540 с. Теперь у маршрутизатора R1 истекает время жизни записи о сети 201.36.14.0 с метрикой 3. Маршрутизаторы R1 и R2 опять меняются ролями — R2 снабжает R1 устаревшей информацией о пути к сети 201.36.14.0, уже с метрикой 4, ко­торую R1 преобразует в метрику 5. Пакеты продолжают зацикливаться.

Если бы в протоколе RIP не было выбрано расстояние 16 в качестве недостижимого, то описанный процесс длился бы бесконечно (вернее, пока не была бы исчерпана раз­рядная сетка поля расстояния, и при очередном наращивании расстояния было бы за­фиксировано переполнение).

В результате маршрутизатор R2 на очередном этане описанного процесса получает от маршрутизатора R1 метрику 15, которая после наращивания, превращаясь в метри­ку 16, фиксирует недостижимость сети. Период нестабильной работы сети длился 36 минут!

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

Приведенный пример хорошо иллюстрирует главную причину нестабильности маршрутизаторов, работающих по протоколу RIP. Эта причина коренится в са­мом принципе работы дистанционно-векторных протоколов — использовании информации, полученной из «вторых рук». Действительно, маршрутизатор R2 передает маршрутизатору R1 информацию о достижимости сети 201.36.14.0, за достоверность которой.он сам не отвечает.

ПРИМЕЧАНИЕ -----------------------------------------------------------------------------------------------------

Не следует думать, что при любых отказах интерфейсов и маршрутизаторов в сетях возни­кают маршрутные петли. Если бы маршрутизатор R1 успел передать сообщение о недости­жимости сети 201.36.14.0 раньше ложной информации маршрутизатора R2, то маршрут­ная петля не образовалась бы. Так что маршрутные петли даже без дополнительных методов борьбы с ними возникают в среднем не более чем в половине потенциально воз­можных случаев.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: