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

Протоколы маршрутизации - набор процессов, алгоритмов и сообщений для обмена информации о маршрутах и заполнения таблицы маршрутизации
Ключевые задачи:
- Изучать удаленные сети
- Поддерживать актуальную информацию
- Выбирать наилучший путь
- Выбирать резервный путь
IGP и EGP

Автономная система
Distance vector и Link-state протоколы

2 характеристики : расстояние, вектор

Link-state строят полную карту сети
Проблема slassful протоколов


RIPv1 и EIGRP не передают информацию об адресе сети, так как подразумевают классовое разделение на подсети
- Не передают информацию о маске подсети в обновлениях маршрутизации
- Не поддерживают VLSM (маски переменной длины) и CIDR (бесклассовую междоменную маршрутизацию)
- Создают проблемы в «разорванных» сетях
Сеть с classless протоколом

Характеристики IPv4 протоколов (RIPv2, EIGRP, OSPF, IS-IS):
- Включают данные о маске подсети в обновлениях маршрутизации
- Поддерживают VLSM и CIDR
Важно:
- Все протоколы маршрутизации IPv6 являются бесклассовыми по умолчанию
Характеристики протоколов маршрутизации

Distance Vector Protocols

Механизм работы:
- Маршрутизаторы обмениваются обновлениями для получения информации об удаленных маршрутах
- Выполняются multiple раунды передачи периодических обновлений для достижения конвергенции
Определения:
- Конвергенция сети - состояние, когда все маршрутизаторы имеют полную и точную информацию о всей сети
- Время конвергенции - период, необходимый для обмена данными, расчета оптимальных путей и обновления таблиц маршрутизации
Основное ограничение:
- Маршрутизаторы не имеют полных данных о топологии сети
Методы отправки обновлений:
RIPv1:
- Широковещательные рассылки на 255.255.255.255
RIPv2 и EIGRP:
- Групповые адреса (только для соседних маршрутизаторов)
EIGRP (продвинутый):
- Одноадресная рассылка для связи с конкретными соседями
- Отправляет обновления только по необходимости (не периодически)

Основные процессы алгоритма:
- Механизм отправки и получения данных маршрутизации
- Механизм расчета оптимальных путей и добавления маршрутов в таблицу
- Механизм обнаружения и реагирования на изменения топологии
Конкретные реализации:
RIP:
- Использует алгоритм Беллмана-Форда
IGRP и EIGRP:
- Используют алгоритм DUAL (Diffusing Update Algorithm)
Routing Information Protocol (RIP)

Историческая справка:
- Первый протокол маршрутизации для IPv4
- RFC 1058 (оригинальная спецификация)
Характеристики:
- Простая настройка → идеален для небольших сетей
- RIPv2 выпущен в 1993 году (улучшенная версия)
- Использует UDP порт 520 для обмена данными
EIGRP
Характеристики EIGRP
Interior-Gateway Routing Protocol (IGRP)

Interior Gateway Routing Protocol (IGRP)
Основные характеристики:
- Первый протокол маршрутизации Cisco для IPv4 (1984)
- Метрика вычисляется на основе: пропускной способности, задержек, загрузки и надежности
- Период обновлений: каждые 90 секунд
- Максимальное количество хопов: 255
EIGRP (Enhanced IGRP) - 1992
Улучшения:
- Использует Hello keepalive механизм
- Работает с таблицей топологии (но не всю сеть)
- Обеспечивает мгновенную сходимость
- Поддерживает multiple протоколы сетевого уровня
EIGRP - Enhanced Interior Gateway Routing Protocol

Общая информация:
- Протокол вектора расстояний от Cisco
- Первый выпуск: 1992, с 2013 - открытый стандарт IETF
Ключевые особенности:
Конфигурация:
- named EIGRP - единая конфигурация для IPv4 и IPv6
Алгоритмы:
- DUAL - алгоритм диффузного обновления (беспетьевая маршрутизация + резервные пути)
Механизмы работы:
- Установление соседских отношений
- RTP (Reliable Transport Protocol) - надежная доставка пакетов
- Частичные и ограниченные обновления (только при изменениях)
Балансировка нагрузки:
- Поддержка путей с равной и неравной стоимостями
Protocol Dependent Modules

Основные обязанности:
Управление данными:
- Поддержка таблиц соседей и топологии
- Выполнение функций протокола сетевого уровня
Взаимодействие с DUAL:
- Построение и передача специфичных пакетов в DUAL
- Интерфейс между DUAL и таблицей маршрутизации
Обработка маршрутов:
- Вычисление метрик и передача в DUAL
- Выполнение фильтрации и ACL
- Перераспределение маршрутов из других протоколов
Reliable Transport Protocol (RTP)

