Для каких объектов маршрутизатор выбирает маршрут

Обновлено: 06.07.2024

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

Связанные процессы

  • Различные процессы маршрутизации, на основе которых работает сетевой протокол (или протокол маршрутизации), например EIGRP (Enhanced Interior Gateway Routing Protocol), BGP (Border Gateway Protocol), IS-IS (Intermediate System-to-Intermediate System) или OSPF (Open Shortest Path First).
  • Сама таблица маршрутизации, которая получает сведения от процессов маршрутизации и отвечает на запросы, которые отправляет процесс переадресации.
  • Процесс переадресации, который запрашивает информацию из таблицы маршрутизации, чтобы принять решение о переадресации пакета.

Построение таблицы маршрутизации

  • Административное расстояние — это мера надежности источника маршрута. Если маршрутизатор получает данные о назначении из нескольких протоколов маршрутизации, их административные расстояния сравниваются и преимущество получают маршруты с меньшим административным расстоянием. Другими словами, это степень доверия источнику маршрута.
  • Метрики — это мера, которую протокол маршрутизации использует для расчета лучшего пути к заданному месту назначения, если известно о нескольких путях к этому месту назначения. Каждый протокол маршрутизации использует свою метрику.
  • Длина префикса

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

Чтобы лучше понять этот процесс, рассмотрим пример. Предположим, что в маршрутизаторе работает 4 процесса маршрутизации — EIGRP, OSPF, RIP и IGRP. Все 4 процесса получили данные о различных маршрутах к сети 192.168.24.0/24, и каждый выбрал наилучший путь к этой сети, используя внутренние метрики и процессы.

Каждый из четырех процессов пытается установить свой маршрут к сети 192.168.24.0/24 в таблицу маршрутизации. Каждому из процессов маршрутизации назначено административное расстояние, которое используется для принятия решения об установке маршрута.

Поскольку внутренний маршрут EIGRP имеет наилучшее административное расстояние (чем меньше административное расстояние, тем выше приоритет), он устанавливается в таблицу маршрутизации.

Резервные маршруты

Что другие протоколы — RIP, IGRP и OSPF — делают с неустановленными маршрутами? Что происходит, если оптимальный маршрут, полученный от протокола EIGRP, недоступен? ПО Cisco IOS использует два похода к решению этой проблемы. Первый заключается в том, что каждый процесс маршрутизации периодически пытается установить свои лучшие маршруты. Если наиболее предпочтительный маршрут недоступен, во время следующей попытки будет выбран маршрут, следующий по приоритету (в соответствии с административным расстоянием). Другое решение — протокол маршрутизации, которому не удалось установить маршрут в таблицу, должен удерживать этот маршрут. При этом таблица маршрутизации должна сообщить, если лучший маршрут даст сбой.

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

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

Изменение административного расстояния

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

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

Для полных протоколов изменение расстояния относительно просто. Для этого необходимо ввести команду distance в режиме субконфигурации процесса маршрутизации. Кроме того, расстояние маршрутов, полученных из одного источника можно изменять только в некоторых протоколах, и только для отдельных маршрутов.

Чтобы изменить расстояние для статических маршрутов, введите нужное расстояние после следующей команды ip route:

ip route network subnet mask next hop distance

Изменить расстояние для всех статических маршрутов одновременно нельзя.

Как метрики влияют на процесс выбора маршрута

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

Длины префиксов

  • EIGRP (внутренний): 192.168.32.0/26
  • RIP: 192.168.32.0/24
  • OSPF: 192.168.32.0/19

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

Принятие решений о переадресации

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

Если пакет прибывает на интерфейс маршрутизатора с адресом назначения 192.168.32.1, какой маршрут выберет маршрутизатор? Это зависит от длины префикса или количества бит, установленного в маске подсети. При переадресации пакета более длинным префиксам всегда отдается предпочтение над короткими.

