Погодин Евгений — ИТ Заметки
🌐Cisco Обновлено 13.10.2026

Cisco с нуля 14. EIGRP: именованный режим

Note

Команды сверены с официальной документацией Cisco (руководства по настройке Cisco IOS XE 17.x для Catalyst 9000 и маршрутизаторов ISR; отличия классической IOS 15.x отмечены в тексте). Перед работой на боевом оборудовании проверьте их на тестовом стенде или сделайте резервную копию.

В статье про OSPF мы научили R1 и R2 обмениваться маршрутами. Здесь решаем ту же задачу другим протоколом, EIGRP, и в современном именованном режиме настройки (named mode). В конце вы получите два маршрутизатора, которые образуют соседство, передают друг другу сети офиса, не пускают протокол в пользовательские сети, умеют сворачивать маршруты в сводные, проверяют друг друга паролем и раздают маршрут по умолчанию.

Важно: на этом стенде EIGRP работает вместо OSPF. Два протокола одновременно на одном стыке постоянно держать не нужно, поэтому в конце статьи мы по желанию отключим OSPF командой no router ospf 1, а для возврата дадим готовый блок. Если у вас чистый стенд без OSPF, этот шаг просто пропустите. Если вы собираетесь дальше повторять на этом же стенде статьи про редистрибуцию или GRE (вариант с OSPF), учтите, что часть их примеров рассчитана на работающий OSPF: оставьте его включённым либо вернитесь к нему по разделу «Как вернуть OSPF».

Что понадобится

  • Два маршрутизатора Cisco, R1 и R2, на IOS XE 17.x (ISR 4000, ISR 1000) или классической IOS 15.x (например, ISR G2). Именованный режим есть в IOS 15.0(1)M и новее. На коммутаторах Catalyst наличие EIGRP зависит от модели и лицензии, уточните по документации своей модели; здесь настраиваем маршрутизаторы.
  • Состояние сети (как после статей про статическую маршрутизацию и OSPF):
    • R1: стык к R2 на GigabitEthernet0/0/2 с адресом 10.0.12.1/30; подинтерфейсы GigabitEthernet0/0/1.10, .20, .99 с адресами 192.168.10.1, 192.168.20.1, 192.168.99.1 (/24); провайдер на GigabitEthernet0/0/0 (203.0.113.2/30) и статический маршрут по умолчанию на 203.0.113.1;
    • R2: стык на GigabitEthernet0/0/0 с адресом 10.0.12.2/30, LAN на GigabitEthernet0/0/1 (192.168.50.1/24);
    • R1 и R2 видят друг друга по стыку (ping 10.0.12.2 с R1 проходит).
  • Порт GigabitEthernet0/0/2 здесь — стык с R2, как в статьях про статическую маршрутизацию и OSPF. В статьях про BGP, редистрибуцию и мониторинг тот же порт R1 отведён второму провайдеру (в статье про статику второй провайдер сидел на GigabitEthernet0/0/3): это отдельные мини-стенды, не смешивайте их на одном R1; при совпадении подставьте свободный порт.
  • Если OSPF из статьи 11 у вас уже настроен, это не помеха: сначала включим EIGRP, убедимся, что он работает, и только потом (по желанию) уберём OSPF.
  • Если после статьи про статическую маршрутизацию на стенде остались статические маршруты, они могут перекрыть EIGRP: у статики AD равна 1, у внутреннего EIGRP — 90. Перекрывает только статика к тому же префиксу (на R1 это маршрут к 192.168.50.0/24 через 10.0.12.2) и статический маршрут по умолчанию 0.0.0.0/0 на R2 через R1, если он у вас есть. Сосед при этом поднимется, но в show ip route eigrp нужных маршрутов не будет. Проверьте show running-config | include ip route и на время проверки уберите лишнее: на R1 no ip route 192.168.50.0 255.255.255.0 10.0.12.2 (если вы задавали его с указанием интерфейса, как в статье про статику, повторите команду в той же форме с no в начале), на R2 (если есть) no ip route 0.0.0.0 0.0.0.0 10.0.12.1. Обобщённый статический маршрут R2 к 192.168.0.0/16 через 10.0.12.1 не мешает: маршруты /24 из EIGRP длиннее и устанавливаются независимо от AD (побеждает самый длинный префикс), его можно оставить. Статический маршрут по умолчанию R1 на 203.0.113.1 тоже оставьте.
  • Перед началом сохраните заведомо рабочую конфигурацию на обоих маршрутизаторах (copy running-config startup-config) и сделайте копию, например copy running-config flash:pre-eigrp.cfg. Страховка reload in ниже возвращает именно к сохранённой конфигурации: если вы не сохранили результат предыдущих статей, при откате он пропадёт.
  • Статья рассчитана на два маршрутизатора. Если их нет, соберите стенд в эмуляторе (Cisco Packet Tracer, GNS3, EVE-NG или Cisco Modeling Labs) и не пробуйте изменения сразу на боевом оборудовании.
  • Имена портов на вашей модели могут отличаться (на классической IOS 15.x, например, GigabitEthernet0/1.10). Сверяйтесь с show ip interface brief.
  • Консольный доступ к обоим маршрутизаторам на случай ошибки.

