что такое маршруты динамические маршруты как реализовать
Динамическая маршрутизация
Материал из Xgu.ru
Динамическая маршрутизация — вид маршрутизации, при котором таблица маршрутизации редактируется программно. В случае UNIX-систем демонами маршрутизации; в других системах — служебными программами, которые называются иначе, но фактически играют ту же роль.
Демоны маршрутизации обмениваются между собой информацией, которая позволяет им заполнить таблицу маршрутизации наиболее оптимальными маршрутами. Протоколы, с помощью которых производится обмен информацией между демонами, называется протоколами динамической маршрутизации.
Демоны динамической маршрутизации:
Как правило, демоны динамической маршрутизации поддерживают множество протоколов и используют информацию, полученную по одним протоколам для работы других.
Содержание
[править] Протоколы динамической маршрутизации
Протоколы динамической маршрутизации:
[править] Различие в алгоритмах
Сами протоколы динамической маршрутизации можно классифицировать по нескольким критериям.
Компания Cisco ранее называла протокол EIGRP смешанный протокол, однако по своим принципам работы, EIGRP дистанционно-векторный протокол.
[править] Область применения
По области применения разделяют на:
[править] IGP (Interior Gateway Protocol)
IGP-протоколы используются для передачи информации о маршрутах в пределах автономной системы (AS).
Как правило, для упрощения, можно воспринимать автономную систему, как сеть одной компании.
К современным IGP-протоколам, как правило, такие требования:
Если говорить об использовании IGP-протоколов в провайдерской среде, то также могут добавиться такие требования:
[править] EGP (Exterior Gateway Protocol)
EGP-протоколы используются для передачи информации между автономными системами (AS).
На текущий момент представитель этого класса протоколов один: BGP.
Хотя, чаще всего, BGP используется для передачи маршрутов между разными AS, он может также использоваться и внутри корпоративной сети. Особенно, когда сеть большая.
К EGP-протоколам, как правило, такие требования:
Динамическая маршрутизация на коммутаторах 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.
Интернет технологии (архив ИПМ 2001-2010, Богомолов)
14.1 Динамическая маршрутизация.
Сопровождая большие сети с большим количеством маршрутизаторов, становится сложно заполнять таблицы маршрутов, и особенно их оперативно менять, если, к примеру, какой то из каналов не работает.
Для создания динамической маршрутизации необходимо, что бы маршрутизаторы сами обменивались маршрутной информацией. Для этого были созданы специальные протоколы.
Динамические протоколы делят на две группы:
Первый стандарт RIP RFC1058 (Routing Information Protocol C.L. Hedrick Jun-01-1988).
Последняя версия RIPv2 RFC2453 (RIP Version 2 G. Malkin November 1998).
Используется транспортный протокол UDP.
Порт сервера по умолчанию 520.
Маршрут характеризуется вектором расстояния до места назначения.
Описания собранных маршрутов хранятся в таблице маршрутов (не путать с таблицей маршрутизации), из которой потом выбирается наилучший маршрут и помещается в таблицу маршрутизации, ее еще называют первичной таблицей маршрутизации.
Таблица маршрутов должна содержать для каждого маршрута:
IP-адрес места назначения (направление вектора).
Метрика маршрута (от 1 до 15; число шагов до места назначения, модуль вектора).
IP-адрес ближайшего маршрутизатора по пути к месту назначения.
Флаг, что маршрутная информация была изменена.
Различные таймеры маршрута. (например, актуальности информации)
Формат сообщения RIPv2
command | Значения | Значение (перевод) |
1 | request | Запрос на получение маршрутной таблицы |
2 | response | Ответ, содержащий маршрутную таблицу отправителя |
Например, маршруты, импортированные от EGP или BGP, могут иметь номер Автономной Системы, из которой маршруты были изучены.
Запрос «Аутентификация». Когда демон стартует, он посылает запрос к маршрутизаторам прислать таблицы маршрутизации. Запрос рассылается широковещательными сообщениями. Формат запроса см. ниже.
Запрос принят.
— Если был запрос «Аутентификация» отправляется полная таблица маршрутизации.
— Иначе обрабатывается каждый пункт в запросе: если присутствует маршрут на указанный адрес, показатель устанавливается в определенное значение, иначе показатель устанавливается в 16. (Показатель, установленный в 16, это специальное значение, которое означает «бесконечно» (infinity) и сообщает, что маршрута к этому пункту назначения не существует.) Возвращается ответ.
Ответ принят. Если ответ признан корректным, таблица маршрутизации может быть обновлена. Могут быть добавлены новые записи, существующие записи могут быть модифицированы или удалены. При этом timeout-timer (тайм-аут) выставляется =180 сек. По истечении запись, становится не активной на 120 сек (garbage-collection timer). По истечении 120 сек, запись удаляется и в регулярном обновлении запись рассылается с метрикой =16, т.е. на удаление.
Незапланированное обновление. Происходит в том случае, если изменяется метрика маршрута. В этом случае нет необходимости посылать таблицу маршрутизации целиком, передается только та запись, которая была изменена.
Формат сообщения аутентификации RIPv2
14.2.2 Недостатки RIP
Ограничение в 16 хопов. Фактически ограничивает количество сетей.
Медленная реакция на изменение сети. При этом могут возникнуть циклические маршруты.
Самый короткий маршрут может быть перегружен (медленным).
Сообщение OSPF инкапсулируется прямо в IP пакет (поле данных), т.е. протоколы транспортного уровня не используются.
Поле protocol = 89 (в заголовке IP).
Основные достоинства OSPF.
Отсутствие ограничения на размер сети.
Автономная система может быть поделена на области маршрутизации.
Высокая скорость установления маршрутов.
Каждому интерфейсу может быть назначена метрика на основании
— пропускной способности
— времени возврата
— надежности
— загруженности (очередь пакетов)
— размера максимального блока данных, который может быть передан через канал.
Отдельная цена может быть назначена для каждого типа сервиса IP.
Если маршруты имеют одинаковую цену, OSPF распределяет траффик поровну между этими маршрутами. Это называется балансировкой нагрузки (Load balancing).
Поддерживает подсети (маску).
Используется групповая (multicast) адресация вместо широковещательной.
14.3.1 Области маршрутизации OSPF
Автономная система может быть поделена на области маршрутизации, в пределах области может работать свой протокол маршрутизации.
Построение сети с помощью OSPF.
14.3.2.1 Формат заголовка сообщения OSPF
Формат заголовка сообщения OSPF
TYPE | Значения | Значение (перевод) |
1 | Hello | Используется для проверки доступности маршрутизатора |
2 | Database Description | Описание базы данных (топология). |
3 | Link State Request | Запрос состояния канала. |
4 | Link State Update | Изменение состояния канала. |
5 | Link State Acknowledgment | Подтверждение получения сообщения о статусе канала. |
TYPE | Значения | Значение (перевод) |
0 | Null authentication | Аутентификация не используется |
1 | Simple password | Простой пароль |
2 | Cryptographic authentication | Криптографическая аутентификация |
All others | All others Reserved for assignment by the IANA | Зарезервировано IANA |
14.2.2.2 Тип сообщения Hello
Это основной тип сообщений.
Для рассылки используется групповой адрес 224.0.0.5 (ALL-OSPF-Routers).
Выполняет следующие функции:
Поиск соседних маршрутизаторов.
Выбор маршрутизаторов DR и BDR.
Определение статуса канала.
Установление партнерских отношений между маршрутизаторами.
Формат сообщения Hello
14.3.2.3 Тип сообщения Database Description
Маршрутизаторы обмениваются данными из баз данных OSPF.
Формат сообщения Database Description
14.3.2.4 Тип сообщения Link State Request
Запрос части базы данных для обновления.
Формат сообщения Link State Request
14.3.2.5 Тип сообщения Link State Update
Передача части базы данных, которая была запрошена.
Формат сообщения Link State Update. Каждый LSA начинается с 20 байтного заголовка описанного выше.
14.3.2.6 Тип сообщения Link State Acknowledgment
Используется для подтверждения получения фрагмента базы данных.
Формат сообщения Link State Acknowledgment
14.3.3 Уведомление о состоянии канала
14.3.3.1 Формат заголовка LSA
Типы уведомлений LSA
TYPE | Значения | Описание |
1 | Router-LSAs | описание состояния интерфейсов маршрутизатора |
2 | Network-LSAs | описание набора маршрутизаторов подключенных к сети |
3 | Summary-LSAs (IP network) | сводная информация о каналах к сетям, рассылает граничный маршрутизатор области внутри своей области |
4 | Summary-LSAs (ASBR) | сводная информация о канале к граничному маршрутизатору автономной системы, рассылается граничным маршрутизатором области внутри своей области |
5 | AS-external-LSAs | описания внешних каналов автономной системы |
Формат поля Options
Коды типа сервиса (TOS)
OSPF-код | TOS-код | Значения (RFC-1349) | Значения (перевод) |
0 | 0000 | normal service | Обычный сервис |
2 | 0001 | minimize monetary cost | Минимизация денежной стоимости |
4 | 0010 | maximize reliability | Максимальная надежность |
6 | 0011 | ||
8 | 0100 | maximize throughput | Максимальная пропускная способность |
10 | 0101 | ||
12 | 0110 | ||
14 | 0111 | ||
16 | 1000 | minimize delay | Минимальная задержка |
18 | 1001 | ||
20 | 1010 | ||
22 | 1011 | ||
24 | 1100 | ||
26 | 1101 | ||
28 | 1110 | ||
30 | 1111 |
14.3.3.1 Формат Router-LSAs
описание состояния интерфейсов маршрутизатора.
Коды типов связей, поле Type
Код типа связи | Значения | Значения (перевод) |
1 | Point-to-point connection to another router | Связь с другим маршрутизатором по схеме точка-точка |
2 | Connection to a transit network | Связь с транзитной сетью |
3 | Connection to a stub network | Связь с оконечной сетью |
4 | Virtual link | Виртуальная связь (например, опорная сеть или туннель) |
Идентификаторы канала, поле Link ID, что используется для ID в зависимости от типа связи, поле Type
Код типа связи | Значения Link ID | Значения (перевод) |
1 | Neighboring router’s Router ID | Для ID используется идентификатор соседнего маршрутизатора |
2 | IP address of Designated Router | Для ID используется IP-адрес ответственного маршрутизатора |
3 | IP network/subnet number | Для ID используется IP-адрес сети/субсети |
4 | Neighboring router’s Router ID | Для ID используется идентификатор соседнего маршрутизатора |
/b table6td align=center height=Дополнительная специальная TOS-информация может быть включена, для обратной совместимости с предыдущими версиями OSPF. Для каждой связи и для каждого TOS, специальныя TOS-информация может кодироваться следующим образом:
14.3.3.2 Формат Network-LSAs
описание набора маршрутизаторов подключенных к сети
14.3.3.3 Формат Summary-LSAs
сводная информация о каналах к сетям, рассылает граничный маршрутизатор области внутри своей области.
сводная информация о канале к граничному маршрутизатору автономной системы, рассылается граничным маршрутизатором области внутри своей области.
14.3.3.4 Формат AS-external-LSAs
описания внешних каналов автономной системы.
14.3.4 Маршрутная таблица OSPF
Маршрутная таблица OSPF содержит в себе:
IP-адрес места назначения и маску;
тип места назначения (сеть, граничный маршрутизатор и т.д.);
тип функции (возможен набор маршрутизаторов для каждой из функций TOS);
область (описывает область, связь с которой ведет к цели, возможно несколько записей данного типа, если области действия граничных маршрутизаторов перекрываются);
тип пути (характеризует путь как внутренний, межобластной или внешний, ведущий к AS);
цена маршрута до цели;
очередной маршрутизатор, куда следует послать дейтограмму;
объявляющий маршрутизатор (используется для межобластных обменов и для связей автономных систем друг с другом).
Подключится к демону OSPF, можно с помощью telnet по порту 2604, и просмотреть базу.
Реальная база OSPF. Видно, что только одна область (0.0.0.0).
14.3.4 Маршрутная таблица в Linux составленная OSPF
Динамическая таблица (linux) маршрутизации составленная протоколом OSPF