В этом примере, пакет, отправленный по адресу 192.168.32.1 направляется в сеть 10.1.1.1, так как адрес 192.168.32.1 находится в сети 192.168.32.0/26 (192.168.32.0–192.168.32.63). Адресу соответствуют еще два доступных маршрута, но маршрут 192.168.32.0/26 имеет самый длинный префикс в таблице маршрутизации (26 бит против 24 и 19 бит).

Аналогично, если пакет, отправленный по адресу 192.168.32.100, прибывает на один из интерфейсов маршрутизатора, он перенаправляется по адресу 10.1.1.2, поскольку адрес 192.168.32.100 не попадает в сеть 192.168.32.0/26 (192.168.32.0–192.168.32.63), но попадает в сеть назначение 192.168.32.0/24 (192.168.32.0–192.168.32.255). И снова он попадает в диапазон сети 192.168.32.0/19, но сеть 192.168.32.0/24 имеет более длинный префикс.

IP Classless

При использовании команды конфигурации ip classless процессы маршрутизации и переадресации становятся довольно запутанными. В реальности команда "IP classless" влияет только на работу процессов переадресации IOS, но не влияет на построение таблицы маршрутизации. Если функция "IP classless" не настроена (с помощью команды no ip classless), маршрутизатор не будет переадресовать пакеты в подсети. Для примера снова поместим три маршрута в таблицу маршрутизации и проведем пакеты через маршрутизатор.

Примечание. Если суперсеть или маршрут по умолчанию получены от протоколов IS-IS или OSPF, команда конфигурации no ip classless игнорируется. В этом случае режим коммутация пакетов работает так, как если бы команда ip classless была настроена.

  • Пакет, направленный по адресу 172.30.33.1, переадресуется на 10.1.1.2, так как этот маршрут имеет наибольший префикс.
  • Пакет, направленный по адресу 172.30.33.1, переадресуется на 10.1.1.2, так как этот маршрут имеет наибольший префикс.
  • Пакет, направленный по адресу 192.168.10.1 переадресуется на 10.1.1.3. Так как сеть отсутствует в таблице маршрутизации, пакет переадресуется на маршрут по умолчанию.
  • Пакет, отправленный по адресу 172.30.254.1, отбрасывается.

На этом основана маршрутизация типа classful. Если часть основной сети известна, но подсеть этой основной сети, для которой предназначен пакет, неизвестна, пакет отбрасывается.

Самым сложным для понимания аспектом этого правила является то, что маршрутизатор использует только маршрут по умолчанию, если основная сеть назначения отсутствует в таблице маршрутизации.

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


Маршрутизатор удаленного узла настраивается следующим образом:

interface Serial 0
ip address 10.1.2.2 255.255.255.0
!
interface Ethernet 0
ip address 10.1.1.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.2.1
!
no ip classless

В такой конфигурации узлы на удаленном узле могут достичь назначения через Интернет (через облако 10.x.x.x), но не назначений в облаке 10.x.x.x, которое является корпоративной сетью. Поскольку удаленный маршрутизатор имеет данные о части сети 10.0.0.0/8 и двух подсетях с прямым подключением, но ничего не знает о другой подсети 10.x.x.x, он предполагает, что другие подсети диапазона не существуют, и отбрасывает пакеты, которые в них направлены. Однако назначение трафика, направленного в Интернет не находится в диапазоне адресов 10.x.x.x и поэтому корректно направляется в маршрут по умолчанию.

Настройка команды ip classless на удаленном маршрутизаторе устраняет эту проблему. Она позволяет удаленному маршрутизатору игнорировать границы сетей classful в таблице маршрутизации и просто выбирать маршрут с наибольшей длиной префикса.

Выводы

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

Маршрут с наибольшей длиной префикса всегда выигрывает среди маршрутов, установленных в таблице маршрутизации. Протокол маршрутизации с самым малым административным расстоянием выигрывает при установке маршрутов в таблицу маршрутизации.

Есть вопросы?
Обращайтесь в "Аквилон-А", чтобы узнать подробности и получить именно то, что вам требуется.