Что такое EIGRP и когда его выбирают

EIGRP (Enhanced Interior Gateway Routing Protocol) разработала Cisco. Алгоритм описан в документе RFC 7868, это Informational RFC (независимая публикация, не стандарт IETF). Сама Cisco называет EIGRP улучшенным дистанционно-векторным протоколом (enhanced distance vector). Протокол не рассылает таблицы целиком по таймеру, а находит и поддерживает соседей, обменивается с ними изменениями и использует алгоритм DUAL (Diffusing Update Algorithm), который гарантирует отсутствие петель маршрутизации. Пакеты EIGRP идут напрямую поверх IP, протокол номер 88, в групповой адрес 224.0.0.10.

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

EIGRP OSPF
Происхождение Cisco, описан в RFC 7868 Открытый стандарт IETF
Административная дистанция (AD) 90 внутренние, 170 внешние 110
Что нужно для соседства Одинаковый номер AS и K-значения Одна область и согласованные параметры
Типичная среда Сеть на оборудовании Cisco Смешанная сеть

Административная дистанция (Administrative Distance, AD) показывает, какому источнику маршрута маршрутизатор верит больше: чем меньше число, тем выше доверие. Значения EIGRP: 90 для внутренних маршрутов, 170 для внешних (полученных редистрибуцией из другого источника), 5 для автоматического маршрута-«заглушки» при суммаризации. Поскольку 90 меньше 110, при одновременной работе EIGRP и OSPF маршрут от EIGRP победит. Этим мы воспользуемся для безопасного перехода: пока работают оба протокола, в таблицу попадают маршруты EIGRP.

Как EIGRP выбирает путь

Детально считать метрику вам не придётся, достаточно понимать принцип. EIGRP использует минимальную пропускную способность на пути (bandwidth) и суммарную задержку (delay). Чем медленнее самое узкое звено и чем больше суммарная задержка, тем хуже маршрут. Задать bandwidth и delay можно на интерфейсе, и они влияют на выбор пути, но не на фактическую скорость канала. По умолчанию участвуют только эти два параметра: K-значения (веса метрики) равны K1=1, K2=0, K3=1, K4=0, K5=0.

Warning

Не меняйте K-значения без веской причины. Cisco прямо рекомендует не трогать их без консультации с опытным проектировщиком сетей. Кроме того, у соседей K-значения должны совпадать, иначе соседство не поднимется.

Дальше два понятия, которые вы увидите в выводе команд:

  • Successor (преемник) — сосед, через которого путь до сети самый дешёвый и гарантированно без петли. Именно он попадает в таблицу маршрутизации.
  • Feasible successor (допустимый преемник) — запасной сосед, путь через которого тоже без петли. Условие такое: расстояние, которое сосед сам сообщает до сети (reported distance, RD), должно быть меньше полной метрики текущего лучшего пути (feasible distance, FD). Если successor пропадёт, маршрутизатор сразу переключится на feasible successor без опроса сети.

Условный пример: лучший путь имеет FD 3072. Сосед B сообщает RD 2816. Это меньше, значит B — feasible successor. Сосед C сообщает RD 3584. Это больше, и такой путь запасным не считается: C может в действительности идти через вас. Если запасного нет, маршрут переходит в состояние Active: маршрутизатор рассылает соседям запрос (query) и ждёт ответов.

Именованный и классический режим

Раньше EIGRP настраивали так: router eigrp 100, затем network с wildcard-маской, а параметры интерфейсов задавали на самих интерфейсах (ip hello-interval eigrp, ip summary-address eigrp 100 ...). В именованном режиме всё собрано в одном месте: внутри router eigrp <имя> вы заходите в адресное семейство (address-family) и там же настраиваете параметры интерфейсов в разделе af-interface. Конфигурация читается сверху вниз, а IPv4 и IPv6 живут в одном процессе. Именованный режим также использует 64-битные «широкие» метрики (wide metrics), они доступны только в нём.

Сравнение на нашем стыке. Классический режим (для сравнения, вводить его вместе с именованным не нужно):