Назначение:
- Передача и получение EIGRP пакетов
Типы доставки:
- Надёжная - с подтверждениями получения
- Ненадёжная - без подтверждений
Адресация:
- IPv4: групповой адрес 224.0.0.10
- IPv6: групповой адрес FF02::A
Authentication

Поддерживается:
- Аутентификация (проверка подлинности соседей)
Не поддерживается:
- Шифрование обновлений маршрутизации
Сообщения не шифруются
Типы пакетов EIGRP

Hello:
- Назначение: поиск соседей и поддержание смежности
- Доставка: ненадёжная, мультикаст
Update:
- Назначение: распространение маршрутной информации
- Доставка: надёжная, юникаст/мультикаст
Acknowledgment:
- Назначение: подтверждение получения пакета
- Доставка: ненадёжная, юникаст
Query:
- Назначение: запрос маршрута от соседей
- Доставка: надёжная, юникаст/мультикаст
Reply:
- Назначение: ответ на Query
- Доставка: надёжная, юникаст
EIGRP hello packets

EIGRP Update and Acknowledgment Packets

Update пакеты:
- Отправляются только при изменении сети
- Только затронутым маршрутизаторам
- С обязательным подтверждением получения
Acknowledgment (ACK):
- Представляет собой пустой Hello-пакет
- Используется для подтверждения получения
Надёжная доставка:
- Применяется для: Update, Query и Reply пакетов
EIGRP Query и Reply Packets
Query (Запрос):
- Назначение: поиск новых маршрутов и решение других задач EIGRP
- Отправляется при потере маршрута или необходимости обновления
Reply (Ответ):
- Назначение: ответ на Query-запрос
- Обязателен от всех соседей, получивших Query

Инкапсуляция EIGRP сообщений

Data Link Frame Header
- MAC Source Address: Address of sending interface
- MAC Destination Address: Multicast:
01-00-5E-00-00-0A
IP Packet Header
- IPv4 Source Address: Address of sending interface
- IPv4 Destination Address: Multicast:
224.0.0.10 - Protocol field:
88(reserved for EIGRP)
EIGRP Packet Header
- Opcode: Specifies EIGRP packet type
- Autonomous System Number: Identifies EIGRP domain
TLV Types (Type-Length-Value)
Key TLV types include:
0x0001- EIGRP Parameters0x0102- IP Internal Routes0x0103- IP External Routes
Важные уточнения:
- EIGRP использует мультикаст для отправки пакетов
- MAC-адрес:
01-00-5E-00-00-0A - IP-адрес:
224.0.0.10 - Протокол IP: номер
88зарезервирован для EIGRP - TLV структура позволяет расширять функциональность EIGRP
Заголовок EIGRP пакета

EIGRP TLV: параметры

K1, K2, K3, K4, K5
EIGRP TLV: внутренние маршруты
Изучены EIGRP

EIGRP TLV: внешние маршруты
Изучены другими процессами EIGRP, или другими протоколами маршрутизации, или прописаны статически

Алгоритм работы EIGRP
Поиск соседей

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


Составная метрика EIGRP

Рекомендуется использовать только K1 и K3, остальные занулять
Настройка коэффициентов
Router(config-router)# metric weights tos <k1> <k2> <k3> <k4> <k5>
Пример вычисления метрики
R1# show interfaces serial 0/0/0

Настройка bandwidth (пропускной способности)
Влияет только на метрику. Не влияет на реальную пропускную способность. Влияет и на метрики и других протоколов маршрутизации
При подстановке в формулу берется наименьшая пропускная способность среди всех сегментов сети от маршрутизатора до целевой сети
R1# show interface serial 0/0/0
Router(config-if)# bandwidth 64
Delay (задержка)

Вычисление метрики

Пример вычисления метрики