p, blockquote 1,0,0,0,0 -->

Марутшрутизация в компьютерных сетях

p, blockquote 2,0,0,0,0 -->

Маршрутизация состоит из двух этапов:

Этапы маршрутизации

p, blockquote 4,0,0,0,0 -->

Варианты действий маршрутизатора

В качестве примера, рассмотрим схему составной сети, здесь показаны отдельные подсети, для каждой подсети есть ее адрес и маска, а также маршрутизаторы, которые объединяют эти сети.

p, blockquote 5,0,0,0,0 -->

Схема маршрутизации пример

p, blockquote 6,0,0,0,0 -->

Рассмотрим маршрутизатор D, на него пришел пакет, и маршрутизатор должен решить, что ему делать с этим пакетом. Начнем с того, какие вообще возможны варианты действий у маршрутизатора. Первый вариант, сеть которой предназначен пакет подключена непосредственно к маршрутизатору. У маршрутизатора D таких сетей 3, в этом случае маршрутизатор передает пакет непосредственно в эту сеть.

p, blockquote 7,0,0,0,0 -->

Сети маршрутизатора

p, blockquote 8,0,0,0,0 -->

Второй вариант, нужная сеть подключена к другому маршрутизатору (А), и известно, какой маршрутизатор нужен. В этом случае, маршрутизатор D передает пакет на следующий маршрутизатор, который может передать пакет в нужную сеть, такой маршрутизатор называется шлюзом.

p, blockquote 9,0,0,0,0 -->

Передача пакетов у маршрутизаторов

p, blockquote 10,0,0,0,0 -->

Третий вариант, пришел пакет для сети, маршрут которой не известен, в этом случае маршрутизатор отбрасывает пакет. В этом отличие работы маршрутизатора от коммутатора, коммутатор отправляет кадр который он не знает куда доставить на все порты, маршрутизатор так не делает. В противном случае составная сеть очень быстро может переполнится мусорными пакетами для которых не известен маршрут доставки.

p, blockquote 11,0,0,0,0 -->

  • Во-первых у маршрутизатора есть несколько интерфейсов, к которым подключены сети. Нужно определить в какой из этих интерфейсов отправлять пакет.
  • Затем нужно определить, что именно делать с этим пакетом. Есть 2 варианта, можно передать пакет в сеть (192.168.1.0/24), либо можно передать его на один из маршрутизаторов подключенные к этой сети. Если передавать пакет на маршрутизатор, то нужно знать, какой именно из маршрутизаторов подключенных к этой сети, выбрать для передачи пакета.

Знать какой маршрутизатор выбрать

p, blockquote 13,0,0,0,0 -->

Таблица маршрутизации

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

p, blockquote 14,0,0,0,0 -->

Таблица маршрутизации

p, blockquote 15,0,1,0,0 -->

p, blockquote 16,0,0,0,0 -->

Таблица маршрутизации Windows

Продолжим рассматривать маршрутизатор D, у него есть три интерфейса. Ниже на картинке представлен вид таблицы маршрутизации для windows, которые в качестве идентификатора интерфейса используют ip-адрес, который назначен этому интерфейсу. Таким образом в столбце интерфейс есть 3 ip-адреса, которые соответствуют трем интерфейсам маршрутизатора.

p, blockquote 17,0,0,0,0 -->

Интерфейс маршрутизации

p, blockquote 18,0,0,0,0 -->

p, blockquote 19,0,0,0,0 -->

Шлюз подсоединен (Маршрутизация)

p, blockquote 20,0,0,0,0 -->

Если же нам нужно передать пакет на следующий маршрутизатор то в поле шлюз указывается ip-адрес этого маршрутизатора.

p, blockquote 21,0,0,0,0 -->

Шлюз (Маршрутизация)

p, blockquote 22,0,0,0,0 -->

Таблица маршрутизации Linux

