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

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:02, 1 февраля 2015.

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

Рис.1.Первоначальная схема сети для примера динамической маршрутизации.

Ниже перечислены маршрутизаторы и сети, к которым они подключены, как показано на рис. 1.

  • Scully - 1, 4, 3.
  • Mulder - 4, 5, 8, 10.
  • Krychek - 2, 3, 5, 6.
  • Skinner — 6, 7, 8, 9.
  • Doggett - 9, 10, 11.

В данной распределенной сети имеется пять маршрутизаторов, соединенных между собой в виде неполносвязной (или гибридной) сети. Для краткости выше перечислены только маршрутизаторы и сети, к которым они подключены (а не вся таблица маршрутизации), а сами сети упрощены и обозначены одним номером. Во время начальной загрузки каждый маршрутизатор имеет информацию только о тех сетях, к которым он подключен непосредственно. Если используется статическая маршрутизация, то для передачи каждому маршрутизатору информации обо всех сетях в данной топологии пришлось бы вводить вручную в их таблицы маршрутизации сведения обо всех основных и резервных маршрутах. Такая задача может оказаться достаточно сложной, а ошибки в конфигурации становятся причиной проблем с зацикливанием пакетов. Протокол динамической маршрутизации, с другой стороны, позволяет маршрутизатору через регулярные интервалы автоматически сообщать другим маршрутизаторам обо всех известных ему маршрутах. Применяемые при этом "информационные" пакеты именуются анонсами или обновлениями маршрутов, в зависимости от того, в каком конкретном протоколе они используются. Такие данные позволяют всем маршрутизаторам автоматически собирать сведения обо всех маршрутах (основных и резервных)[1].

Чтобы можно было проще представить, как работают средства динамической маршрутизации, рассмотрим процесс обновления маршрутов на примере сети, описанной выше. На рис. 2 показано, как все маршрутизаторы рассылают свои начальные анонсы по всем другим соседним маршрутизаторам. Поэтому Scully, например, отправляет маршрутизаторам Mulder и Krychek анонс, содержащий информацию об известных ему сетях (в данный момент ему известно о существовании только сетей 1, 3 и 4.)

Рис. 2. Рассылка начальных анонсов в сети, рассматриваемой в качестве примера.

Перед рассылкой начального анонса (см. рис. 2) маршрутизаторы имели информацию о сетях, перечисленных ниже.

  • Scully - 1, 4, 3.
  • Mulder - 4, 5, 8, 10.
  • Krychek - 2, 3, 5, 6.
  • Skinner - 6, 7, 8, 9.
  • Doggett — 9, 10, 11.

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

Рис. 3. Второй этап обновления в примере динамической маршрутизации.

Ко времени передачи этого второго объявления, известными сетями из числа показанных на рис. 3 были следующие (в круглых скобках показаны маршрутизаторы, от которых получена информация о сети).

  • Scully — 1, 2 (Krychek), 3, 4, 5 (Mulder, Krychek), 6 (Krychek), 8 (Mulder) и 10 (Mulder).
  • Mulder - 1 (Scully), 2 (Krychek), 3 (Scully, Krychek), 4, 5, 6 (Krychek, Skinner), 7 (Skinner), 8, 9 (Skinner, Doggett), 10 и 11 (Doggett).
  • Krychek - 1 (Scully), 2, 3, 4 (Scully, Mulder), 5, 6, 7 (Skinner), 8 (Mulder, Skinner), 9 (Skinner) и 10 (Mulder).
  • Skinner - 2 (Krychek), 3 (Krychek), 4 (Mulder), 5 (Krychek, Mulder), 6, 7, 8, 9, 10 (Mulder, Doggett) и 11 (Doggett).
  • Doggett - 4 (Mulder), 5 (Mulder), 6 (Skinner), 7 (Skinner), 8 (Mulder, Skinner), 9, 10, 11.

После изучения рис. 3 становится очевидно, что количество информации, введенной в таблицы маршрутизации, действительно возрастает очень быстро и общая картина значительно усложняется! К сожалению, эта сложность является одним из самых крупных недостатков динамической маршрутизации[2]. Но в конечном итоге сеть стабилизируется и каждый маршрутизатор имеет информацию о любом маршруте к любой сети. Это состояние процесса динамической маршрутизации называется установившимся, и сеть, находящаяся в таком состоянии, показана на рис. 4.

Рис. 4.Сеть в полностью установившемся состоянии.