Мониторинг EIGRP
show ip eigrp topologyПример вывода
R2# show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(2.2.2.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 172.16.2.0/24, 1 successors, FD is 2816
via Connected, GigabitEthernet0/0
P 192.168.10.4/30, 1 successors, FD is 3523840
via 192.168.10.10 (3523840/2169856), Serial0/0/1
via 172.16.3.1 (41024000/2169856), Serial0/0/0
P 192.168.1.0/24, 1 successors, FD is 3012096
via 192.168.10.10 (3012096/2816), Serial0/0/1
via 172.16.3.1 (41024256/2170112), Serial0/0/0
P 172.16.3.0/30, 1 successors, FD is 40512000
via Connected, Serial0/0/0
P 172.16.1.0/24, 1 successors, FD is 3524096
via 192.168.10.10 (3524096/2170112), Serial0/0/1
via 172.16.3.1 (40512256/2816), Serial0/0/0
P 192.168.10.8/30, 1 successors, FD is 3011840
via Connected, Serial0/0/1
show ip eigrp topology all-linksR1# show ip eigrp topology all-links
<output omitted>
P 192.168.1.0/24, 1 successors, FD is 2170112, serno 9
via 192.168.10.6 (2170112/2816), Serial0/0/1
via 172.16.3.2 (41024256/3012096), Serial0/0/0
DUAL finite state machine
Отладка eigrp
debug eigrp fsmБыстрое переключение на резервный маршрут при отказе основного
R2# debug eigrp fsm
EIGRP Finite State Machine debugging is on
R2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)# interface s 0/0/1
R2(config-if)# shutdown
<output omitted>
EIGRP-IPv4(1): Find FS for dest 192.168.1.0/24. FD is 3012096, RD is 3012096 on tid 0
DUAL: AS(1) Removing dest 172.16.1.0/24, nexthop 192.168.10.10
DUAL: AS(1) RT installed 172.16.1.0/24 via 172.16.3.1
<output omitted>
R2(config-if)# end
R2# undebug all
Резервной записи в таблице топологии не было
R1# debug eigrp fsm
EIGRP Finite State Machine debugging is on
R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# interface s 0/0/1
R1(config-if)# shutdown
<output omitted>
EIGRP-IPv4(1): Find FS for dest 192.168.1.0/24. FD is 2170112, RD is 2170112
DUAL: AS(1) Dest 192.168.1.0/24 entering active state for tid 0.
EIGRP-IPv4(1): dest(192.168.1.0/24) active
EIGRP-IPv4(1): rcvreply: 192.168.1.0/24 via 172.16.3.2 metric 41024256/3012096
EIGRP-IPv4(1): reply count is 1
EIGRP-IPv4(1): Find FS for dest 192.168.1.0/24. FD is 72057594037927935, RD is 72057594037927935
DUAL: AS(1) Removing dest 192.168.1.0/24, nexthop 192.168.10.6
DUAL: AS(1) RT installed 192.168.1.0/24 via 172.16.3.2
<output omitted>
Настройка и отладка EIGRP (практика)
На примере сети в одном домене EIGRP