В операционной системе linux таблица маршрутизации выглядит немного по-другому, основное отличие это идентификатор интерфейсов. В linux вместо ip-адресов используется название интерфейсов. Например, wlan название для беспроводного сетевого интерфейса, а eth0 название для проводного интерфейса по сети ethernet.

p, blockquote 23,0,0,0,0 -->

Таблица маршрутизации в Linux

p, blockquote 24,0,0,0,0 -->

Также здесь некоторые столбцы удалены для сокращения (Flags, Ref и Use). В других операционных системах и в сетевом оборудовании вид таблицы маршрутизации может быть несколько другой, но всегда будут обязательны столбцы ip-адрес, маска подсети, шлюз, интерфейс и метрика.

p, blockquote 25,0,0,0,0 -->

Только следующий шаг!

Часто возникает вопрос, что делать, если сеть для который пришел пакет находится не за одним маршрутизатором? Чтобы в неё попасть, нужно пройти не через один, а через несколько маршрутизаторов, что в этом случае нужно вносить в таблицу маршрутизации.

p, blockquote 26,0,0,0,0 -->

Следующий шаг в маршрутизации

p, blockquote 27,0,0,0,0 -->

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

p, blockquote 28,0,0,0,0 -->

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

p, blockquote 29,0,0,0,0 -->

маршрутизатор знает следующий шаг

p, blockquote 30,1,0,0,0 -->

Метрика

Можно заметить, что в нашей схеме в одну и ту же сеть, например вот в эту (10.2.0.0/16) можно попасть двумя путями, первый путь проходят через один маршрутизатор F, а второй путь через два маршрутизатора B и E.

p, blockquote 31,0,0,0,0 -->

2 пути маршрутизации

p, blockquote 32,0,0,0,0 -->

В этом отличие сетевого уровня от канального. На канальном уровне у нас всегда должно быть только одно соединение, а на сетевом уровне допускаются и даже поощряются для обеспечения надежности несколько путей к одной и той же сети.

p, blockquote 33,0,0,0,0 -->

Какой путь выбрать? Для этого используются поле метрика таблицы маршрутизации.

p, blockquote 34,0,0,0,0 -->

Таблица метрика в маршрутизации

p, blockquote 35,0,0,0,0 -->

Метрика это некоторое число, которые характеризует расстояние от одной сети до другой. Если есть несколько маршрутов до одной и той же сети, то выбирается маршрут с меньшей метрикой.

p, blockquote 36,0,0,0,0 -->

Метрика в маршрутизации

p, blockquote 37,0,0,0,0 -->

Раньше, метрика измерялось в количестве маршрутизаторов, таким образом расстояние через маршрутизатор F было бы один, а через маршрутизаторы B и E два.

p, blockquote 38,0,0,0,0 -->

метрика измерялось в количестве маршрутизаторов

p, blockquote 39,0,0,0,0 -->

p, blockquote 40,0,0,0,0 -->

Записи в таблице маршрутизации

Откуда появляются записей в таблице маршрутизации? Есть два варианта статическая маршрутизация и динамическая маршрутизация.

p, blockquote 41,0,0,0,0 -->

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

p, blockquote 42,0,0,0,0 -->

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

p, blockquote 43,0,0,0,0 -->

Маршрут по умолчанию

p, blockquote 44,0,0,0,0 -->

В таблице маршрутизации назначается специальный маршрутизатор по умолчанию, на которой отправляются все пакеты для неизвестных сетей, как правило это маршрутизатор, который подключен к интернет.

p, blockquote 45,0,0,1,0 -->

Предполагается что этот маршрутизатор лучше знает структуру сети, и способен найти маршрут в составной сети. Для обозначения маршрута по умолчанию, в таблице маршрутизации используются четыре нуля в адресе подсети и четыре нуля в маске (0.0.0.0, маска 0.0.0.0), а иногда также пишут default.

p, blockquote 46,0,0,0,0 -->

Ниже пример маршрута по умолчанию в таблице маршрутизации в операционной системе linux.

p, blockquote 47,0,0,0,0 -->

пример маршрута по умолчанию в таблице маршрутизации в операционной системе linux