Если распределенная сеть находится в установившемся состоянии, то маршрутизаторы имеют следующую информацию о сетях, указанных на рис. 4 (в круглых скобках показаны маршрутизаторы, от которых получена информация о сети).

  • Scully - 1, 2 (Krychek , Mulder), 3, 4, 5 (Krychek, Mulder), 6 (Krychek, Mulder), 8 (Krychek, Mulder), 9(Krychek, Mulder), 10(Krychek, Mulder) и 11(Krychek, Mulder).
  • Mulder— 1 (Scully, Krychek, Skinner, Doggett), 2 (Scully, Krychek, Skinner, Doggett), 3 (Scully, Krychek, Skinner, Doggett), 4, 5, 6 (Scully, Krychek, Skinner, Doggett), 7 (Scully, Kiychek, Skinner,Doggett), 8, 9 (Scully, Krychek, Skinner, Doggett), 10 и 11 (Scully, Krychek, Skinner, Doggett).
  • Krychek — 1 (Scully, Mulder, Skinner), 2, 3, 4 (Scully, Mulder, Skinner), 5, 6, 7 (Scully, Mulder, Skinner), 8 (Scully, Mulder, Skinner), 9 (Scully, Mulder, Skinner), 10 (Scully, Mulder, Skinner) и 11 (Scully, Mulder, Skinner).
  • Skinner — 1 (Krychek, Mulder, Doggett), 2 (Krychek, Mulder, Doggett), 3 (Krychek, Mulder, Doggett), 4 (Krychek, Mulder, Doggett), 5 (Krychek, Mulder, Doggett), 6, 7, 8, 9, 10 (Krychek, Mulder, Doggett) и 11 (Krychek, Mulder, Doggett).
  • Doggett — 1 (Mulder, Skinner), 2 (Mulder, Skinner), 3 (Mulder, Skinner), 4 (Mulder, Skinner), 5 (Mulder, Skinner), 6 (Mulder, Skinner), 7 (Mulder, Skinner), 8 (Mulder, Skinner), 9, 10 и 11.

Рассмотрим предназначение маршрутизирующих протоколов:

  • Они позволяют уменьшить объем работ, выполняемый сетевым администратором, поскольку динамически вводят в таблицы маршрутизации маршруты ко всем сетям.
  • При наличии больше одного маршрута к некоторой сети они выполняют одно из следующих действий:
  • помещают в таблицу наилучший маршрут;
  • вводят в таблицу несколько маршрутов и обеспечивают распределение нагрузки по этим маршрутам.
  • Позволяют автоматически удалять из таблицы недействительные маршруты при возникновении отказа канала (прямого или непрямого).
  • После получения информации о лучшем маршруте вводят данные о нем в таблицу.
  • Устраняют маршрутные циклы с максимально возможной оперативностью.

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

Маршрутизирующие протоколы обычно классифицируются по типу применяемых в них алгоритмов. Ниже перечислены три основных алгоритма, применяемых в маршрутизирующих протоколах, наряду с кратким описанием каждого из них.

Дистанционно-векторный алгоритм

Этот алгоритм принадлежит к числу наиболее широко применяемых в настоящее время алгоритмов маршрутизации. Маршрутизацию на основе дистанционно-векторного алгоритма иногда в шутку называют - "маршрутизацией по слухам". По сути, маршрутизатор, в котором применяется дистанционно-векторный протокол, сообщает всем непосредственно подключенным к нему (или, как принято их называть, соседним) маршрутизаторам: "У меня есть информация обо всех имеющихся здесь сетях!". Каждый из соседних маршрутизаторов отвечает: "Передайте мне эту информацию, чтобы я мог включить ее в свою таблицу. Да, кстати, я также знаю обо всех имеющихся здесь сетях!". И такой процесс происходит во всей распределенной сети. В действительности ни один из маршрутизаторов не обладает информацией "обо всех имеющихся здесь сетях" (безусловно, кроме тех, к которым каждый из них непосредственно подключен). Просто так предусмотрено алгоритмом, что маршрутизатор всегда должен действовать исходя из того, что в нем имеются сведения обо всех сетях. А если один из маршрутизаторов обладает ложной информацией, он передает эти ошибочные сведения всем другим маршрутизаторам, не учитывая того, что они фактически могут оказаться недостоверными. По этой причине для дистанционно-векторных протоколов требуются сложные алгоритмы, позволяющие маршрутизатору "поставить под сомнение" любые принятые им сведения об обновлениях маршрутов, чтобы предотвратить возникновение крупномасштабных маршрутных циклов. Из числа маршрутизирующих протоколов, рассматриваемых в этой книге, к категории дистанционно-векторных протоколов относятся протокол RIP и протокол IGRP (Interior Gateway Routing Protocol — протокол маршрутизации внутреннего шлюза). Протокол EIGRP также относится к типу дистанционно-векторных протоколов (просто является более развитым по сравнению с другими протоколами этого типа), но компания Cisco определяет его как "сбалансированный гибридный" протокол (возможно, потому, что дистанционно-векторные протоколы имеют такую плохую репутацию).

