Основы сетевой маршрутизации

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

В стеке 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.

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

ПОКОЙСЯ С МИРОМ

Исследователи разработали Routing Information Protocol в 1980-х годах для использования в небольших или средних внутренних сетях, которые подключались к раннему Интернету. Протокол RIP способен маршрутизировать сообщения через сети максимум до 15 прыжков .

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

Традиционный RIP поддерживает только сети IPv4, но более новый стандарт RIPng также поддерживает IPv6 . RIP использует либо UDP- порты 520, либо 521 (RIPng) для своей связи. 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Надежность

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

Задержка

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

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

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

Самые популярные протоколы маршрутизации

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

Как работают протоколы маршрутизации

Каждый протокол сетевой маршрутизации выполняет три основные функции:

  1. discovery – определить другие маршрутизаторы в сети
  2. управление маршрутом – отслеживайте все возможные пункты назначения (для сетевых сообщений) вместе с некоторыми данными, описывающими путь каждого
  3. определение пути – принимать динамические решения о том, куда отправлять каждое сетевое сообщение

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

ПОКОЙСЯ С МИРОМ

Исследователи разработали Протокол маршрутизации информации в 1980-х годах для использования в небольших или средних внутренних сетях, которые подключались к раннему Интернету. Протокол RIP способен маршрутизировать сообщения через сети максимум до 15 прыжков.

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

Традиционный RIP поддерживает только сети IPv4, но более новый стандарт RIPng также поддерживает IPv6. RIP использует для связи порты UDP 520 или 521 (RIPng).

OSPF

Open Shortest Path First был создан для преодоления некоторых ограничений RIP, в том числе:

Ограничение на 15 переходов

Невозможность организовать сети в иерархию маршрутизации, что важно для управляемости и производительности в больших внутренних сетях

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

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

EIGRP и IGRP

Cisco разработала Протокол маршрутизации интернет-шлюза в качестве другой альтернативы RIP. Более новый Расширенный IGRP (EIGRP) сделал IGRP устаревшим, начиная с 1990-х годов. EIGRP поддерживает IP-подсети classless и повышает эффективность алгоритмов маршрутизации по сравнению со старым IGRP. Он не поддерживает иерархии маршрутизации, такие как RIP. Изначально созданный как собственный протокол, работающий только на устройствах семейства Cisco, EIGRP был разработан с целью упрощения конфигурации и повышения производительности по сравнению с OSPF.

IS-IS

Протокол Промежуточная система – промежуточная система работает аналогично протоколу OSPF. В то время как OSPF стал более популярным в целом, IS-IS по-прежнему широко используется поставщиками услуг, которые извлекли выгоду из протокола, более легко адаптируемого к их специализированной среде. В отличие от других протоколов этой категории, IS-IS не работает по Интернет-протоколу (IP) и использует свою собственную схему адресации.

BGP и EGP

Протокол пограничного шлюза – это стандарт Интернет-протокола внешнего шлюза (EGP). BGP обнаруживает изменения в таблицах маршрутизации и выборочно передает эти изменения другим маршрутизаторам по TCP/IP.

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

Протоколы многоадресной маршрутизации

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

  • DVMRP — Протокол маршрутизации многоадресной передачи расстояния
  • MOSPF — Открытый многоадресный маршрут
  • CBT — базовое дерево
  • PIM — независимая от протокола многоадресная рассылка

Протокол Независимой Многоадресной рассылки (PIM) используется сейчас. Он имеет два вида:

  • Режим PIM DenseВ этом режиме используются деревья на основе источника. Он используется в плотной среде, такой как LAN.
  • PIM разреженный режимВ этом режиме используются общие деревья. Он используется в редких средах, таких как WAN.

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

Так как статические маршруты настраиваются вручную, то любые изменения сетевой топологии требуют участия администратора для корректировки таблиц маршрутизации. В рамках маленькой сети такие изменения незначительны и происходят крайне редко. И наоборот, в крупных сетях корректировка таблиц маршрутизации может потребовать огромных затрат времени.
Если доступ к сети может быть получен только по одному направлению, то указание статического маршрута может оказаться вполне достаточным. Такой тип сети носит название тупиковой сети (stub network). Для настройки статической маршрутизации на роутере необходимо внести запись о сети, которую может достигнуть пакет, отправленный в определенный интерфейс.
Для этого необходимо в конфигурационном режиме ввести команду ip route, в которой указываем IP-адрес и маску сети назначения, тип и номер интерфейса, через который эта сеть может быть достигнута

R1(config)# ip route

Пример: Для сети, изображенной на рисунке необходимо настроить маршрутизацию таким образом, чтобы роутер (R1) пересылал пакеты в сети 92.154.228.0/22 и 92.154.232.0/22

Решением будет указанием 2 команд:

R1(config)# ip route 92.154.228.0 255.255.252.0 Se 1/0
R1(config)# ip route 92.154.232.0 255.255.252.0 Se 1/0

Для проверки конфигурации набираем команду show ip route

R1# show ip route
Codes: C — connected, S — static, I — IGRP, R — RIP, M — mobile,
D — EIGRP, EX — EIGRP external, O — OSPF,
92.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 92.154.224.0/22 is directly connected, FastEthernet0/0
S 92.154.228.0/22 is directly connected, Serial1/0
S 92.154.232.0/22 is directly connected, Serial1/0
C 92.154.252.0/30 is directly connected, Serial1/0