p, blockquote 48,0,0,0,0 -->

Ip-адрес и маска равны нулю, в адрес и шлюз указываются ip-адрес маршрутизатора по умолчанию.

p, blockquote 49,0,0,0,0 -->

Длина маски подсети

Рассмотрим пример. Маршрутизатор принял пакет на ip-адрес (192.168.100.23), в таблице маршрутизации есть 2 записи (192.168.100.0/24 и 192.168.0.0/16) под который подходит этот ip-адрес, но у них разная длина маски. Какую из этих записей выбрать? Выбирается та запись, где маска длиннее, предполагается, что запись с более длинной маской содержит лучший маршрут интересующей нас сети.

p, blockquote 50,0,0,0,0 -->

Чтобы понять почему так происходит, давайте рассмотрим составную сеть гипотетического университета. Университет получил блок ip-адресов, разделил этот блок ip-адресов на две части, и каждую часть выделил отдельному кампусу.

p, blockquote 51,0,0,0,0 -->

Длина маски подсети в маршрутизации

p, blockquote 52,0,0,0,0 -->

На кампусе находятся свои маршрутизаторы, на которых сеть была дальше разделена на части предназначенные для отдельных факультетов. Разделение сетей производится с помощью увеличения длины маски, весь блок адресов имеет маску / 16, блоки кампусов имеют маску / 17, а блоки факультетов / 18.

p, blockquote 53,0,0,0,0 -->

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

p, blockquote 54,0,0,0,0 -->

фрагмент таблицы маршрутизации

p, blockquote 55,0,0,0,0 -->

p, blockquote 56,0,0,0,0 -->

p, blockquote 57,0,0,0,0 -->

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

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

  • Как правило такая таблица содержит описание присоединенной сети, который подключен данный компьютер.
  • Адрес маршрутизатора по умолчанию (шлюз или gateway) через который, выполняется подключение к интернет, или к корпоративной сети предприятия.
  • А также могут быть дополнительные маршруты к некоторым знакомым сетям, но это необязательно.

Для того чтобы просмотреть таблицу маршрутизации, можно использовать команды route или ip route (route print (Windows); route и ip route (Linux)).

p, blockquote 60,0,0,0,0 --> p, blockquote 61,0,0,0,1 -->

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

Для маршрутизации пакета маршрутизатор должен владеть следующей информацией:

  • Адрес назначения
  • Соседний маршрутизатор, от которого он может узнать об удаленных сетях
  • Доступные пути ко всем удаленным сетям
  • Наилучший путь к каждой удаленной сети
  • Методы обслуживания и проверки информации о маршрутизации

Маршрутизатор узнает об удаленных сетях от соседних маршрутизаторов или от сетевого администратора. Затем маршрутизатор строит таблицу маршрутизации, которая описывает, как найти удаленные сети.

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

Что такое маршрутизатор (шлюз, gateway)?

Маршрутизатором, или шлюзом, называется узел сети с несколькими IP-интерфейсами (содержащими свой MAC-адрес и IP-адрес), подключенными к разным IP-сетям, осуществляющий на основе решения задачи маршрутизации перенаправление дейтаграмм из одной сети в другую для доставки от отправителя к получателю.

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

Процесс IP-маршрутизации

