В этой статье мы рассмотрим протокол маршрутизации Cisco EIGRP. EIGRP (Enhanced Interior Gateway Routing Protocol) - это протокол расширенной векторной маршрутизации, который должен устанавливать отношения соседства перед отправкой обновлений. Из-за этого первое, что нам нужно сделать, это проверить, правильно ли работает соседство. Если это так, мы можем продолжить, проверив, объявляются сети или нет. В этой статье рассмотрим все, что может пойти не так с EIGRP, как это исправить и в каком порядке. Давайте начнем с проверки соседства!
Существует ряд элементов, которые вызывают проблемы соседства EIGRP:
- Неизвестная подсеть: соседи EIGRP с IP-адресами, которые не находятся в одной подсети.
- Несоответствие значений K: по умолчанию пропускная способность и задержка включены для расчета метрики. Мы можем включить нагрузку и надежность, но мы должны сделать это на всех маршрутизаторах EIGRP.
- Несоответствие AS: номер автономной системы должен совпадать на обоих маршрутизаторах EIGRP, чтобы сформировать соседство.
- Проблемы уровня 2: EIGRP работает на уровне 3 модели OSI. Если уровни 1 и 2 не работают должным образом, у нас будут проблемы с формированием соседства.
- Проблемы со списком доступа: возможно, кто-то создал список доступа, который отфильтровывает многоадресный трафик. EIGRP по умолчанию использует 224.0.0.10 для связи с другими соседями EIGRP.
- NBMA: по умолчанию Non Broadcast Multi Access сети, такие как Frame Relay, не разрешают широковещательный или многоадресный трафик. Это может препятствовать тому, чтобы EIGRP формировал соседние отношения EIGRP.
![Топология Топология](http://wiki.merionet.ru/images/troubleshooting-eigrp/1.png)
OFF1(config)#int f0/0 OFF1(config-if)#ip address 192.168.12.1 255.255.255.0 OFF1(config-if)#router eigrp 12 OFF1(config-router)#network 192.168.12.0 OFF2(config)#int f0/0 OFF2(config-if)#ip address 192.168.21.2 255.255.255.0 OFF2(config)#router eigrp 12 OFF2(config-router)#network 192.168.21.0
Ошибку неверной подсети легко обнаружить. В приведенном выше примере у нас есть 2 маршрутизатора, и вы можете видеть, что были настроены разные подсети на каждом интерфейсе.
После включения EIGRP всплывают следующие ошибки:
![осле включения EIGRP всплывают следующие ошибки осле включения EIGRP всплывают следующие ошибки](http://wiki.merionet.ru/images/troubleshooting-eigrp/2.png)
![осле включения EIGRP всплывают следующие ошибки осле включения EIGRP всплывают следующие ошибки](http://wiki.merionet.ru/images/troubleshooting-eigrp/3.png)
Оба маршрутизатора жалуются, что находятся не в одной подсети.
OFF2(config-router)#int f0/0 OFF2(config-if)#ip address 192.168.12.2 255.25 OFF2(config)#router eigrp 12 OFF2(config-router)#no network 192.168.21.0 OFF2(config-router)#network 192.168.12.0
Мы изменили IP-адрес на OFF2 и убедились, что для EIGRP правильно настроена команда network
.
![команда network команда network](http://wiki.merionet.ru/images/troubleshooting-eigrp/4.png)
![команда network команда network](http://wiki.merionet.ru/images/troubleshooting-eigrp/5.png)
Вуаля! Теперь у нас есть соседство EIGRP.
![Теперь у нас есть соседство EIGRP Теперь у нас есть соседство EIGRP](http://wiki.merionet.ru/images/troubleshooting-eigrp/6.png)
![Теперь у нас есть соседство EIGRP Теперь у нас есть соседство EIGRP](http://wiki.merionet.ru/images/troubleshooting-eigrp/7.png)
Проверим это с помощью команды show ip eigrp neighbors
.
Извлеченный урок: убедитесь, что оба маршрутизатора находятся в одной подсети.
Case #2
![Топология №2 Топология №2](http://wiki.merionet.ru/images/troubleshooting-eigrp/8.png)
На этот раз IP-адреса верны, но мы используем разные значения K с обеих сторон. OFF1 включил пропускную способность, задержку, нагрузку и надежность. OFF2 использует только пропускную способность и задержку.
![OFF2 использует только пропускную способность и задержку OFF2 использует только пропускную способность и задержку](http://wiki.merionet.ru/images/troubleshooting-eigrp/9.png)
Эту ошибку легко обнаружить, поскольку сообщение в консоли гласит "Несоответствие K-значений" на обоих маршрутизаторах.
![Несоответствие K-значений Несоответствие K-значений](http://wiki.merionet.ru/images/troubleshooting-eigrp/10.png)
Мы можем проверить нашу конфигурацию, посмотрев ее на обоих маршрутизаторах. Как вы видите, что значения K были изменены на OFF1.
OFF2(config)#router eigrp 12 OFF2(config-router)#metric weights 0 1 1 1 1 0
Давайте убедимся, что значения K одинаковы на обоих маршрутизаторах, так как мы изменили их на OFF2.
![убедимся, что значения K одинаковы на обоих маршрутизаторах убедимся, что значения K одинаковы на обоих маршрутизаторах](http://wiki.merionet.ru/images/troubleshooting-eigrp/11.png)
После изменения значений K у нас появилось соседство EIGRP-соседей.
![соседство EIGRP-соседей соседство EIGRP-соседей](http://wiki.merionet.ru/images/troubleshooting-eigrp/12.png)
![соседство EIGRP-соседей соседство EIGRP-соседей](http://wiki.merionet.ru/images/troubleshooting-eigrp/13.png)
Еще одна проблема решена!
Извлеченный урок: убедитесь, что значения K одинаковы на всех маршрутизаторах EIGRP в одной и той же автономной системе.
Case #3
Давайте продолжим со следующей ошибкой ...
![Ошибка Ошибка](http://wiki.merionet.ru/images/troubleshooting-eigrp/14.png)
Вот еще один пример типичной проблемы. Несоответствие номера AS. Когда мы настраиваем EIGRP, мы должны ввести номер AS. В отличие от OSPF (который использует ID процесса) этот номер должен быть одинаковым на обоих маршрутизаторах.
![Несоответствие номера AS Несоответствие номера AS](http://wiki.merionet.ru/images/troubleshooting-eigrp/15.png)
В отличие от других неверных настроек конфигурации EIGRP, эта проблема не выдает сообщение об ошибке. Используем команду show ip eigrp neighbors
и видим, что соседей нет. Внимательно изучите выходные данные, чтобы обнаружить различия, и вы увидите, что маршрутизаторы используют разные номера AS.
![маршрутизаторы используют разные номера AS маршрутизаторы используют разные номера AS](http://wiki.merionet.ru/images/troubleshooting-eigrp/16.png)
Если посмотреть на работающую конфигурацию, и мы увидим то же самое.
![маршрутизаторы используют разные номера AS маршрутизаторы используют разные номера AS](http://wiki.merionet.ru/images/troubleshooting-eigrp/17.png)
Давайте изменим номер AS на OFF2.
![изменим номер AS на OFF2 изменим номер AS на OFF2](http://wiki.merionet.ru/images/troubleshooting-eigrp/18.png)
После смены номера AS все заработало как положено.
![После смены номера AS все заработало После смены номера AS все заработало](http://wiki.merionet.ru/images/troubleshooting-eigrp/19.png)
Извлеченный урок: убедитесь, что номера AS одинаковые, если вы хотите соседства EIGRP.
Case #4
И последнее, но не менее важное: если вы проверили номер AS, значения K, IP-адреса и у вас все еще нет работающего соседства EIGRP, вам следует подумать о безопасности. Возможно, access-list блокирует EIGRP и/или многоадресный трафик.
![ACL блокирует EIGRP ACL блокирует EIGRP](http://wiki.merionet.ru/images/troubleshooting-eigrp/20.png)
Следующая ситуация: опять два маршрутизатора EIGRP и отсутствие соседства. Что здесь происходит?
![два маршрутизатора EIGRP и отсутствие соседства два маршрутизатора EIGRP и отсутствие соседства](http://wiki.merionet.ru/images/troubleshooting-eigrp/21.png)
Мы видим, что нет соседей ...
![нет соседей нет соседей](http://wiki.merionet.ru/images/troubleshooting-eigrp/22.png)
![нет соседей нет соседей](http://wiki.merionet.ru/images/troubleshooting-eigrp/23.png)
Если вы посмотрите на вывод команды show ip protocols, то увидите, что сеть была объявлена правильно. Если вы посмотрите внимательно на OFF2, вы увидите, что у нас есть пассивный интерфейс.
Удалим настройки пассивного интерфейса!
OFF2(config)#router eigrp 12 OFF2(config-router)#no passive-interface fastEthernet 0/0
Еще одна неправильная настройка создала нам проблемы, но мы ее решили.
![проблема решена проблема решена](http://wiki.merionet.ru/images/troubleshooting-eigrp/24.png)
![проблема решена проблема решена](http://wiki.merionet.ru/images/troubleshooting-eigrp/25.png)
Задача решена!
Извлеченный урок: не включайте пассивный интерфейс, если вы хотите установить соседство EIGRP.
Case #5
![список доступа на OFF2, который блокирует весь входящий многоадресный трафик список доступа на OFF2, который блокирует весь входящий многоадресный трафик](http://wiki.merionet.ru/images/troubleshooting-eigrp/26.png)
В приведенном выше примере у нас есть те же 2 маршрутизатора, но на этот раз кто-то решил, что было бы неплохо настроить список доступа на OFF2, который блокирует весь входящий многоадресный трафик.
![соседство EIGRP с OFF2 соседство EIGRP с OFF2](http://wiki.merionet.ru/images/troubleshooting-eigrp/27.png)
Здесь можно запутаться. На OFF1 мы видим, что он считает, что установил соседство EIGRP с OFF2. Это происходит потому, что мы все еще получаем пакеты EIGRP от OFF2.
![debug eigrp neighbors debug eigrp neighbors](http://wiki.merionet.ru/images/troubleshooting-eigrp/28.png)
Используем команду debug eigrp neighbors
, чтобы посмотреть, что происходит. Очевидно, что OFF1 не получает ответ от своих hello messages, holdtime истекает, и это отбрасывает установление соседства EIGRP.
![эхо-запрос по адресу многоадресной рассылки 224.0.0.10 эхо-запрос по адресу многоадресной рассылки 224.0.0.10](http://wiki.merionet.ru/images/troubleshooting-eigrp/29.png)
Быстрый способ проверить подключение - отправить эхо-запрос по адресу многоадресной рассылки 224.0.0.10, который использует EIGRP. МЫ видим, что мы ответа нет от этого запроса. Рекомендуется проверить, есть ли в сети списки доступа.
![TSTETSTST TSTETSTST](http://wiki.merionet.ru/images/troubleshooting-eigrp/30.png)
Так, так! Мы нашли что-то ...
![Мы нашли что-то Мы нашли что-то](http://wiki.merionet.ru/images/troubleshooting-eigrp/31.png)
Этот список доступа блокирует весь многоадресный трафик. Давайте сделаем настройку, которая разрешит EIGRP.
OFF2(config)#ip access-list extended BLOCKMULTICAST OFF2(config-ext-nacl)#5 permit ip any host 224.0.0.10
Мы создаем специальное правило, которое будет разрешать трафик EIGRP.
![создаем специальное правило, которое будет разрешать трафик EIGRP создаем специальное правило, которое будет разрешать трафик EIGRP](http://wiki.merionet.ru/images/troubleshooting-eigrp/32.png)
Как мы видим, что трафик EIGRP разрешен - это соответствует правилу, которое мы выше создали.
![трафик EIGRP разрешен трафик EIGRP разрешен](http://wiki.merionet.ru/images/troubleshooting-eigrp/33.png)
![трафик EIGRP разрешен трафик EIGRP разрешен](http://wiki.merionet.ru/images/troubleshooting-eigrp/34.png)
Оба маршрутизатора теперь показывают рабочее соседство EIGRP.
![Оба маршрутизатора теперь показывают рабочее соседство EIGRP Оба маршрутизатора теперь показывают рабочее соседство EIGRP](http://wiki.merionet.ru/images/troubleshooting-eigrp/35.png)
Эхо-запрос, который мы только что отправили, теперь работает.
Извлеченный урок: не блокируйте пакеты EIGRP!
Case #6
![сеть Frame Relay и один канал PVC сеть Frame Relay и один канал PVC](http://wiki.merionet.ru/images/troubleshooting-eigrp/36.png)
Рассмотрим очередную ситуацию, в которой нет соседства EIGRP. На картинке выше мы имеем сеть Frame Relay и один канал PVC между OFF1 и OFF2. Вот соответствующая конфигурация:
![соответствующая конфигурация соответствующая конфигурация](http://wiki.merionet.ru/images/troubleshooting-eigrp/37.png)
![соответствующая конфигурация соответствующая конфигурация](http://wiki.merionet.ru/images/troubleshooting-eigrp/38.png)
Оба маршрутизатора настроены для Frame Relay, а EIGRP настроен.
![Оба маршрутизатора настроены для Frame Relay Оба маршрутизатора настроены для Frame Relay](http://wiki.merionet.ru/images/troubleshooting-eigrp/39.png)
![Оба маршрутизатора настроены для Frame Relay Оба маршрутизатора настроены для Frame Relay](http://wiki.merionet.ru/images/troubleshooting-eigrp/40.png)
Видно, что нет соседей ... это не хорошо! Можем ли мы пропинговать другую сторону?
![Можем ли мы пропинговать другую сторону Можем ли мы пропинговать другую сторону](http://wiki.merionet.ru/images/troubleshooting-eigrp/41.png)
Пинг проходит, поэтому мы можем предположить, что PVC Frame Relay работает. EIGRP, однако, использует многоадресную передачу, а Frame Relay по умолчанию - NBMA. Можем ли мы пропинговать адрес многоадресной рассылки EIGRP 224.0.0.10?
![PVC Frame Relay работает PVC Frame Relay работает](http://wiki.merionet.ru/images/troubleshooting-eigrp/42.png)
Здесь нет ответа на наш вопрос, по крайней мере, теперь мы знаем, что unicast трафик работает, а multicast не работает. Frame Relay может быть настроен для point-to-point или point-to-multipoint соединения. Физический интерфейс всегда является интерфейсом frame-relay point-tomultipoint, и для него требуются frame-relay maps, давайте проверим это:
![frame-relay maps frame-relay maps](http://wiki.merionet.ru/images/troubleshooting-eigrp/43.png)
![frame-relay maps frame-relay maps](http://wiki.merionet.ru/images/troubleshooting-eigrp/44.png)
Мы видим, что оба маршрутизатора имеют DLCI-to-IP карты, поэтому они знают, как связаться друг с другом. Видим, что они используют ключевое слово "статический", а это говорит о том, что это сопоставление было кем-то настроено и не изучено с помощью Inverse ARP (в противном случае вы увидите "динамический"). Мы не видим ключевое слово "broadcast", которое требуется для пересылки широковещательного или многоадресного трафика. На данный момент у нас есть 2 варианта решения этой проблемы:
- Настроить EIGRP для использования одноадресного трафика вместо многоадресного.
- Проверить конфигурацию Frame Relay и убедится, что многоадресный трафик не перенаправляется.
Давайте сначала сделаем unicast настройку EIGRP:
OFF1(config)#router eigrp 12 OFF1(config-router)#neighbor 192.168.12.2 serial 0/0 OFF2(config)#router eigrp 12 OFF2(config-router)#neighbor 192.168.12.1 serial 0/0
Нам нужна команда neighbor
для конфигурации EIGRP. Как только вы введете эту команду и нажмете enter, вы увидите это:
![neighbor neighbor](http://wiki.merionet.ru/images/troubleshooting-eigrp/45.png)
![neighbor neighbor](http://wiki.merionet.ru/images/troubleshooting-eigrp/46.png)
Задача решена! Теперь давайте попробуем другое решение, где мы отправляем multicast трафик по PVC Frame Relay:
OFF1(config)#router eigrp 12 OFF1(config-router)#no neighbor 192.168.12.2 serial 0/0 OFF2(config)#router eigrp 12 OFF2(config-router)#no neighbor 192.168.12.1 serial 0/0
Если это не работает ... не исправляйте это... , но не в этот раз! Пришло время сбросить соседство EIGRP.
OFF1(config)#interface serial 0/0 OFF1(config-if)#frame-relay map ip 192.168.12.2 102 broadcast OFF2(config)#interface serial 0/0 OFF2(config-if)#frame-relay map ip 192.168.12.1 201 broadcast
Broadcast - это ключевое волшебное слово здесь. Это разрешит широковещательный и многоадресный трафик.
![широковещательный и многоадресный трафик широковещательный и многоадресный трафик](http://wiki.merionet.ru/images/troubleshooting-eigrp/47.png)
![широковещательный и многоадресный трафик широковещательный и многоадресный трафик](http://wiki.merionet.ru/images/troubleshooting-eigrp/48.png)
После изменения конфигурации frame-relay map появляется соседство EIGRP! Это все, что нужно сделать.
Извлеченный урок: проверьте, поддерживает ли ваша сеть Frame Relay broadcast или нет. Настройте EIGRP для использования unicast передачи или измените конфигурацию Frame Relay для поддержки широковещательного трафика.
Продолжение цикла про поиск и устранение неисправностей протокола EIGRP можно почитать тут.