Что такое маршруты динамические маршруты как реализовать
Динамическая маршрутизация
Материал из Xgu.ru
Динамическая маршрутизация — вид маршрутизации, при котором таблица маршрутизации редактируется программно. В случае UNIX-систем демонами маршрутизации; в других системах — служебными программами, которые называются иначе, но фактически играют ту же роль.
Демоны маршрутизации обмениваются между собой информацией, которая позволяет им заполнить таблицу маршрутизации наиболее оптимальными маршрутами. Протоколы, с помощью которых производится обмен информацией между демонами, называется протоколами динамической маршрутизации.
Демоны динамической маршрутизации:
Как правило, демоны динамической маршрутизации поддерживают множество протоколов и используют информацию, полученную по одним протоколам для работы других.
Содержание
[править] Протоколы динамической маршрутизации
Протоколы динамической маршрутизации:
[править] Различие в алгоритмах
Сами протоколы динамической маршрутизации можно классифицировать по нескольким критериям.
Компания Cisco ранее называла протокол EIGRP смешанный протокол, однако по своим принципам работы, EIGRP дистанционно-векторный протокол.
[править] Область применения
По области применения разделяют на:
[править] IGP (Interior Gateway Protocol)
IGP-протоколы используются для передачи информации о маршрутах в пределах автономной системы (AS).
Как правило, для упрощения, можно воспринимать автономную систему, как сеть одной компании.
К современным IGP-протоколам, как правило, такие требования:
Если говорить об использовании IGP-протоколов в провайдерской среде, то также могут добавиться такие требования:
[править] EGP (Exterior Gateway Protocol)
EGP-протоколы используются для передачи информации между автономными системами (AS).
На текущий момент представитель этого класса протоколов один: BGP.
Хотя, чаще всего, BGP используется для передачи маршрутов между разными AS, он может также использоваться и внутри корпоративной сети. Особенно, когда сеть большая.
К EGP-протоколам, как правило, такие требования:
Динамическая маршрутизация
3.1. Общие сведения о протоколах динамической маршрутизации
Маршрутизаторы функционируют в сетях с коммутацией пакетов, где все возможные маршруты уже существуют. Процесс прокладывания пути производится либо вручную администратором (статическая маршрутизация ), либо автоматически маршрутизирующим протоколом (динамическая маршрутизация).
Маршрутизаторы, зная информацию о пути к некоторым сетям, обмениваются этой информацией с другими устройствами. После таких обновлений все маршрутизаторы будут иметь согласованную информацию о маршрутах к доступным сетям. Процесс обмена обновлениями реализуют протоколы маршрутизации. Таким образом, протоколы маршрутизации разделяют сетевую информацию между маршрутизаторами.
При изменениях в топологии требуется некоторое время (время сходимости или конвергенции) для согласования информации в таблицах маршрутизации всех маршрутизаторов сети. Время сходимости является важным фактором при выборе протокола маршрутизации.
Протоколы внутренней маршрутизации | Протоколы внешней маршрутизации | |||
---|---|---|---|---|
Вектора расстояния | Состояния канала | Вектора пути | ||
RIP-2 | EIGRP | OSPF | IS-IS | BGP |
Протоколы вектора расстояния определяют расстояние и направление, т.е. вектор соединения в составной сети на пути к адресату. При использовании протокола вектора расстояния маршрутизаторы посылают всю или часть таблицы маршрутизации соседним (смежным) маршрутизаторам. В таких протоколах как RIP и RIP-2 расстояние выражается в количестве переходов (hop count) в соединении на пути от узла источника к адресату назначения. Обмен обновлениями ( update ) или модификациями происходит периодически, даже если в сети нет никаких изменений, на что тратится значительная часть полосы пропускания. Получив обновление маршрутной информации, маршрутизатор может заново вычислить все известные пути и модернизировать таблицу маршрутизации.
Протоколы состояния канала создают полную картину топологии сети и вычисляют кратчайшие пути ко всем сетям назначения. Если путей с одинаковой метрикой несколько, то выбирается первый из вычисленных. Рассылка обновлений маршрутной информации производится только при изменениях топологии сети. Протоколы состояния канала (или соединения) быстрее реагируют на изменения в сети по сравнению с протоколами вектора расстояния, но при этом требуют больших вычислительных ресурсов.
RIP (Routing Information Protocol) | — | протокол маршрутизации на основе вектора расстояния (первая и вторая версии), |
EIGRP (Enhanced Interior Gateway Routing Protocol) | — | расширенный протокол внутренней маршрутизации, |
OSPF (Open Shortest Path First) | — | открытый протокол маршрутизации по состоянию канала. |
Перечисленные протоколы используют разные параметры метрики.
Каждый алгоритм по своему интерпретирует выбор наиболее рационального пути на основе метрики. Обычно меньшее значение метрики соответствует лучшему маршруту. Метрика может базироваться на одном или на нескольких параметрах пути. В протоколах маршрутизации наиболее часто используются следующие параметры метрики:
Полоса пропускания (Bandwidth) | — | способность соединения передавать данные с некоторой скоростью. Например, соединения сети FastEthernet передающие данные со скоростью 100 Мбит/c, предпочтительней каналов Е1 со скоростью 2,048 Мбит/c. |
Задержка (Delay) | — | это длительность времени прохождения пакета от источника до адресата назначения. Задержка зависит от количества промежуточных соединений и их типов, объема буферных устройств маршрутизаторов, сходимости сети и расстояния между узлами. |
Загрузка (Load) | — | определяется количеством информации, загружающей сетевые ресурсы (маршрутизаторы и каналы). Чем больше загрузка, тем больше очереди на обслуживание, тем дольше пакет будет в пути. |
Надежность (Reliability) | — | определяется интенсивностью ошибок на каждом сетевом соединении. |
Количество переходов (Hop count) | — | это количество маршрутизаторов, через которые пакет должен пройти на пути к адресату назначения (число переходов от маршрутизатора к маршрутизатору). |
Стоимость (Cost) | — | обобщенный параметр затрат на передачу пакета к адресату назначения. Иногда стоимость имеет произвольное значение, назначенное администратором. |
Наиболее известным в сети Internet протоколом вектора расстояния (distance-vector) является Routing Information Protocol (RIP), который использует в качестве метрики число переходов ( hop count ) на пути к адресату назначения.
Другим простым протоколом вектора расстояния является Interior Gateway Routing Protocol (IGRP), который был разработан в корпорации Cisco. Для работы в больших сетях на смену ему пришел протокол Enhanced IGRP (EIGRP), который включает много особенностей протоколов как типа link-state, так и distance-vector. Поэтому он, по сути, является гибридным протоколом. Однако разработчики фирмы Cisco относят его к протоколам distance-vector.
Таким образом, протоколы вектора расстоянияRIP характеризуются медленной сходимостью, т.е. длительным временем согласования информации в таблицах маршрутизации при изменениях топологии сети.
Протокол вектора расстояния RIP использует счетчик переходов ( hop count ) в качестве метрики, чтобы определить расстояние до определенного соединения в составной сети. Если существует несколько путей, то RIP выберет путь с наименьшим числом маршрутизаторов или переходов к адресату назначения. Однако выбранный маршрут не всегда является лучшим путем к адресату, поскольку выбранный маршрут с наименьшим числом устройств может характеризоваться меньшей скоростью передачи (более узкой полосой пропускания, меньшей пропускной способностью) по сравнению с альтернативными маршрутами, созданными другими протоколами. Кроме того, RIP не может направлять пакеты далее 15 переходов, поэтому он рекомендован для работы в малых и средних сетях. Рассылка обновлений протоколом первой версии RIPv1 производится в широковещательном режиме ( адрес 255.255.255.255).
Протокол первой версии RIPv1 требует, чтобы все устройства в подсети использовали одинаковую маску подсети, т.к. RIP не включает информацию о маске подсети в обновления маршрутизации. Такой метод получил название маршрутизации на основе классов (classful routing), что ограничивает применение протокола RIPv1 в современных сетях.
Протокол вектора расстояния EIGRP обеспечивает быструю сходимость и малое количество служебной информации, передаваемой в обновлениях (только об изменениях в сети), что экономит полосу пропускания. EIGRP использует ряд функций, применяемые в протоколах состояния канала (link-state). Протоколы EIGRP работают с оборудованием CISCO и не всегда поддерживаются программным обеспечением аппаратуры других фирм. Рассылка обновлений протоколом EIGRP производится в многоадресном режиме ( адрес 224.0.0.10).
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Динамическая маршрутизация
Динамическая маршрутизация, с другой стороны, позволяет избавиться от многих ограничений статической маршрутизации. Основная идея динамической маршрутизации состоит в том, что для передачи информации между маршрутизаторами в сетевой топологии применяется специальный протокол, называемый маршрутизирующим протоколом. Например, рассмотрим сеть, показанную на рис. 1.
Ниже перечислены маршрутизаторы и сети, к которым они подключены, как показано на рис. 1.
Чтобы можно было проще представить, как работают средства динамической маршрутизации, рассмотрим процесс обновления маршрутов на примере сети, описанной выше. На рис. 2 показано, как все маршрутизаторы рассылают свои начальные анонсы по всем другим соседним маршрутизаторам. Поэтому Scully, например, отправляет маршрутизаторам Mulder и Krychek анонс, содержащий информацию об известных ему сетях (в данный момент ему известно о существовании только сетей 1, 3 и 4.)
Перед рассылкой начального анонса (см. рис. 2) маршрутизаторы имели информацию о сетях, перечисленных ниже.
После получения этой информации маршрутизаторы вводят в свои таблицы соответствующие записи и на следующем этапе обновления рассылают новые данные, содержащие уточненный список сетей, как показано на рис. 3. Динамически полученные данные из таблицы маршрутизации показаны курсивом, а в круглых скобках указаны маршрутизаторы, передавшие ту информацию о сетях, которая введена в таблицы.
Ко времени передачи этого второго объявления, известными сетями из числа показанных на рис. 3 были следующие (в круглых скобках показаны маршрутизаторы, от которых получена информация о сети).
Если распределенная сеть находится в установившемся состоянии, то маршрутизаторы имеют следующую информацию о сетях, указанных на рис. 4 (в круглых скобках показаны маршрутизаторы, от которых получена информация о сети).
Рассмотрим предназначение маршрутизирующих протоколов:
Эти цели являются одинаковыми для всех маршрутизирующих протоколов, независимо от используемого алгоритма маршрутизации.
Маршрутизирующие протоколы обычно классифицируются по типу применяемых в них алгоритмов. Ниже перечислены три основных алгоритма, применяемых в маршрутизирующих протоколах, наряду с кратким описанием каждого из них.
Содержание
Дистанционно-векторный алгоритм
Алгоритм маршрутизации с учетом состояния каналов
Протоколы маршрутизации с учетом состояния каналов основаны на использовании алгоритма SPF (Shortest Path First — первоочередный выбор кратчайшего пути) Дейкстры (Dijkstra) и действуют немного иначе, чем дистанционно-векторные протоколы. По сути протоколы маршрутизации с учетом состояния каналов формируют «схему» распределенной сети, поэтому изначально позволяют получить лучшее представление о том, где что находится, по сравнению с дистанционно-векторными протоколами. Благодаря такому преимуществу протоколы маршрутизации с учетом состояния каналов являются наиболее развитыми и сложными, но в связи с этим их также намного сложнее понять и реализовать должным образом. Алгоритмы маршрутизации с учетом состояния каналов используются лишь в очень немногих маршрутизирующих протоколах.
Сбалансированный гибридный алгоритм
Такое название применяется в компании Cisco для обозначения алгоритма маршрутизации, применяемого в протоколе EIGRP. Применение для данных алгоритмов названия «сбалансированные гибридные» основано на том, что они воплощают в себе свойства и дистанционно-векторных алгоритмов маршрутизации, и алгоритмов маршрутизации с учетом состояния каналов. Например, хотя по существу в основе протокола EIGRP лежит дистанционно-векторный алгоритм, этот протокол предусматривает передачу дополнительной информации о топологии для формирования «схемы» распределенной сети, как предусмотрено алгоритмом маршрутизации с учетом состояния каналов.
Проведем простую аналогию, позволяющую понять различия между основными тремя типами алгоритмов маршрутизации. Предположим, что сетевой пакет — это путешественник, заблудившийся в пустыне, который ходит кругами в поисках воды и внезапно обнаруживает на своем пути развилку дорог. Если бы этот путешественник действовал на основе дистанционно-векторного протокола, то прочитал бы указатель с надписью «К воде ведет эта дорога» и последовал за ним, не думая о том, что кто-то мог просто позабавиться и переставить указатель. А если бы этот путешественник руководствовался протоколом с учетом состояния каналов, то вначале занялся бы составлением подробной схемы дорог и (в конечном итоге) нашел правильный маршрут. С другой стороны, если бы путешественник действовал в соответствии со сбалансированным гибридным протоколом, то не только составлял бы схему, но и старался скорее найти правильный маршрут. Маршрутизирующие протоколы подразделяются не только по своим алгоритмам, но и по своему назначению: они могут принадлежать либо к категории протоколов внутреннего шлюза (Interior Gateway Protocol — IGP), либо к категории протоколов внешнего шлюза (EGP).
Протоколы IGP обычно способны поддерживать должным образом только сети ограниченных размеров (хотя после небольшой настройки некоторые из них приобретают способность поддерживать довольно крупные сети) и поэтому они, как правило, намного проще по сравнению с протоколами EGP, способными поддерживать очень большие сети. Протоколы IGP предназначены для маршрутизации трафика внутри автономных систем (Autonomous System — AS). Термин «автономная система» — это просто замысловатый способ обозначения распределенной сети, которая находится под управлением одного административного органа. К категории автономных систем относятся все локальные сети и таковой же является большая часть корпоративных распределенных сетей. Но сама Internet представляет собой совокупность сетей, состоящую из множества автономных систем.
Динамическая маршрутизация на коммутаторах SNR
В рамках данной темы планируется написание цикла статей. Сегодня мы расскажем о динамической маршрутизации, которая используется практически в каждой более-менее крупной сети, будь то сеть предприятия или сеть провайдера.
Динамическая маршрутизация
Использование статической маршрутизации оправдано только в случае небольшого количества подсетей и полной уверенности в том, что конфигурация сети не будет меняться, ведь в случае изменений в сети необходимо реконфигурировать все маршруты вручную. Здесь и поможет применение одного (а то и нескольких) протоколов динамической маршрутизации, которые позволяют автоматически выстраивать и перестраивать маршруты в сети в случае аварий, при масштабировании сети, а также балансировке трафика.
OSPF работает поверх протокола IP и использует мультикаст-адреса для обмена маршрутной информацией. Данные о маршрутах в протоколе OSPF передаются в виде сообщений LSA (Link State Advertisement). Маршрутизаторы OSPF хранят информацию о всех маршрутах сети в базе состояния каналов LSDB и выбирают из неё лучшие.
Полностью теорию работы в рамках этой статьи мы рассматривать не будем, OSPF довольно популярный протокол и о нем написано очень много материалов, которые можно легко найти в сети. Например здесь или здесь. Однако для понимания конфигурации нам потребуются некоторые понятия. Рассмотрим их дальше.
Типы маршрутизаторов в OSPF
Типы зон OSPF
Разделение AS на зоны OSPF может снизить загрузку CPU маршрутизаторов, сократить размер LSDB и сократить количество пакетов LSA.
Базовая настройка OSPF
В качестве первого примера рассмотрим случай, если у нас всего одна магистральная зона (Area 0).
Допустим, у нас имеются коммутаторы SNR-S2995G-24FX, которые используются на уровне агрегации в сети оператора связи. На R1 терминируются клиенты с подсетью 10.10.11.0/24, которую мы хотим анонсировать и передать на BRAS, а также хотим, чтобы между коммутаторами была L3-связность.
В нашем примере схема будет выглядеть следующим образом:
conf t
vlan 10;3000
interface vlan 10
ip address 172.31.1.1 255.255.255.252
!
interface vlan 1000
ip address 10.10.11.1 255.255.255.0
!
interface Loopback1
ip address 10.10.10.11 255.255.255.255
!
interface E1/0/1
switchport access vlan 10
!
router ospf 1
ospf router-id 10.10.10.11
network 172.31.1.0/30 area 0
network 10.10.11.0/24 area 0
network 10.10.10.11/32 area 0
end
conf t
vlan 10
interface vlan 10
ip address 172.31.1.2 255.255.255.252
!
interface Loopback1
ip address 10.10.10.12 255.255.255.255
!
interface E1/0/1
switchport access vlan 10
!
router ospf 1
ospf router-id 10.10.10.12
network 172.31.1.0/30 area 0
network 10.10.10.12/32 area 0
end
Убедимся, что соседство установилось и подсети R1 доступны через R2 и наоборот:
Как мы видим, соседство установилось и был выбран DR. В нашем случае, R2.
То же мы видим и на R2. Адрес Loopback1 и клиентская подсеть доступны с R2.
Настройка OSPF с использованием нескольких зон
Производительность коммутаторов ограничена. Размеры LSDB могут достигать размеров в тысячи маршрутов, при этом коммутатор тратит много ресурсов на просмотр своей таблицы маршрутизации, а если учесть, что помимо OSPF коммутатор должен обрабатывать и другие задачи, загрузка CPU может достигать критически высоких значений, что скажется на производительности коммутатора. В таких случаях целесообразно применение деления на зоны, которые помогут уменьшить количество маршрутов в LSDB, тем самым снизив нагрузку на CPU. Давайте рассмотрим пример использования NSSA и Totally Stubby area на следующей схеме:
R1:
vlan 1;100;300;1000
Interface Ethernet1/0/1
description R2
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 100
!
Interface Ethernet1/0/3
description R3
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 300
!
interface Vlan100
ip address 172.31.1.1 255.255.255.252
!
interface Vlan300
ip address 172.31.3.2 255.255.255.252
!
interface Vlan1000
ip address 10.10.100.1 255.255.255.0
!
interface Loopback1
ip address 10.10.10.1 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.1
passive-interface Vlan1000
network 172.31.1.0/30 area 0
network 172.31.3.0/30 area 0
redistribute connected
!
vlan 1;100;200;400
!
Interface Ethernet1/0/1
description R1
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 100
!
Interface Ethernet1/0/2
description R3
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 200
!
Interface Ethernet1/0/4
description R4
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 400
!
interface Vlan100
ip address 172.31.1.2 255.255.255.252
!
interface Vlan200
ip address 172.31.2.1 255.255.255.252
!
interface Vlan400
ip address 172.31.4.1 255.255.255.252
!
interface Loopback1
ip address 10.10.10.2 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.2
area 1 stub no-summary
network 172.31.1.0/30 area 0
network 172.31.2.0/30 area 0
network 172.31.4.0/30 area 1
redistribute connected
!
vlan 1;200;300;500
!
Interface Ethernet1/0/2
description R2
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 200
!
Interface Ethernet1/0/3
description R1
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 300
!
Interface Ethernet1/0/5
description R5
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 500
!
interface Vlan200
ip address 172.31.2.2 255.255.255.252
!
interface Vlan300
ip address 172.31.3.1 255.255.255.252
!
interface Vlan500
ip address 172.31.5.1 255.255.255.252
!
interface Loopback1
ip address 10.10.10.3 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.3
area 2 nssa default-information-originate
network 172.31.2.0/30 area 0
network 172.31.3.0/30 area 0
network 172.31.5.0/30 area 2
redistribute connected
!
vlan 1;400;3000
!
interface Vlan400
ip address 172.31.4.2 255.255.255.252
!
interface Vlan3000
ip address 10.10.120.1 255.255.255.0
!
Interface Ethernet1/0/4
description R2
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 400
!
interface Loopback1
ip address 10.10.10.4 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.4
passive-interface Vlan3000
area 1 stub
network 10.10.10.4/32 area 1
network 10.10.120.0/24 area 1
network 172.31.4.0/30 area 1
!
vlan 1;500;2000
!
Interface Ethernet1/0/5
description R3
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 500;2000
!
interface Vlan500
ip address 172.31.5.2 255.255.255.252
!
interface Vlan2000
ip address 10.10.110.1 255.255.255.0
!
interface Loopback1
ip address 10.10.10.5 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.5
passive-interface Vlan2000
area 2 nssa
network 172.31.5.0/30 area 2
redistribute connected
!
На данной схеме приведена сеть, в которой используется как Totally stubby (R2-R4), так и NSSA (R3-R5) зоны.
Внешние маршруты других зон в NSSA (R5) будут заменены на маршрут по умолчанию.
Для Totally stubby-зоны (R4) все маршруты будут заменены на маршрут по умолчанию.
Для анонса сетей, находящихся в Totally stubby зоне, необходимо указать их в Router OSPF.
Посмотрим на таблицу маршрутов OSPF для маршрутизатора R1:
В данной таблице мы видим все маршруты, которые анонсируются на R1 путем OSPF. Маршруты до Loopback-адресов R2, R3 и R5 анонсируются как «E» (LSA Type 5), то есть, получены путем перекладывания маршрутов из другого протокола маршрутизации (в нашем случае из connected). Цифра 1 или 2 после буквы «E» показывает на тип метрики. 1 тип увеличивает метрику маршрута при расчете SPF, а 2 тип нет:
Давайте посмотрим на таблицу маршрутизации OSPF на R2 и R4:
Давайте посмотрим что у нас в NSSA на R5:
Так как R5 находится в NSSA, то он может выступать в качестве ASBR, а также перекладывать маршруты из других протоколов маршрутизации. Это значит, что в NSSA могут находится External-маршруты в виде специального LSA Type 7, который может находиться только в NSSA. На границе зоны пограничный коммутатор преобразует LSA Type 7 в LSA Type 5.
Для фильтрации маршрутов можно также воспользоваться функционалом ACL. Например, если на коммутаторе в NSSA-зоне мы хотим принимать только маршрут по умолчанию и маршруты из подсети 172.31.0.0/16, то необходимо создать ACL на R5 типа:
access-list 100 permit ip host-source 0.0.0.0 any-destination
access-list 100 permit ip 172.31.0.0 0.0.255.255 any-destination
access-list 100 permit ospf host-source 0.0.0.0 any-destination
access-list 100 permit ospf 172.31.0.0 0.0.255.255 any-destination
access-list 100 deny ospf any-source any-destination
access-list 100 deny ip any-source any-destination
!
router ospf 1
filter-policy 100
!
В таком случае таблица маршрутов будет иметь следующий вид:
Количество маршрутов сократилось, но все адреса Loopback и подсетей доступны через маршрут по умолчанию.
Заключение
В данной статье мы рассмотрели принципы работы протокола OSPF и его настройке на коммутаторах SNR. В будущем также планируется выход второй части данной статьи, посвященный протоколу BGP.