IP-маршрутизация - простой процесс, который одинаков в сетях любого размера. Например, на рисунке показан процесс пошагового взаимодействия хоста А с хостом В в другой сети. В примере пользователь хоста А запрашивает по ping IP-адрес хоста В. Дальнейшие операции не так просты, поэтому рассмотрим их подробнее:

  • В командной строке пользователь вводит ping 172.16.20.2. На хосте А генерируется пакет с помощью протоколов сетевого уровня IP и ICMP.


  • IP обращается к протоколу ARP для выяснения сети назначения для пакета, просматривая IP-адрес и маску подсети хоста А. Это запрос к удаленному хосту, т.е. пакет не предназначен хосту локальной сети, поэтому пакет должен быть направлен маршрутизатору для перенаправления в нужную удаленную сеть.
  • Чтобы хост А смог послать пакет маршрутизатору, хост должен знать аппаратный адрес интерфейса маршрутизатора, подключенный к локальной сети. Сетевой уровень передает пакет и аппаратный адрес назначения канальному уровню для деления на кадры и пересылки локальному хосту. Для получения аппаратного адреса хост ищет местоположение точки назначения в собственной памяти, называемой кэшем ARP.
  • Если IP-адрес еще не был доступен и не присутствует в кэше ARP, хост посылает широковещательную рассылку ARP для поиска аппаратного адреса по IP-адресу 172.16.10.1. Именно поэтому первый запрос Ping обычно заканчивается тайм-аутом, но четыре остальные запроса будут успешны. После кэширования адреса тайм-аута обычно не возникает.
  • Маршрутизатор отвечает и сообщает аппаратный адрес интерфейса Ethernet, подключенного к локальной сети. Теперь хост имеет всю информацию для пересылки пакета маршрутизатору по локальной сети. Сетевой уровень спускает пакет вниз для генерации эхо-запроса ICMP (Ping) на канальном уровне, дополняя пакет аппаратным адресом, по которому хост должен послать пакет. Пакет имеет IP-адреса источника и назначения вместе с указанием на тип пакета (ICMP) в поле протокола сетевого уровня.
  • Канальный уровень формирует кадр, в котором инкапсулируется пакет вместе с управляющей информацией, необходимой для пересылки по локальной сети. К такой информации относятся аппаратные адреса источника и назначения, а также значение в поле типа, установленное протоколом сетевого уровня (это будет поле типа, поскольку IP по умолчанию пользуется кадрами Ethernet_II). Рисунок 3 показывает кадр, генерируемый на канальном уровне и пересылаемый по локальному носителю. На рисунке 3 показана вся информация, необходимая для взаимодействия с маршрутизатором: аппаратные адреса источника и назначения, IP-адреса источника и назначения, данные, а также контрольная сумма CRC кадра, находящаяся в поле FCS (Frame Check Sequence).
  • Канальный уровень хоста А передает кадр физическому уровню. Там выполняется кодирование нулей и единиц в цифровой сигнал с последующей передачей этого сигнала по локальной физической сети.


  • Сигнал достигает интерфейса Ethernet 0 маршрутизатора, который синхронизируется по преамбуле цифрового сигнала для извлечения кадра. Интерфейс маршрутизатора после построения кадра проверяет CRC, а в конце приема кадра сравнивает полученное значение с содержимым поля FCS. Кроме того, он проверяет процесс передачи на отсутствие фрагментации и конфликтов носителя.
  • Проверяется аппаратный адрес назначения. Поскольку он совпадает с адресом маршрутизатора, анализируется поле типа кадра для определения дальнейших действий с этим пакетом данных. В поле типа указан протокол IP, поэтому маршрутизатор передает пакет процессу протокола IP, исполняемому маршрутизатором. Кадр удаляется. Исходный пакет (сгенерированный хостом А) помещается в буфер маршрутизатора.
  • Протокол IP смотрит на IP-адрес назначения в пакете, чтобы определить, не направлен ли пакет самому маршрутизатору. Поскольку IP-адрес назначения равен 172.16.20.2, маршрутизатор определяет по своей таблице маршрутизации, что сеть 172.16.20.0 непосредственно подключена к интерфейсу Ethernet 1.
  • Маршрутизатор передает пакет из буфера в интерфейс Ethernet 1. Маршрутизатору необходимо сформировать кадр для пересылки пакета хосту назначения. Сначала маршрутизатор проверяет свой кэш ARP, чтобы определить, был ли уже разрешен аппаратный адрес во время предыдущих взаимодействий с данной сетью. Если адреса нет в кэше ARP, маршрутизатор посылает широковещательный запрос ARP в интерфейс Ethernet 1 для поиска аппаратного адреса для IP-адреса 172.16.20.2.
  • Хост В откликается аппаратным адресом своего сетевого адаптера на запрос ARP. Интерфейс Ethernet 1 маршрутизатора теперь имеет все необходимое для пересылки пакета в точку окончательного приема. На рисунке показывает кадр, сгенерированный маршрутизатором и переданный по локальной физической сети.