enable
configure terminal
router eigrp 100
 eigrp router-id 10.0.12.1
 network 10.0.12.0 0.0.0.3
 network 192.168.10.0 0.0.0.255
 passive-interface GigabitEthernet0/0/1.10
end

Именованный режим, в котором мы будем работать, описан ниже. Имя процесса (LAB) — локальная метка, оно не обязано совпадать у соседей. Обязателен совпадающий номер автономной системы (AS, здесь 100). Номер AS в EIGRP — это условное число (1–65535), общее для всех маршрутизаторов одного домена EIGRP; к публичным номерам AS из BGP (статья 15) оно отношения не имеет.

Tip

Команда router eigrp LAB сама по себе процесс не запускает: она создаёт основу для адресных семейств. Рабочая часть начинается с address-family. Если у вас уже есть классическая настройка, в современных версиях IOS XE (раздел «Classic to Named Mode Conversion» есть в руководстве для IOS XE 3S) и в новых релизах IOS 15.x существует команда eigrp upgrade-cli; наличие её на вашем образе проверьте вводом eigrp ? в режиме router eigrp 100. Команда работает только из классического режима и только в одну сторону (из классического в именованный). Введите eigrp upgrade-cli LAB и подтвердите запрос (yes): конфигурация будет преобразована в именованную. Учтите, что пока идёт преобразование, консоль не принимает другие команды, поэтому выполняйте это с консоли и в окно обслуживания.

Настройка EIGRP на R1

План для R1:

  1. Создаём процесс LAB и адресное семейство IPv4 для AS 100.
  2. Задаём router ID. Это идентификатор маршрутизатора в EIGRP; если не задать, он выберется автоматически по самому большому локальному IP (предпочтительны loopback). Мы указываем адрес стыка, чтобы идентификатор был предсказуем. Router ID должен быть уникальным.
  3. Включаем в EIGRP интерфейсы командами network с wildcard-маской. Wildcard-маска — это маска «наоборот», как в ACL: для сети /24 она 0.0.0.255, для /30 — 0.0.0.3. Интерфейс провайдера (203.0.113.2) мы в EIGRP не включаем, поэтому он никогда не станет соседом.
  4. Делаем подинтерфейсы LAN пассивными: сеть из них объявляется, но hello-пакеты не отправляются и не принимаются, значит, постороннее устройство в офисной сети не сможет стать EIGRP-соседом R1.

Important

Пока R1 настраивается, существующая маршрутизация (OSPF или статика) продолжает работать. EIGRP добавится рядом и начнёт влиять на таблицу маршрутов, когда появится сосед. Конфигурацию пока не сохраняйте: при ошибке до copy running-config startup-config вы сможете вернуться к прежнему состоянию перезагрузкой.

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  eigrp router-id 10.0.12.1
  network 10.0.12.0 0.0.0.3
  network 192.168.10.0 0.0.0.255
  network 192.168.20.0 0.0.0.255
  network 192.168.99.0 0.0.0.255
  af-interface GigabitEthernet0/0/1.10
   passive-interface
  exit-af-interface
  af-interface GigabitEthernet0/0/1.20
   passive-interface
  exit-af-interface
  af-interface GigabitEthernet0/0/1.99
   passive-interface
  exit-af-interface
 exit-address-family
end

Режимы приглашения при этом меняются: R1(config-router)#, затем R1(config-router-af)#, затем R1(config-router-af-interface)#. Команда exit-af-interface возвращает из настройки интерфейса в адресное семейство, а exit-address-family выходит из адресного семейства, не удаляя его настройку.

Если интерфейсов, которые нужно делать пассивными, много, в af-interface default можно задать значения по умолчанию для всех интерфейсов EIGRP, а затем снять пассивность с нужных командой no passive-interface в af-interface <интерфейс>. Cisco предупреждает, что значения по умолчанию могут отличаться в зависимости от типа интерфейса, поэтому используйте af-interface default осторожно и проверяйте результат командой show ip eigrp interfaces. Схема выглядит так (это альтернатива блоку выше для R1, вводить её вместе с ним не нужно; она следует из описания af-interface default в справочнике, дословного примера в документации нет):

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  af-interface default
   passive-interface
  exit-af-interface
  af-interface GigabitEthernet0/0/2
   no passive-interface
  exit-af-interface
 exit-address-family
end

Note

В некоторых материалах Cisco (например, в TechNote 200156 про именованный режим) в адресном семействе приводится no shutdown, и там сказано, что она нужна для запуска процесса. В примерах руководств для IOS XE 17.x её обычно нет, так как процесс стартует сам. Если после настройки соседи не появляются (особенно на более старых версиях IOS), посмотрите show running-config | section eigrp: при строке shutdown внутри address-family добавьте no shutdown.

