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

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

Ключевые задачи:

  • Изучать удаленные сети
  • Поддерживать актуальную информацию
  • Выбирать наилучший путь
  • Выбирать резервный путь

IGP и EGP

Автономная система

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 Parameters
  • 0x0102 - IP Internal Routes
  • 0x0103 - 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-links
R1# 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 protocols
R1# 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 neighbours
R1# 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 для IPv4EIGRP для IPv6
Объявленные маршрутыСети IPv4Сети IPv6
Вектор расстоянияДаДа
Технология сходимостиDUALDUAL
МетрикаПропускная способность и задержка по умолчанию, надежность и нагрузка дополнительноПропускная способность и задержка по умолчанию, надежность и нагрузка дополнительно
Транспортный протоколRTPRTP
Сообщения обновленийИнкрементные, частичные и ограниченные обновленияИнкрементные, частичные и ограниченные обновления
Обнаружение соседних устройствПакеты приветствияПакеты приветствия
Адреса источника и назначенияIPv4-адрес источника и IPv4-адрес групповой рассылки 224.0.0.10Локальный IPv6-адрес канала в качестве источника и IPv6-адрес групповой рассылки FF02::A
АутентификацияMD5, SHA256MD5, 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 neigbors
R# show ipv6 protocols
R# show ipv6 route