Кадр, сгенерированный интерфейсом Ethernet 1 маршрутизатора, имеет аппаратный адрес источника от интерфейса Ethernet 1 и аппаратный адрес назначения для сетевого адаптера хоста В. Важно отметить, что, несмотря на изменения аппаратных адресов источника и назначения, в каждом передавшем пакет интерфейсе маршрутизатора, IP-адреса источника и назначения никогда не изменяются. Пакет никоим образом не модифицируется, но меняются кадры.

  • Хост В принимает кадр и проверяет CRC. Если проверка будет успешной, кадр удаляется, а пакет передается протоколу IP. Он анализирует IP-адрес назначения. Поскольку IP-адрес назначения совпадает с установленным в хосте В адресом, протокол IP исследует поле протокола для определения цели пакета.
  • В нашем пакете содержится эхо-запрос ICMP, поэтому хост В генерирует новый эхо-ответ ICMP с IP-адресом источника, равным адресу хоста В, и IP-адресом назначения, равным адресу хоста А. Процесс запускается заново, но в противоположном направлении. Однако аппаратные адреса всех устройств по пути следования пакета уже известны, поэтому все устройства смогут получить аппаратные адреса интерфейсов из собственных кэшей ARP.

В крупных сетях процесс происходит аналогично, но пакету придется пройти больше участков по пути к хосту назначения.

Таблицы маршрутизации

В стеке TCP/IP маршрутизаторы и конечные узлы принимают решения о том, кому передавать пакет для его успешной доставки узлу назначения, на основании так называемых таблиц маршрутизации (routing tables).

Таблица представляет собой типичный пример таблицы маршрутов, использующей IP-адреса сетей, для сети, представленной на рисунке.


Таблица маршрутизации для Router 2


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

Как нетрудно видеть, в таблице определено несколько маршрутов с разными параметрами. Читать каждую такую запись в таблице маршрутизации нужно следующим образом:

Чтобы доставить пакет в сеть с адресом из поля Сетевой адрес и маской из поля Маска сети, нужно с интерфейса с IP-адресом из поля Интерфейс послать пакет по IP-адресу из поля Адрес шлюза, а «стоимость» такой доставки будет равна числу из поля Метрика.

В этой таблице в столбце "Адрес сети назначения" указываются адреса всех сетей, которым данный маршрутизатор может передавать пакеты. В стеке TCP/IP принят так называемый одношаговый подход к оптимизации маршрута продвижения пакета (next-hop routing) – каждый маршрутизатор и конечный узел принимает участие в выборе только одного шага передачи пакета. Поэтому в каждой строке таблицы маршрутизации указывается не весь маршрут в виде последовательности IP-адресов маршрутизаторов, через которые должен пройти пакет, а только один IP-адрес - адрес следующего маршрутизатора, которому нужно передать пакет. Вместе с пакетом следующему маршрутизатору передается ответственность за выбор следующего шага маршрутизации. Одношаговый подход к маршрутизации означает распределенное решение задачи выбора маршрута. Это снимает ограничение на максимальное количество транзитных маршрутизаторов на пути пакета.

Для отправки пакета следующему маршрутизатору требуется знание его локального адреса, но в стеке TCP/IP в таблицах маршрутизации принято использование только IP-адресов для сохранения их универсального формата, не зависящего от типа сетей, входящих в интерсеть. Для нахождения локального адреса по известному IP-адресу необходимо воспользоваться протоколом ARP.