Настройка EIGRP на R2

Всё то же самое, но со своими сетями. R2 не имеет подинтерфейсов, его LAN — физический порт GigabitEthernet0/0/1.

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  eigrp router-id 10.0.12.2
  network 10.0.12.0 0.0.0.3
  network 192.168.50.0 0.0.0.255
  af-interface GigabitEthernet0/0/1
   passive-interface
  exit-af-interface
 exit-address-family
end

Стык 10.0.12.0/30 включён в EIGRP с обеих сторон и не пассивный, поэтому соседство должно подняться само, через несколько секунд после ввода команд на втором маршрутизаторе. По умолчанию hello-пакеты идут раз в 5 секунд, время ожидания соседа (hold time) — 15 секунд.

Как проверить

Начните с соседей на R1:

enable
show ip eigrp neighbors

Пример вывода (адреса и значения условные; формат зависит от версии). В именованном режиме заголовки команд show ip eigrp ... и show ip protocols могут содержать имя процесса, например EIGRP-IPv4 VR(LAB) Address-Family ...; ниже заголовки сокращены:

R1#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   10.0.12.2               Gi0/0/2                  13 00:05:12    1   100  0  4

Должна быть строка с адресом 10.0.12.2 на интерфейсе стыка. Столбец Hold — оставшиеся секунды до того, как сосед будет считаться потерянным; он постоянно обновляется (максимум 15 при заводских таймерах). Uptime показывает время с первого hello. Если таблица пустая, переходите к разделу «Типичные ошибки».

Какие интерфейсы участвуют в EIGRP:

enable
show ip eigrp interfaces

Пример вывода (формат зависит от версии: в некоторых версиях есть дополнительный столбец PeerQ; пассивные интерфейсы в этом списке могут не отображаться):

R1#show ip eigrp interfaces
EIGRP-IPv4 Interfaces for AS(100)
                    Xmit Queue    Mean   Pacing Time   Multicast   Pending
Interface   Peers   Un/Reliable   SRTT   Un/Reliable   Flow Timer  Routes
Gi0/0/2       1        0/0          1       0/1            0          0

Столбец Peers показывает число соседей на интерфейсе: на стыке должно быть 1.

Топология — это то, что EIGRP знает о сети, прежде чем решить, что положить в таблицу маршрутов:

enable
show ip eigrp topology

Пример вывода (показаны не все строки, значения метрики вымышлены, у вас будут другие):

R1#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(100)/ID(10.0.12.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status, s - sia status

P 10.0.12.0/30, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/0/2
P 192.168.50.0/24, 1 successors, FD is 3072
        via 10.0.12.2 (3072/2816), GigabitEthernet0/0/2
P 192.168.10.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/0/1.10

Читайте так: P (Passive) — маршрут стабилен, A (Active) — идёт поиск пути, и если такое состояние держится, это повод разбираться. В скобках после via — пара (FD/RD): полная метрика пути через соседа и расстояние, которое сосед сообщил. По умолчанию команда показывает только successor и feasible successor. Чтобы увидеть все известные пути, включая недопустимые, выполните:

enable
show ip eigrp topology all-links

Теперь таблица маршрутов:

enable
show ip route eigrp

На R1 должна появиться сеть R2, на R2 — три сети офиса. Пример вывода на R2 (метрики условные):

R2#show ip route eigrp
Codes: L - local, C - connected, S - static, D - EIGRP, EX - EIGRP external,
       O - OSPF, ...

D        192.168.10.0/24 [90/3072] via 10.0.12.1, 00:04:50, GigabitEthernet0/0/0
D        192.168.20.0/24 [90/3072] via 10.0.12.1, 00:04:50, GigabitEthernet0/0/0
D        192.168.99.0/24 [90/3072] via 10.0.12.1, 00:04:50, GigabitEthernet0/0/0

Буква D — маршрут EIGRP, а D EX — внешний. В скобках [90/…]: 90 — административная дистанция, вторая цифра — метрика. Формат строк зависит от версии IOS. Если вместо этого вы видите S или не видите сеть 192.168.50.0/24 на R1, проверьте, не остались ли статические маршруты (см. «Что понадобится»): с AD 1 они перекрывают EIGRP. Если на R2 одновременно работает OSPF, вы увидите те же сети уже с буквой D и AD 90 вместо O и 110.

И, наконец, сводка по протоколу:

enable
show ip protocols

Команда покажет K-значения, router ID, Distance: internal 90 external 170, Active Timer: 3 min, список сетей из network, пассивные интерфейсы и источники маршрутов. Пример вывода (фрагмент; в вашей версии строк будет больше, а формат строк с сетями в Routing for Networks зависит от версии):

R1#show ip protocols
...
EIGRP-IPv4 VR(LAB) Address-Family Protocol for AS(100)
  Metric weight K1=1, K2=0, K3=1, K4=0, K5=0 K6=0
  Router-ID: 10.0.12.1
  ...
      Active Timer: 3 min
      Distance: internal 90 external 170
  ...
  Routing for Networks:
    10.0.12.0/30
    192.168.10.0/24
    192.168.20.0/24
    192.168.99.0/24
  Passive Interface(s):
    GigabitEthernet0/0/1.10
    GigabitEthernet0/0/1.20
    GigabitEthernet0/0/1.99
  Routing Information Sources:
    Gateway         Distance      Last Update
    10.0.12.2             90      00:05:12

Помимо show ip eigrp ..., существуют равнозначные команды вида show eigrp address-family ipv4 neighbors (также interfaces, topology); их Cisco рекомендует для именованного режима, но старые формы тоже работают.

Клиенты с R2 должны достичь 192.168.10.x, а клиенты офиса — 192.168.50.x. Проверьте: ping 192.168.10.1 source GigabitEthernet0/0/1 на R2.

Суммаризация

Суммаризация (summarization) заменяет несколько маршрутов одним, более широким. Это уменьшает таблицы и ограничивает распространение изменений. В именованном режиме сводный адрес задаётся в af-interface того интерфейса, через который он анонсируется (в классике — командой ip summary-address eigrp 100 ... на интерфейсе).

Наши сети 192.168.10.0/24, 192.168.20.0/24 и 192.168.99.0/24 в одну аккуратную сводку не складываются: сводить можно только подряд идущие блоки. Поэтому для учебного примера создадим на R2 четыре временные сети 192.168.100.0/24, 192.168.101.0/24, 192.168.102.0/24 и 192.168.103.0/24 на интерфейсах Loopback (виртуальные интерфейсы, которые всегда в состоянии up) и объявим их одной сводкой 192.168.100.0/22.

Caution

Это лабораторный пример, не для боевой сети: эти четыре сети (блок 192.168.100.0/22) выбраны произвольно для демонстрации и не пересекаются с сетями стенда. Выполните откат ниже сразу после проверки, потому что следующие разделы рассчитаны на конфигурацию без этих интерфейсов и без сводки.

На R2:

enable
configure terminal
interface Loopback100
 ip address 192.168.100.1 255.255.255.0
interface Loopback101
 ip address 192.168.101.1 255.255.255.0
interface Loopback102
 ip address 192.168.102.1 255.255.255.0
interface Loopback103
 ip address 192.168.103.1 255.255.255.0
exit
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  network 192.168.100.0 0.0.3.255
  af-interface GigabitEthernet0/0/0
   summary-address 192.168.100.0 255.255.252.0
  exit-af-interface
 exit-address-family
end

Как проверить: на R1 выполните show ip route eigrp, на R2 — show ip route 192.168.100.0 255.255.252.0.

Результат на R1: вместо четырёх маршрутов /24 будет одна строка D 192.168.100.0/22 через 10.0.12.2. На R2, пока есть конкретные сети, EIGRP автоматически создаёт сводный маршрут 192.168.100.0/22 на Null0 (пустой интерфейс, куда уходит отбрасываемый трафик) с AD 5 (о Null0 см. статью про статическую маршрутизацию). Он защищает от петель, но поглощает трафик на все адреса из /22, для которых нет более точного маршрута. Сами сети /24 остаются подключёнными на R2 и по длине префикса выигрывают у сводки.

Откат (на R2):

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  af-interface GigabitEthernet0/0/0
   no summary-address 192.168.100.0 255.255.252.0
  exit-af-interface
  no network 192.168.100.0 0.0.3.255
 exit-address-family
exit
no interface Loopback100
no interface Loopback101
no interface Loopback102
no interface Loopback103
end

Автоматическая суммаризация по классовым границам (auto-summary) в современных версиях по умолчанию отключена, ничего включать не нужно.

Аутентификация

Без аутентификации любое устройство, оказавшееся в сегменте стыка, может образовать соседство и подсунуть ложные маршруты. В именованном режиме для HMAC-SHA-256 пароль задаётся прямо в af-interface, цепочка ключей (key chain) не нужна. Key chain — это отдельный список ключей с номерами и сроками действия; он нужен только для режима md5. Этот режим основан на устаревшем алгоритме хеширования MD5, поэтому в примере используется HMAC-SHA-256, если ваша версия его поддерживает (в документации для IOS XE 17.x он описан; на 15.x уточните по документации своей версии).

Caution

Включение аутентификации только на одном маршрутизаторе оборвёт соседство, пока вы не настроите второй с таким же паролем. Делайте это с консоли или в окно обслуживания и поставьте reload in 10 (отдельным блоком, ниже) до проверки; после успешной проверки отмените перезагрузку командой reload cancel. Если маршрутизатор спросит System configuration has been modified. Save? [yes/no], ответьте no: иначе вы сохраните непроверенные настройки, и откат перезагрузкой ничего не вернёт. После перезагрузки восстановится состояние последней сохранённой конфигурации (если EIGRP вы ещё не сохраняли, его в ней не будет, и это нормально).

Сначала поставьте страховку отдельной командой, не вставляя её вместе с настройкой: при несохранённых изменениях reload in задаёт вопрос Save?, и следующие вставленные строки были бы восприняты как ответ на него. Ответьте no, затем на запрос подтверждения нажмите Enter:

enable
reload in 10

Проверьте, что страховка встала: show reload должен показать запланированную перезагрузку. Затем вводите одинаковый пароль на обоих маршрутизаторах (на R2 интерфейс стыка называется GigabitEthernet0/0/0). Замените <ПАРОЛЬ_EIGRP> своим значением:

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  af-interface GigabitEthernet0/0/2
   authentication mode hmac-sha-256 0 <ПАРОЛЬ_EIGRP>
  exit-af-interface
 exit-address-family
end

На R2 та же команда вводится в af-interface GigabitEthernet0/0/0. Число 0 означает, что пароль вводится открытым текстом (7 — вводится уже зашифрованный). Пароль может отображаться в show running-config в явном виде. В документации Cisco не описано, скрывает ли его service password-encryption, поэтому проверьте вывод show running-config | section eigrp на своей версии. Если пароль виден, ограничьте доступ к конфигурации, храните её копии как секретные, а сам пароль выбирайте длинным и случайным. Тип 7 в команде нужен только для ввода уже зашифрованного значения, скопированного из другой конфигурации.

Как проверить: после настройки обоих маршрутизаторов show ip eigrp neighbors снова показывает соседа с растущим Uptime; после этого отмените страховку командой reload cancel в привилегированном режиме на каждом маршрутизаторе, где вводили reload in 10. Если вы настроили только один конец, сосед пропадёт, а в журнале появится сообщение %DUAL-5-NBRCHANGE ... is down. Режимы тоже должны совпадать: md5 на одном конце и hmac-sha-256 на другом соседство не образуют.

Маршрут по умолчанию из R1 в R2

Если R2 должен выходить в интернет через R1, передадим маршрут по умолчанию средствами EIGRP. Это нужно сделать до отключения OSPF (следующий раздел): если OSPF раздавал default командой default-information originate, после его удаления R2 остался бы без выхода в интернет. Пока OSPF ещё работает, лишнего вреда нет: маршрут EIGRP с AD 90 просто победит OSPF-маршрут с AD 110. Для этого на R1 в af-interface стыка задаётся сводный адрес 0.0.0.0 0.0.0.0:

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  af-interface GigabitEthernet0/0/2
   summary-address 0.0.0.0 0.0.0.0
  exit-af-interface
 exit-address-family
end

Important

Сводный маршрут 0.0.0.0/0 охватывает любой префикс, поэтому через этот интерфейс отправляется только он, а более конкретные маршруты, попадающие под сводку, подавляются (общее поведение summary-address). После ввода блока R2 увидит из EIGRP только маршрут по умолчанию, а сети 192.168.10.0/24, 192.168.20.0/24 и 192.168.99.0/24 будет достигать через него. Для учебного стенда из двух маршрутизаторов этого достаточно (у способа есть оговорка, см. ниже в «Как это работает»). Если R2 нужны конкретные сети R1, не вешайте default summary на этот интерфейс, а используйте redistribute static (см. ниже).

Как проверить: на R2 в show ip route eigrp останется только строка с D* и 0.0.0.0/0 через 10.0.12.1, а Gateway of last resort будет указывать на 10.0.12.1. Маршруты /24 из этого вывода пропадут: так и должно быть. Проверьте связность: ping 192.168.10.1 source GigabitEthernet0/0/1 на R2 должен проходить. Если на R2 остался статический маршрут по умолчанию через R1 (AD 1), он перекроет D* из EIGRP: уберите его, как описано в «Что понадобится».

Как это работает. Сводный маршрут 0.0.0.0/0 на R1 анонсируется соседу по этому интерфейсу, а для самого R1 EIGRP создаёт маршрут на Null0 (см. статью про статику) с AD 5. У нашего R1 есть статический маршрут по умолчанию с AD 1, он выигрывает, и интернет работает как раньше.

Главная оговорка. Если статический default на провайдера на R1 пропадёт (например, отключат канал или маршрут удалят), в таблице R1 останется маршрут 0.0.0.0/0 на Null0 с AD 5. R1 продолжит рассылать маршрут по умолчанию, R2 будет отправлять весь интернет-трафик на R1, а тот молча отбросит его. Поэтому summary default — упрощение для стенда. В боевой сети используйте redistribute static (внешний D EX, ниже), либо резервную дистанцию в summary-address (врезка ниже), либо привяжите статический маршрут к отслеживанию через IP SLA (см. статью про мониторинг).

Чтобы вернуть прежнее состояние, уберите сводный адрес:

enable
configure terminal
router eigrp LAB
 address-family ipv4 unicast autonomous-system 100
  af-interface GigabitEthernet0/0/2
   no summary-address 0.0.0.0 0.0.0.0
  exit-af-interface
 exit-address-family
end

Tip

Если требуется, чтобы маршрут на Null0 ни при каких условиях не перебивал полученный маршрут по умолчанию, в команде summary-address можно задать собственную административную дистанцию третьим параметром, например summary-address 0.0.0.0 0.0.0.0 250 (так называемый floating summary route). Синтаксис в af-interface по справочнику Cisco: summary-address ip-address mask [administrative-distance]. В примерах руководства команда может быть записана в другой форме (с ключевым словом eigrp и номером AS, например summary-address eigrp 100 0.0.0.0 0.0.0.0 250). Это следы классического синтаксиса: в именованном режиме внутри af-interface вводится форма без них, как здесь. Если сомневаетесь, проверьте ввод вопросительным знаком (summary-address ?).

Есть и второй способ: добавить статический маршрут в EIGRP командой redistribute static в режиме topology base. Такой маршрут попадёт на соседей как внешний (D EX, AD 170) и потребует задать метрику командой default-metric или параметрами в самой redistribute; при этом остальные маршруты анонсируются как обычно. Синтаксис команды redistribute с метрикой и route-map разобран в статье 16 про route-map и редистрибуцию (в именованном режиме она вводится внутри address-family ... / topology base). Для двух маршрутизаторов проще способ с summary-address.

Как и в статье про OSPF, чтобы клиенты 192.168.50.0/24 выходили в интернет через R1, их сеть должна попасть под NAT. Если вы уже сделали это по статье 11, пропустите блок ниже. Иначе на R1:

enable
configure terminal
access-list 1 permit 192.168.50.0 0.0.0.255
interface GigabitEthernet0/0/2
 ip nat inside
end

Подробности — в статье про DHCP и NAT.

Если отключать OSPF вы не планируете, на этом настройка EIGRP закончена: после проверки сохраните конфигурацию на обоих маршрутизаторах командой copy running-config startup-config. Если планируете, сохраняйте её только в конце следующего раздела, вместе с отменой страховки reload cancel.

Отключаем OSPF (по желанию)

Это шаг только для тех, у кого на стенде настроен OSPF и кто хочет оставить на стыке один протокол. Он необязателен: если вы пойдёте дальше по статьям про редистрибуцию или GRE, лучше пропустите его (или вернитесь к OSPF по разделу «Как вернуть OSPF»). Перед началом убедитесь, что EIGRP работает: сосед виден, маршруты D в таблице, (если вы делали раздел про маршрут по умолчанию) R2 получил default по EIGRP (D*), пинги между LAN проходят.

Warning

Выполняйте шаг с консоли или из сеанса, который не зависит от стыка R1–R2. Если вы управляете R2 через стык, сбой настройки оборвёт связь. Страховка reload in 10 ставится в первом блоке ниже на обоих маршрутизаторах (перезагрузка через 10 минут вернёт сохранённую конфигурацию, то есть прежнее состояние с OSPF). Если маршрутизатор спросит System configuration has been modified. Save? [yes/no], ответьте no, иначе вы сохраните непроверенные настройки и страховка перестанет работать. Отменять страховку и сохранять конфигурацию можно только после проверки, в самом конце раздела.

Сначала на обоих маршрутизаторах поставьте страховку отдельной командой (на вопрос Save? ответьте no, на подтверждение нажмите Enter), затем проверьте show reload:

enable
reload in 10

Затем выполните на обоих маршрутизаторах:

enable
configure terminal
no router ospf 1
end

Команда удаляет процесс OSPF. В зависимости от версии команды ip ospf 1 area 0 на интерфейсах могут остаться, поэтому обязательно проверьте это командой show running-config | include ip ospf и уберите остатки вручную. Если вы настраивали OSPF по статье 11, на интерфейсах стыка могли остаться тип сети и аутентификация OSPF. Пример для R1 (на R2 стык называется GigabitEthernet0/0/0; вводите только те команды, которые действительно есть в вашей конфигурации):

enable
configure terminal
interface GigabitEthernet0/0/2
 no ip ospf 1 area 0
 no ip ospf network point-to-point
 no ip ospf authentication message-digest
 no ip ospf message-digest-key 1
end

То же самое сделайте на остальных интерфейсах, где была команда ip ospf 1 area 0 (на R1 это подинтерфейсы GigabitEthernet0/0/1.10, .20, .99, на R2 — GigabitEthernet0/0/1).

Как проверить: show ip route не должна содержать маршрутов с буквой O; сети офиса на R2 должны остаться (с буквой D или через маршрут по умолчанию, если вы оставили default summary), show ip eigrp neighbors по-прежнему показывает соседа, пинги между LAN и до интернета проходят. Только после этого отмените страховку и сохраните конфигурацию на обоих маршрутизаторах:

enable
reload cancel
copy running-config startup-config

Если перезагрузка не была запланирована, reload cancel сообщит об этом, это безвредно. Если проверка не удалась, ничего не сохраняйте: страховка reload in 10 вернёт маршрутизатор к последней сохранённой конфигурации.

Как вернуть OSPF

Если после перехода на EIGRP вы решили вернуться (например, чтобы продолжить статьи, рассчитанные на OSPF), сначала настройте OSPF так же, как в статье про OSPF, а потом уберите EIGRP, чтобы маршруты не перекрывались (EIGRP с AD 90 выигрывает у OSPF с AD 110). Блоки ниже повторяют настройку из той статьи; если вы использовали там аутентификацию OSPF, верните и её. Выполняйте с консоли.

На R1:

enable
configure terminal
router ospf 1
 router-id 10.0.12.1
 passive-interface default
 no passive-interface GigabitEthernet0/0/2
 default-information originate
exit
interface GigabitEthernet0/0/2
 ip ospf network point-to-point
 ip ospf 1 area 0
exit
interface GigabitEthernet0/0/1.10
 ip ospf 1 area 0
exit
interface GigabitEthernet0/0/1.20
 ip ospf 1 area 0
exit
interface GigabitEthernet0/0/1.99
 ip ospf 1 area 0
end

На R2:

enable
configure terminal
router ospf 1
 router-id 10.0.12.2
 passive-interface default
 no passive-interface GigabitEthernet0/0/0
exit
interface GigabitEthernet0/0/0
 ip ospf network point-to-point
 ip ospf 1 area 0
exit
interface GigabitEthernet0/0/1
 ip ospf 1 area 0
end

Как проверить: show ip ospf neighbor показывает соседа в состоянии FULL (подробнее в статье про OSPF). Затем на обоих маршрутизаторах удалите EIGRP и снова проверьте show ip route: сети должны прийти с буквой O, а R2 получить маршрут по умолчанию из OSPF.

enable
configure terminal
no router eigrp LAB
end

После успешной проверки сохраните конфигурацию (copy running-config startup-config).

Типичные ошибки

  • Разные номера AS. autonomous-system 100 на одном и autonomous-system 200 на другом маршрутизаторе дают пустую таблицу соседей. Имя процесса (LAB) при этом совпадать не обязано.
  • Адреса стыка из разных подсетей или неверная маска. Hello-пакет принимается только от источника в подсети интерфейса. Сверьте show ip interface brief на обоих концах.
  • Интерфейс не включён в EIGRP или объявлен пассивным. Если wildcard-маска в network не охватывает адрес интерфейса, сеть не объявляется и соседство не образуется. Если интерфейс стыка объявлен passive-interface, hello-пакеты не отправляются и не принимаются. Сверьте разделы Routing for Networks и Passive Interface(s) в show ip protocols.
  • Не совпадают K-значения. Один из маршрутизаторов настроен с изменёнными весами метрики. В журнале ищите K-value mismatch.
  • Разные пароли или режимы аутентификации. Сосед то появляется, то исчезает или не появляется вовсе. Проверьте authentication mode на обоих концах.
  • Фильтрация ACL. Список доступа на стыке режет протокол 88 или адрес 224.0.0.10. В список нужно добавить permit eigrp any any (подробности — в статье про ACL).

Отдельно запомните состояние stuck in active (SIA): маршрут завис в Active (запрос query описан в разделе «Как EIGRP выбирает путь»), потому что сосед не ответил на запрос около трёх минут, после чего маршрутизатор сбрасывает соседство; в журнале это сообщение %DUAL-3-SIA.

Что дальше

Ещё по теме «Cisco»