Алгоритм маршрутизации с учетом состояния каналов

Протоколы маршрутизации с учетом состояния каналов основаны на использовании алгоритма SPF (Shortest Path First — первоочередный выбор кратчайшего пути) Дейкстры (Dijkstra) и действуют немного иначе, чем дистанционно-векторные протоколы. По сути протоколы маршрутизации с учетом состояния каналов формируют "схему" распределенной сети, поэтому изначально позволяют получить лучшее представление о том, где что находится, по сравнению с дистанционно-векторными протоколами. Благодаря такому преимуществу протоколы маршрутизации с учетом состояния каналов являются наиболее развитыми и сложными, но в связи с этим их также намного сложнее понять и реализовать должным образом. Алгоритмы маршрутизации с учетом состояния каналов используются лишь в очень немногих маршрутизирующих протоколах.

Сбалансированный гибридный алгоритм

Такое название применяется в компании Cisco для обозначения алгоритма маршрутизации, применяемого в протоколе EIGRP. Применение для данных алгоритмов названия "сбалансированные гибридные" основано на том, что они воплощают в себе свойства и дистанционно-векторных алгоритмов маршрутизации, и алгоритмов маршрутизации с учетом состояния каналов. Например, хотя по существу в основе протокола EIGRP лежит дистанционно-векторный алгоритм, этот протокол предусматривает передачу дополнительной информации о топологии для формирования "схемы" распределенной сети, как предусмотрено алгоритмом маршрутизации с учетом состояния каналов.

Проведем простую аналогию, позволяющую понять различия между основными тремя типами алгоритмов маршрутизации. Предположим, что сетевой пакет — это путешественник, заблудившийся в пустыне, который ходит кругами в поисках воды и внезапно обнаруживает на своем пути развилку дорог. Если бы этот путешественник действовал на основе дистанционно-векторного протокола, то прочитал бы указатель с надписью "К воде ведет эта дорога" и последовал за ним, не думая о том, что кто-то мог просто позабавиться и переставить указатель. А если бы этот путешественник руководствовался протоколом с учетом состояния каналов, то вначале занялся бы составлением подробной схемы дорог и (в конечном итоге) нашел правильный маршрут. С другой стороны, если бы путешественник действовал в соответствии со сбалансированным гибридным протоколом, то не только составлял бы схему, но и старался скорее найти правильный маршрут. Маршрутизирующие протоколы подразделяются не только по своим алгоритмам, но и по своему назначению: они могут принадлежать либо к категории протоколов внутреннего шлюза (Interior Gateway Protocol — IGP), либо к категории протоколов внешнего шлюза (EGP).

Протоколы IGP обычно способны поддерживать должным образом только сети ограниченных размеров (хотя после небольшой настройки некоторые из них приобретают способность поддерживать довольно крупные сети) и поэтому они, как правило, намного проще по сравнению с протоколами EGP, способными поддерживать очень большие сети. Протоколы IGP предназначены для маршрутизации трафика внутри автономных систем (Autonomous System — AS). Термин "автономная система" — это просто замысловатый способ обозначения распределенной сети, которая находится под управлением одного административного органа. К категории автономных систем относятся все локальные сети и таковой же является большая часть корпоративных распределенных сетей. Но сама Internet представляет собой совокупность сетей, состоящую из множества автономных систем.

Протоколы EGP предназначены для поддержки огромных сетей. Основное назначение протоколов EGP состоит в маршрутизации трафика между автономными системами. Поскольку применение этих протоколов связано со значительными сложностями, они не рассматриваются в данной книге. Теперь рассмотрим метод, позволяющий справиться с распространенной проблемой, возникающей, когда маршрутизатору приходится принимать решения о перенаправлении трафика на основе информации, полученной от нескольких протоколов динамической маршрутизации[3].

Примечания

  1. Приведенный пример значительно упрощен для того, чтобы в нем не отражалась специфика каких-либо протоколов и в то же время он позволял проиллюстрировать основы метода обновления маршрутов. Целью этого примера является не демонстрация того, как протоколы динамической маршрутизации действуют на практике (эта тема рассматривается в других разделах), а предоставление читателю возможности усвоить основные сведения о процессе обновления маршрутов.
  2. Еще один крупный недостаток динамической маршрутизации— маршрутные циклы (или кольцевые маршруты). Предотвращение маршрутных циклов — это одна из основных задач большинства протоколов динамической маршрутизации, и во всех протоколах она решается немного по-разному.
  3. Метод, применяемый компанией Cisco для решения такой задачи, основан на использовании так называемого административного расстояния.