Одношаговая маршрутизация обладает еще одним преимуществом - она позволяет сократить объем таблиц маршрутизации в конечных узлах и маршрутизаторах за счет использования в качестве номера сети назначения так называемого маршрута по умолчанию – default (0.0.0.0), который обычно занимает в таблице маршрутизации последнюю строку. Если в таблице маршрутизации есть такая запись, то все пакеты с номерами сетей, которые отсутствуют в таблице маршрутизации, передаются маршрутизатору, указанному в строке default. Поэтому маршрутизаторы часто хранят в своих таблицах ограниченную информацию о сетях интерсети, пересылая пакеты для остальных сетей в порт и маршрутизатор, используемые по умолчанию. Подразумевается, что маршрутизатор, используемый по умолчанию, передаст пакет на магистральную сеть, а маршрутизаторы, подключенные к магистрали, имеют полную информацию о составе интерсети.

Кроме маршрута default, в таблице маршрутизации могут встретиться два типа специальных записей - запись о специфичном для узла маршруте и запись об адресах сетей, непосредственно подключенных к портам маршрутизатора.

Специфичный для узла маршрут содержит вместо номера сети полный IP-адрес, то есть адрес, имеющий ненулевую информацию не только в поле номера сети, но и в поле номера узла. Предполагается, что для такого конечного узла маршрут должен выбираться не так, как для всех остальных узлов сети, к которой он относится. В случае, когда в таблице есть разные записи о продвижении пакетов для всей сети N и ее отдельного узла, имеющего адрес N,D, при поступлении пакета, адресованного узлу N,D, маршрутизатор отдаст предпочтение записи для N,D.

Записи в таблице маршрутизации, относящиеся к сетям, непосредственно подключенным к маршрутизатору, в поле "Метрика" содержат нули («подключено»).

Алгоритмы маршрутизации

Основные требования к алгоритмам маршрутизации:

  • точность;
  • простота;
  • надёжность;
  • стабильность;
  • справедливость;
  • оптимальность.

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

  • алгоритмы простой маршрутизации;
  • алгоритмы фиксированной маршрутизации;
  • алгоритмы адаптивной маршрутизации.

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

Простая маршрутизация

Это способ маршрутизации не изменяющийся при изменении топологии и состоянии сети передачи данных (СПД).

Простая маршрутизация обеспечивается различными алгоритмами, типичными из которых являются следующие:

В целом, простая маршрутизация не обеспечивает направленную передачу пакета и имеет низкую эффективности. Основным ее достоинством является обеспечение устойчивой работы сети при выходе из строя различных частей сети.

Фиксированная маршрутизация

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

  • Однопутевая фиксированная маршрутизация – это когда между двумя абонентами устанавливается единственный путь. Сеть с такой маршрутизацией неустойчива к отказам и перегрузкам.
  • Многопутевая фиксированная маршрутизация – может быть установлено несколько возможных путей и вводится правило выбора пути. Эффективность такой маршрутизации падает при увеличении нагрузки. При отказе какой-либо линии связи необходимо менять таблицу маршрутизации, для этого в каждом узле связи храниться несколько таблиц.

Адаптивная маршрутизация

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

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

Показатели алгоритмов (метрики)

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

В алгоритмах маршрутизации используется множество различных показателей. Сложные алгоритмы маршрутизации при выборе маршрута могут базироваться на множестве показателей, комбинируя их таким образом, что в результате получается один гибридный показатель. Ниже перечислены показатели, которые используются в алгоритмах маршрутизации:

  • Длина маршрута.
  • Надежность.
  • Задержка.
  • Ширина полосы пропускания.

Длина маршрута

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

Надежность

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

Задержка

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

Полоса пропускания

Полоса пропускания относится к имеющейся мощности трафика какого-либо канала. При прочих равных показателях, канал Ethernet 10 Mbps предпочтителен любой арендованной линии с полосой пропускания 64 Кбайт/с. Хотя полоса пропускания является оценкой максимально достижимой пропускной способности канала, маршруты, проходящие через каналы с большей полосой пропускания, не обязательно будут лучше маршрутов, проходящих через менее быстродействующие каналы.

Читайте также: