Файл: Проектирование маршрутизации в трёх двухуровневых сетях с использованием протокола RIP (Технико-экономическая характеристика предметной области и предприятия).pdf
Добавлен: 27.06.2023
Просмотров: 150
Скачиваний: 3
На рисунке: маршрутизаторы 1-6, сегменты сетей A..F; приведена изначальная информация в маршрутизаторе 2 и информация в нем после двух итераций обмена маршрутными пакетами RIP; после определенного числа итераций маршрутизатор будет знать о расстояниях до всех сегментов, а также альтернативные маршруты).
Пусть сетью назначения является сегмент D. При необходимости отправить пакет в сеть D маршрутизатор просматривает свою базу данных маршрутов и выбирает порт, имеющий наименьшее расстояния до сети назначения (в данном случае порт, связывающий его с маршрутизатором 3).
Для адаптации к изменению состояния связей и оборудования с каждой записью таблицы маршрутизации связан таймер. Если за время тайм-аута не придет новое сообщение, подтверждающее этот маршрут, то он удаляется из маршрутной таблицы.
Рисунок 5. Пример неустойчивой работы по протоколу (отслеживание изменений в топологии)
На рисунке: маршрутизаторы M1.M3; при работоспособном состоянии в таблице маршрутов каждого маршрутизатора есть запись о сети 1 и о соответствующем расстоянии до нее; далее рассмотрим случай обрыва линии связи между сетью 1 и маршрутизатором M1).
При обрыве связи с сетью 1 маршрутизатор М1 отмечает, что расстояние до этой сети приняло значение 16. Однако получив через некоторое время от маршрутизатора М2 маршрутное сообщение о том, что от него до сети 1 расстояние составляет 2 хопа, маршрутизатор М1 наращивает это расстояние на 1 и отмечает, что сеть 1 достижима через маршрутизатор 2. В результате пакет, предназначенный для сети 1, будет циркулировать между маршрутизаторами М1 и М2 до тех пор, пока не истечет время хранения записи о сети 1 в маршрутизаторе 2, и он не передаст эту информацию маршрутизатору М1.
Для исключения подобных ситуаций маршрутная информация об известной маршрутизатору сети не передается тому маршрутизатору, от которого она пришла.
Существуют и другие, более сложные случаи нестабильного поведения сетей, использующих протокол RIP, при изменениях в состоянии связей или маршрутизаторов сети.
Рисунок 6. Пример неустойчивой работы по протоколу (возникновение циклических маршрутов – процедура split horizon).
В исходном состоянии все каналы передачи данных функционируют нормально и, поэтому, маршруты из узлов D и C к сети N лежат через маршрутизатор B и имеют метрику 2.
Предположим, что в некоторый момент времени канал, который связывает маршрутизаторы A и В, выходит из строя. Маршрутизатор B в этом случае перестает принимать update для сети N от маршрутизатора A и по истечении установленного интервала времени маршрутизатор B определяет сеть N в качестве недостижимой и исключает её из своих массивов update.
Однако из-за того, что эти массивы передаются в сети асинхронно вполне возможно, что вскоре после этого маршрутизатор C получит массивов update от маршрутизатора D, который пока ещё считает, что маршрут из B до сети N существует. Получив такую информацию, маршрутизатор C включит в свою таблицу маршрутизации новый маршрут до сети N – через маршрутизатор D с метрикой 3. После того, как истечет время существования исходного маршрута в маршрутизаторе D, эта ситуация повторится совершенно аналогичным образом.
В результате маршрутизатор D скорректирует свою таблицу маршрутизации и внесет в неё маршрут до сети N через шлюз C с метрикой 4. Подобная ситуация будет таким образом возобновляться снова и снова с периодом, который соответствует времени существования маршрута (3 T Update). Этот цикл, который называется «счет до бесконечности», будет продолжаться до тех пор, пока метрика циклического маршрута не достигнет значения 15, после чего он разорвется автоматически.
Правило split horizon (предотвращение возникновения циклических маршрутов)
Алгоритм split horizon является неотъемлемой частью протокола маршрутизации RIP и предназначен для предотвращения появления циклических маршрутов в сети. Для предотвращения возникновения подобных ситуаций достаточно использовать следующее правило:
Маршрутизатор не должен направлять update для маршрутов в адрес их источника.
За этим правилом закрепилось название split horizon – расщепленный горизонт. Маршрутизатор, используя данное правило, разделяет свои маршруты на столько групп, сколько у него есть активных интерфейсов. При использовании правила split horizon, обновления для маршрутов, которые были получены через некоторый интерфейс, не должны передаваться через этот же интерфейс.
Правило split horizon with poisoned reverse. Правило split horizon может быть использовано с незначительной модификацией. Правило split horizon with poisoned reverse «расщепленный горизонт с отравленным обратным путем» – разрешает передачу update для потенциально опасных, с точки зрения возникновения циклов, маршрутов. В данном случае для таких маршрутов устанавливается метрика, которая соответствует бесконечности – 15.
Рисунок 7. Пример неустойчивой работы по протоколу (процедура triggered update – управляемые модификации)
Использование процедуры Split horizon позволяет избежать появления зацикленного маршрута у двух шлюзов. Однако возможно возникновение ситуации, когда в циклическом маршруте участвуют три шлюза.
На рисунке приведен пример возникновения подобной ситуации. В приведенной сети при выходе из строя канала, который связывает узел А с сетью N, маршрутизатор B может принять от маршрутизатора С несуществующий маршрут до сети N, который якобы проходит через узел C. К тому моменту, когда маршрутизатор C определит, что он не имеет собственного маршрута до сети N, маршрутизатор B уже успеет передать информацию о наличии у него маршрута до этой сети маршрутизатору D.
Использование процедуры Split horizon не сможет предотвратить появление такой петли, поскольку сообщения о маршруте поступают не от того маршрутизатора, которому передаются сообщения update. Следовательно, эта петля будет разорвана только тогда, когда метрика циклического маршрута достигает бесконечности. Для того чтобы уменьшить время переходных процессов в сети, можно использовать процедуру управляемых модификаций (triggered update).
Использование данной процедуры предписывает необходимость формирования мгновенных модификаций в том случае, когда происходит изменение состояния сети. Благодаря тому, что управляемые модификации передаются по сети с высокой скоростью, использование этого механизма может предотвратить появление циклических маршрутов. Однако, поскольку процесс передачи управляемых модификаций имеет вполне определенную конченую скорость, сохраняется возможность, что в процессе передачи регулярного update циклический маршрут все-таки возникнет.
Пример неустойчивой работы по протоколу (счетчик времени timeout – timer)
Возможно возникновение ситуации, когда периодическое обновление будет просто потеряно в сети из-за возникновения краткосрочной перегрузки или временной неработоспособности канала передачи данных. Для того чтобы в этой ситуации маршруты не были ошибочно удалены из таблицы маршрутизации, каждому маршруту ставится в соответствие специальный счетчик времени, который называется timeout – timer. В тот момент времени, когда данный маршрут включается в таблицу маршрутизации, или когда для него приходит очередное обновление значение счетчика timeout – timer устанавливается равным Ttimeout max. = 180 секунд и этот счетчик начинает обратный отсчет времени. В том случае, если счетчик timeout – timer какого-либо маршрута достигнет значения 0, этот маршрут должен быть исключен из числа активных маршрутов.
Протокол RIP не обеспечивает решение всех возможных проблем, которые могут возникнуть в процессе определения маршрута в сетях передачи данных. Как уже упоминалось выше, в первую очередь он предназначен для использования в качестве IGP в гомогенных сетях небольшого размера. Кроме того, использование данного протокола приводит к появлению специфических ограничений на параметры сети, в которой он может быть использован.
Ограничение максимальной длины маршрута. Использование протокола RIP целесообразно в сетях, самый длинный путь в которых составляет не более 15 переходов (hops). Данное ограничение определяется способом вычисления маршрута, который принят в данном алгоритме и не может быть преодолено.
Зацикливание маршрутов. Использование протокола RIP может в ряде случаев привести к появлению «зацикленных маршрутов». Для предотвращения возникновения подобных ситуаций должны быть использованы специальные меры (poison reverse, split horizon).
Формат метрики. Для сравнения маршрутов протокол RIP использует достаточно простую «метрику» – число переходов. Однако использование данного критерия в целом ряде случаев не может обеспечить оптимальный выбор маршрута.
- RFC‑1388. Протокол RIP‑2 (1993 год) является новой версией RIP, которая в дополнение к широковещательному режиму поддерживает мультикастинг; позволяет работать с масками субсетей.
- RFC‑1582. Расширение к RIP по требованиям к хостам к поддержке определённых параметров.
- RFC‑1721. Анализ протокола RIP версии 2.
- RFC‑1722 (STD 0057). Протокол RIP версии 2, предписание к применению.
- RFC‑1724. Протокол RIP версии 2, расширение по MIB (база управляющей информации – management information base).
- RFC‑2080. Спецификации протокола RIP для IPv6.
- RFC‑2082. Протокол RIP версии 2, проблемы аутентификации с использованием MD5 (Message Digest 5) – 128‑битный алгоритмом хеширования, разработанный в 1991 году. MD5 предназначен для создания «отпечатков» или «дайджестов» сообщений произвольной длины.
- RFC‑2092. Спецификация для автоматически запускающегося протокола RIP (triggered RIP).
- RFC‑2453 (STD 0056). Общее описание протокола второй версии.
Реализация протокола. Существуют две версии протокола RIP: RIP‑1 и RIP‑2. Версия 2 имеет некоторые усовершенствования, как-то: возможность маршрутизации сетей по модели CIDR (кроме адреса сети передается и маска), поддержка мультикастинга, возможность использования аутентификации RIP‑сообщений и др.
Типы и формат сообщений. В протоколе RIP имеются два типа сообщений, которыми обмениваются маршрутизаторы:
- ответ (response) – рассылка вектора расстояний;
- запрос (request) – маршрутизатор (например, после своей загрузки) запрашивает у соседей их маршрутные таблицы или данные об определенном маршруте.
Формат сообщений обоих типов одинаков:
Рисунок 7. Пример сообщения.
Поля, помеченные знаком *, относятся к версии 2; в сообщениях RIP‑1 эти поля должны быть обнулены.
Сообщение RIP состоит из 32‑битного слова, определяющего тип сообщения и версию протокола (плюс «Routing Domain» в версии 2), за которым следует набор из одного и более элементов вектора расстояний. Каждый элемент вектора расстояний занимает 5 слов (20 октетов) (от начала поля «Address Family Identifier» до конца поля «Metric» включительно). Максимальное число элементов вектора – 25, если вектор длиннее, он может разбиваться на несколько сообщений.
- Поле «Command» определяет тип сообщения: 1 – request, 2 – response; поле «Version» – версию протокола (1 или 2).
- Поле «Address Family Identifier» содержит значение 2, которое обозначает семейство адресов IP; другие значения не определены. Поля «IP address» и «Metric» содержат адрес сети и расстояние до нее.
Дополнительно к полям версии 1 во второй версии определены следующие.
- «Routing Domain» – идентификатор RIP‑системы, к которой принадлежит данное сообщение; часто – номер автономной системы. Используется, когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем, в каждой автономной системе поддерживается своя таблица маршрутов. Поскольку сообщения RIP рассылаются всем маршрутизаторам, подключенным к сети, требуется различать сообщения, относящиеся к «своей» и «чужой» автономным системам.
- «Route Tag» – используется как метка для внешних маршрутов при работе с протоколами внешней маршрутизации.
- «Subnet Mask» – маска сети, адрес которой содержится в поле IP address. RIP‑1 работает только с классовой моделью адресов.
- «Next Hop» – адрес следующего маршрутизатора для данного маршрута, если он отличается от адреса маршрутизатора, пославшего данное сообщение. Это поле используется, когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем и, следовательно, некоторые маршрутизаторы «чужой» автономной системы физически могут быть достигнуты напрямую, минуя пограничный (логически подключенный к обеим автономным системам) маршрутизатор. Об этом пограничный маршрутизатор и объявляет в поле «Next Hop».
Адрес 0.0.0.0 в сообщении типа «ответ» обозначает маршрут, ведущий за пределы RIP‑системы. В сообщении типа «запрос» этот адрес означает запрос информации о всех маршрутах (полного вектора расстояний). Указание в сообщении типа «запрос» адреса конкретной сети означает запрос элемента вектора расстояний только для этой сети – такой режим используется обычно только в отладочных целях.