Команды настройки EIGRP
Включить процесс EIGRP: обязательная
Router(config)# router eigrp <autonomous system number>autonomous system number - двухбайтовое число от 1 до 65535, должно совпадать на всех маршрутизаторах в домене маршрутизации
Настройка router ID: опциональная (рекомендуемая)
Router(config-router)# eigrp router-id <router_id>
router_id - идентификатор маршрутизатора. 4-хбайтовое число. Записывается в формате ipv4-адреса. Если не указывается, назначается автоматически в следующем приоритете: Назначен автоматически Наибольшее значение IP-адреса, назначенного на loopback-интерфейсе Наибольшее значение IP-адреса на включенном(up)* физическом интерфейсе
Указать, какие сети будут распространяться маршрутизатором в процессе работы EIGRP: обязательная
Router(config-router)# network <ipv4 network address> [wildcard-mask]
ipv4 network address - адрес сети, о которой будет сообщать маршрутизатор wildcard-mask - маска сети (обратная). Если не указана, указанная сеть считается классовой. Допускается указание прямой маски. Но в настройках все равно будет записана обратная
Настройка passive interface: оциональная
Router(config-router)# passive-interface <interface-type> <interface-number>
Указывает интерфейс, с которого не будут отправлять служебные eigrp-пакеты
interface-type - тип интерфейса interface-number - номер интерфейса
Настройка passive interface глобально:
Указывает, что все интерфейсы интерфейсы маршрутизатора не будут не будут отправлять служебные eigrp-пакеты. Отдельно на каждом интерфейсе можно будет включить отправку
Router(config)# passive-interface default
Примеры
R1(config)# router eigrp 1
R1(config-router)# eigrp router-id 1.1.1.1
R2(config-router)# network 172.16.0.0
*Feb 28 17:51:42.543: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1:
Neighbor 172.16.3.1 (Serial0/0/0) is up: new adjacency
R2(config-router)# network 192.168.10.8 0.0.0.3
R2(config-router)# network 192.168.10.8 255.255.255.252
R2(config-router)# end
R2# show running-config | section eigrp 1
router eigrp 1
network 172.16.0.0
network 192.168.10.8 0.0.0.3
eigrp router-id 2.2.2.2
R2#
R1(config-router)# passive-interface gigabitethernet 0/0
Мониторинг
Общая информация о работе протокола
R# show ip protocolsR1# show ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is "eigrp 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP-IPv4 Protocol for AS(1)
Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
NSF-aware route hold timer is 240
Router-ID: 1.1.1.1
Topology : 0 (base)
Active Timer: 3 min
Distance: internal 90 external 170
Maximum path: 4
Maximum hopcount 100
Maximum metric variance 1
Automatic Summarization: disabled
Maximum path: 4
Routing for Networks:
192.168.1.0
192.168.10.4/30
192.168.10.8/30
Passive Interface(s):
GigabitEthernet0/0
Routing Information Sources:
Gateway Distance Last Update
192.168.10.5 90 01:37:57
192.168.10.9 90 01:37:57
Distance: internal 90 external 170
Информация о соседних маршрутизаторах
R# show ip eigrp neighboursR1# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 192.168.10.6 Se0/0/1 11 04:57:14 27 162 0 8
0 172.16.3.2 Se0/0/0 13 07:53:46 20 120 0 10
^ ^ ^ ^ ^
| | | | время соединения с соседом
| ipv4 адрес | |
| соседа | таймер
номер Интерфейс по истечении которого
соседа текущего соседа можно считать недоступным
маршрутизатора
Таблица маршрутизации
R1# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
<output omitted>
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks
C 172.16.1.0/24 is directly connected, GigabitEthernet0/0
L 172.16.1.1/32 is directly connected, GigabitEthernet0/0
D 172.16.2.0/24 [90/2170112] via 172.16.3.2, 00:14:35, Serial0/0/0
C 172.16.3.0/30 is directly connected, Serial0/0/0
L 172.16.3.1/32 is directly connected, Serial0/0/0
D 192.168.1.0/24 [90/2170112] via 192.168.10.6, 00:13:57, Serial0/0/1
192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks
C 192.168.10.4/30 is directly connected, Serial0/0/1
L 192.168.10.5/32 is directly connected, Serial0/0/1
D 192.168.10.8/30 [90/2681856] via 192.168.10.6, 00:50:42, Serial0/0/1
[90/2681856] via 172.16.3.2, 00:50:42, Serial0/0/0
EIGRP в IPv6
- Работает по аналогии стека IPv4
- Для каждого стека настроенный протокол работает независимо
Сравнение EIGRP на стеках IPv4 и IP
| Характеристика | EIGRP для IPv4 | EIGRP для IPv6 |
|---|---|---|
| Объявленные маршруты | Сети IPv4 | Сети IPv6 |
| Вектор расстояния | Да | Да |
| Технология сходимости | DUAL | DUAL |
| Метрика | Пропускная способность и задержка по умолчанию, надежность и нагрузка дополнительно | Пропускная способность и задержка по умолчанию, надежность и нагрузка дополнительно |
| Транспортный протокол | RTP | RTP |
| Сообщения обновлений | Инкрементные, частичные и ограниченные обновления | Инкрементные, частичные и ограниченные обновления |
| Обнаружение соседних устройств | Пакеты приветствия | Пакеты приветствия |
| Адреса источника и назначения | IPv4-адрес источника и IPv4-адрес групповой рассылки 224.0.0.10 | Локальный IPv6-адрес канала в качестве источника и IPv6-адрес групповой рассылки FF02::A |
| Аутентификация | MD5, SHA256 | MD5, SHA256 |
| Идентификатор маршрутизатора | 32-битный идентификатор маршрутизатора | 32-битный идентификатор маршрутизатора |
Настройка EIGRP для IPv6
Происводится по аналогии с настройкой для IPv4
Включить IPv6 маршрутизацию: обязательная
Router(config)# ipv6 unicast-routingВключить процесс EIGRP: обязательная
Router(config)# ipv6 router eigrp <autonomous system>autonomous system - номер автономной системы
Настройка router ID: обязательная
Router(config-rtr)# eigrp router-id <router_id>router_id - идентификатор маршрутизатора. Является обязательной, так как EIGRP настраивается на другом стеке
Активировать процесс EIGRP для IPv6: обязательная
Router(config-rtr)# no shutdownВключить EIGRP маршрутизацию на интерфейсе: обязательная
Router(config-if)# ipv6 eigrp <autonomous system>autonomous system - номер автономной системы
Настройка passive interface: опциональная
Router(config-rtr)# passive-interface interface-type interface-numberПример настройки
R2(config)# ipv6 unicast-routing
R2(config)# ipv6 router eigrp 2
R2(config-rtr)# eigrp router-id 2.0.0.0
R2(config-rtr)# no shutdown
R1(config)# interface g0/0
R1(config-if)# ipv6 eigrp 2
R1(config-if)# exit
R1(config)# interface s0/0/0
R1(config-if)# ipv6 eigrp 2
R1(config-if)# exit
R1(config)# interface s0/0/1
R1(config-if)# ipv6 eigrp 2Мониторинг
R# show ipv6 eigrp neigborsR# show ipv6 protocolsR# show ipv6 route