Как видно из вывода команды кроме подсоединенных сетей появились 2 записи по которым роутер будет все пришедшие к нему пакеты для сетей 92.154.228.0/22 и 92.154.232.0/22 маршрутизировать на интерфейс Serial1/0.

Для того чтобы пакеты из этих сетей уходили обратно необходимо подобным образом настроить роутеры R2 и R3

R2(config)# ip route 92.154.224.0 255.255.252.0 serial 1/0
R2(config)# ip route 92.154.232.0 255.255.252.0 serial 1/1

R3(config)# ip route 92.154.224.0 255.255.252.0 serial 1/0
R3(config)# ip route 92.154.228.0 255.255.252.0 serial 1/0

Еще настроить статическую маршрутизацию можно указав в команде ip route IP-адрес интерфейса следующего транзитного маршрутизатора вместо типа и номера интерфейса роутера, через который может быть достигнута сеть назначения. Например конфигурация роутера R1 для нашего примера будет:

R1(config)# ip route 92.154.228.0 255.255.252.0 92.154.252.2

R1(config)# ip route 92.154.232.0 255.255.252.0 92.154.252.2

R1# show ip route static
92.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
S 92.154.228.0/22 [1/0] via 92.154.252.2
S 92.154.232.0/22 [1/0] via 92.154.252.2

Для отмены статического маршрута используется команда no ip route

Плюсы и минусы

И в том, и в другом подходе есть свои плюсы и минусы.

В качестве LS протокола разберём OSPF, так как IS-IS не так распространен. Различия в этих протоколах минимальны.

OSPF – открытый протокол маршрутизации, рассчитывающий топологию сети по алгоритму Дейкстры (или его ещё называют SPF — Shortest Path First). Вычисляется кратчайший маршрут до каждого маршрутизатора в зоне – метрика. Чем меньше метрика, тем лучше маршрут. То есть это своеобразная стоимость движения по выбранному маршруту.

Для больших сетей протокол OSPF удобен разделением сети на зоны (area). Маршруты между зонами можно передавать суммарными – появляется логика DV протоколов. То есть маршрутизатор в одной зоне может не знать топологию в другой зоне и посылает свой трафик только на пограничный маршрутизатор своей зоны.

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

EIGRP – изначально проприетарный протокол, разработанный компанией Cisco (стал открытым в феврале 2013). Этот протокол относился к типу DV-протоколов. В отличии от протокола RIP, который рассчитывает только количество маршрутизаторов до удаленной сети, EIGRP в расчёте метрики изначально строит топологию всей сети с учетом 5 параметров:
1. Bandwidth (пропускная способность). Минимальная пропускная способность для данного маршрута (а не сумма цен (cost) в отличие от OSPF).
2. Delay (задержка). Суммарная задержка на всём пути маршрута.
3. Reliability (надежность). Наименьший показатель надёжности на всём пути маршрута, основанный на keepalive.
4. (загруженность). Наименьший показатель загруженности интерфейса на всём пути маршрута, основанный на количестве трафика, проходящего через интерфейс и настроенном на нём параметре bandwidth.
5. MTU. Минимальный размер MTU на всём пути маршрута.

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

Такой расчет метрики позволяет использовать самые оптимальные маршруты в сети. При этом EIGRP способен балансировать трафик с учётом загруженности канала или, например, отправлять трафик с учётом его пропускной способности в соотношении 80/20, распределяя нагрузку на двух каналах. Если мы не используем балансировку трафика, EIGRP запоминает альтернативные маршруты и в случае отказа основного канала мгновенно переключается на запасной (Backup).

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

При этом изначальная настройка EIGRP несколько проще, чем OSPF. Не надо задумываться о различных зонах и рассчитывать, какой именно маршрутизатор станет DR/BDR.

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

В дистанционно-векторном алгоритме (DVA) основная идея заключается в рассылке маршрутизаторов друг другу так называемого вектора расстояний. В векторе расстояний содержится информация (расстояние) от передающего маршрутизатора до всех соседних (известных) ему сетей.

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

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

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

Самым распространенным представителем дистанционно-векторного алгоритма является протокол RIP (Routing Information Protocol) – протокол маршрутной информации.

И что в итоге?

Делаем вывод, что протокол EIGRP хорош в плане балансировки трафика и в простоте его настройки. Однако, из-за отсутствия встроенного внутреннего разграничения на различные зоны, таблица маршрутизации на каждом маршрутизаторе в больших сетях (от 1000 маршрутизаторов) может занимать большие объемы оперативной памяти (но этот вопрос можно решить грамотным проектированием адресного пространства).

Второй недостаток – с протоколом EIGRP работает намного меньше специалистов, чем с протоколом OSPF. Чаще это специалисты Cisco. Третий недостаток протокола EIGRP – это его проприетарность. Хоть протокол и открыт с 2013 года, но до сих нет хороших реализаций среди различных вендоров, кроме самой Cisco.

Протокол OSPF работает практически на всём маршрутизирующем оборудовании. Есть встроенное разделение на зоны, что способствует уменьшению базы маршрутов и способствует масштабируемости сети.

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

EIGRP с учётом всех его плюсов перед OSPF стоит рассматривать только в тех случаях, когда вся сеть построена на оборудовании Cisco и не планируется закупка оборудования другого вендора.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: