В этой статье мы рассмотрим протокол маршрутизации 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.
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 всплывают следующие ошибки:
Оба маршрутизатора жалуются, что находятся не в одной подсети.
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
.
Вуаля! Теперь у нас есть соседство EIGRP.
Проверим это с помощью команды show ip eigrp neighbors
.
Извлеченный урок: убедитесь, что оба маршрутизатора находятся в одной подсети.
Case #2
На этот раз IP-адреса верны, но мы используем разные значения K с обеих сторон. OFF1 включил пропускную способность, задержку, нагрузку и надежность. OFF2 использует только пропускную способность и задержку.
Эту ошибку легко обнаружить, поскольку сообщение в консоли гласит "Несоответствие K-значений" на обоих маршрутизаторах.
Мы можем проверить нашу конфигурацию, посмотрев ее на обоих маршрутизаторах. Как вы видите, что значения K были изменены на OFF1.
OFF2(config)#router eigrp 12 OFF2(config-router)#metric weights 0 1 1 1 1 0
Давайте убедимся, что значения K одинаковы на обоих маршрутизаторах, так как мы изменили их на OFF2.
После изменения значений K у нас появилось соседство EIGRP-соседей.
Еще одна проблема решена!
Извлеченный урок: убедитесь, что значения K одинаковы на всех маршрутизаторах EIGRP в одной и той же автономной системе.
Case #3
Давайте продолжим со следующей ошибкой ...
Вот еще один пример типичной проблемы. Несоответствие номера AS. Когда мы настраиваем EIGRP, мы должны ввести номер AS. В отличие от OSPF (который использует ID процесса) этот номер должен быть одинаковым на обоих маршрутизаторах.
В отличие от других неверных настроек конфигурации EIGRP, эта проблема не выдает сообщение об ошибке. Используем команду show ip eigrp neighbors
и видим, что соседей нет. Внимательно изучите выходные данные, чтобы обнаружить различия, и вы увидите, что маршрутизаторы используют разные номера AS.
Если посмотреть на работающую конфигурацию, и мы увидим то же самое.
Давайте изменим номер AS на OFF2.
После смены номера AS все заработало как положено.
Извлеченный урок: убедитесь, что номера AS одинаковые, если вы хотите соседства EIGRP.
Case #4
И последнее, но не менее важное: если вы проверили номер AS, значения K, IP-адреса и у вас все еще нет работающего соседства EIGRP, вам следует подумать о безопасности. Возможно, access-list блокирует EIGRP и/или многоадресный трафик.
Следующая ситуация: опять два маршрутизатора EIGRP и отсутствие соседства. Что здесь происходит?
Мы видим, что нет соседей ...
Если вы посмотрите на вывод команды show ip protocols, то увидите, что сеть была объявлена правильно. Если вы посмотрите внимательно на OFF2, вы увидите, что у нас есть пассивный интерфейс.
Удалим настройки пассивного интерфейса!
OFF2(config)#router eigrp 12 OFF2(config-router)#no passive-interface fastEthernet 0/0
Еще одна неправильная настройка создала нам проблемы, но мы ее решили.
Задача решена!
Извлеченный урок: не включайте пассивный интерфейс, если вы хотите установить соседство EIGRP.
Case #5
В приведенном выше примере у нас есть те же 2 маршрутизатора, но на этот раз кто-то решил, что было бы неплохо настроить список доступа на OFF2, который блокирует весь входящий многоадресный трафик.
Здесь можно запутаться. На OFF1 мы видим, что он считает, что установил соседство EIGRP с OFF2. Это происходит потому, что мы все еще получаем пакеты EIGRP от OFF2.
Используем команду debug eigrp neighbors
, чтобы посмотреть, что происходит. Очевидно, что OFF1 не получает ответ от своих hello messages, holdtime истекает, и это отбрасывает установление соседства EIGRP.
Быстрый способ проверить подключение - отправить эхо-запрос по адресу многоадресной рассылки 224.0.0.10, который использует EIGRP. МЫ видим, что мы ответа нет от этого запроса. Рекомендуется проверить, есть ли в сети списки доступа.
Так, так! Мы нашли что-то ...
Этот список доступа блокирует весь многоадресный трафик. Давайте сделаем настройку, которая разрешит EIGRP.
OFF2(config)#ip access-list extended BLOCKMULTICAST OFF2(config-ext-nacl)#5 permit ip any host 224.0.0.10
Мы создаем специальное правило, которое будет разрешать трафик EIGRP.
Как мы видим, что трафик EIGRP разрешен - это соответствует правилу, которое мы выше создали.
Оба маршрутизатора теперь показывают рабочее соседство EIGRP.
Эхо-запрос, который мы только что отправили, теперь работает.
Извлеченный урок: не блокируйте пакеты EIGRP!
Case #6
Рассмотрим очередную ситуацию, в которой нет соседства EIGRP. На картинке выше мы имеем сеть Frame Relay и один канал PVC между OFF1 и OFF2. Вот соответствующая конфигурация:
Оба маршрутизатора настроены для Frame Relay, а EIGRP настроен.
Видно, что нет соседей ... это не хорошо! Можем ли мы пропинговать другую сторону?
Пинг проходит, поэтому мы можем предположить, что PVC Frame Relay работает. EIGRP, однако, использует многоадресную передачу, а Frame Relay по умолчанию - NBMA. Можем ли мы пропинговать адрес многоадресной рассылки EIGRP 224.0.0.10?
Здесь нет ответа на наш вопрос, по крайней мере, теперь мы знаем, что unicast трафик работает, а multicast не работает. Frame Relay может быть настроен для point-to-point или point-to-multipoint соединения. Физический интерфейс всегда является интерфейсом frame-relay point-tomultipoint, и для него требуются frame-relay maps, давайте проверим это:
Мы видим, что оба маршрутизатора имеют 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, вы увидите это:
Задача решена! Теперь давайте попробуем другое решение, где мы отправляем 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 - это ключевое волшебное слово здесь. Это разрешит широковещательный и многоадресный трафик.
После изменения конфигурации frame-relay map появляется соседство EIGRP! Это все, что нужно сделать.
Извлеченный урок: проверьте, поддерживает ли ваша сеть Frame Relay broadcast или нет. Настройте EIGRP для использования unicast передачи или измените конфигурацию Frame Relay для поддержки широковещательного трафика.
Продолжение цикла про поиск и устранение неисправностей протокола EIGRP можно почитать тут.