Курс по сетевым технологиям
A A A

 

В работе EIGRP возможны следующие проблемы: 

  • Не устанавливаются состояния смежности
  • Маршруты не попадают в таблицу маршрутизации

 

Рассмотрим все возможные причины по порядку.

 

 

Проблемы с установлением смежности 

Как мы знаем маршрутизаторы периодически анонсируют Hello сообщения, чтобы установить состояние смежности и в дальнейшем его поддерживать.Однако, “соседство” устанавливается, если ниже перечисленные параметры совпадают на соседних маршрутизаторах (непосредственно подключенных друг к другу): 

  • Подсеть и маска подсети
  • Коэффициенты K
  • Номер автономной сети
  • Значение таймера Holddown
  • Тип аутентификации и пароль

 

Кроме того, на установление смежности также влияют проблемы на уровнях L1/L2 и неправильно настроенные списки доступа ACL. Списки доступа мы рассмотрим в одном из следующих уроках, однако вкратце поясню для чего они служат.

ACL являются фильтром пакетов. Фильтрация осуществляется на основе адресов и портов отправителя/получателя. Причем ACL работают как на передачу, так и на прием. Таким образом, можно по ошибке настроить запрет на прием или передачу пакетов EIGRP. 

Теперь посмотрим как проверить параметры протокола. На рисунке представлена простая сеть. На маршрутизаторе R2 неправильно настроили IP адрес. На R2 вместо 192.168.1.2 установили 192.168.2.2:




Как узнать, что у нас есть проблема с установлением смежности? 

Обычно сразу после включения интерфейса и протокола в консоль выводится сообщение об успешной установки смежности:



Правилом хорошего тона является проверка работоспособности протокола сразу после его настройки. Для этого достаточно выполнить простые команды:

Router# show ip route

Router#show ip eigrp neighbors

 

В нашем случае команды покажут, что сосед не обнаружен. Поэтому просто попробуем локализовать проблему на соответствующем уровне L1/L2/L3. 

Запустим Ping 192.168.1.2



Исходя из вывода можно предположить, что проблема на L3. Чтобы убедиться в этом проверим L2:

Router# show cdp neighbors detail

 

 

Результат показывает, что на L2 проблем нет и мы даже видим IP адрес соседнего маршрутизатора. Это уже должно навести на мысль, что проблема с адресацией. 

Для большей убедительности можно проверить конфигурацию каждого маршрутизатора и проверить настройки интерфейсов. 

 

Что делать, если соседний маршрутизатор не Cisco и команда cdp не помогает? 

С помощью следующей команды можно проверить сразу 2 уровня:

Router# show ip eigrp traffic

 

 

Здесь указываются счетчики принятых и отправленных пакетов. Если мы видим, что количество принятых и отправленных пакетов растет, значит на L2 все в порядке. Нулевое значение остальных счетчиков говорит, что состояние смежности не установлено и проблема скорее всего в EIGRP.

 

 

Несоответствие параметров протокола 

Если параметры К или Holddown не совпадают, то в консоль будут выведены следующие сообщения:

 

Если же не совпадают номера автономных сетей, то в консоль ничего выводится не будет. Входящие Hello пакеты будут просто игнорироваться. 

Поэтому на обоих маршрутизаторах проверяем настройки протокола командой

Router# show ip protocol

 

 

 

Неправильная аутентификация 

Правильнее всего сначала настроить сам EIGRP безу аутентификации. Если все настроено правильно, то появится сообщение об успешной установки смежности. 

Так мы убедимся, что основные настройки верны и приступим к аутентификации. Обычно после установки пароля на первом маршрутизаторе состояние смежности удаляется, о чем свидетельствует сообщение:


Если второй маршрутизатор настроен верно, то сразу же появится сообщение об установки смежности. Если его нет, то проверяем что не так:

Router# show ip eigrp interfaces detail

 

 

Router# show key chain

 

 

 

 

Проблемы с установкой маршрутов в таблице маршрутизации 

В таблицу маршрутизации запись о сетях может не попасть по следующим причинам: 

  • Включена автоматическая суммаризация либо неправильно настроена
  • В сети имеются маршрутизаторы с одинаковыми ID 

 

 

Автосуммаризация 

Данная опция всегда включена по умолчанию и может приводить к проблемам в маршрутизации. Рассмотрим сеть:





Теперь взглянем на таблицу маршрутизации R1 и R2:

 

В обеих таблицах присутствует запись о суммированном маршруте 172.16.0.0/16, но абсолютно ничего о сетях соседей.

Если попробуем ping с любого компьютера на компьютер соседнего маршрутизатора, то получим о сообщение о недостижимости сети:


И это понятно, так как в таблице для маршрута 172.16.0.0/16 в качестве выходного интерфейса указан Null0. Null0 означает “черную дыру”, иными словами все пакеты будут уничтожены. 

Почему же роутер не установит все маршруты в таблице, включая и суммированный? 

Дело в том, что в EIGRP все суммированные маршруты имеют административное расстояние равное 5. Поэтому такие маршруты и попадают в таблицу на приоритетных правах. Чтобы убедиться в этом взглянем на запись о сети подробнее:

Router# show ip route 172.16.0.0 255.255.0.0

 

 

Чтобы решить эту проблему достаточно просто отключить автосуммирование и при необходимости настроить суммированный маршрут вручную. Вот как будет выглядеть таблица после отключения данной опции:

 

 

Одинаковый Router-ID 

В EIGRP Router ID используется для предотвращения зацикливания анонсов о внешних сетях. Когда роутер получает такой анонс, то в первую очередь сравнивает свой Router ID и соседа. Если они разные, то анонс сети принимается, если нет - то игнорируется. Значение Router ID устанавливается вручную командой:

Router(config-config)# eigrp router-id значение_в_виде_IP_адреса

 

Если данная команда не была выполнена, то протокол в качестве ID выберет адрес Loopback интерфейса либо другого активного интерфейса.

Рассмотрим сеть ниже. Между R2 и R3 настроен RIP. Задачей R2 передать информацию о сетях 200.1.1.0/24, 198.1.1.0/24 всем внутренним маршрутизаторам:




Взглянем на таблицу маршрутов R1 и R2:


В R1 нет ни одной записи о внешних сетях, хотя все настройки выполнены правильно. Посмотрим на события в логах EIGRP:

Router# show ip eigrp events

 

 

Из рисунка видно, что внешние сети анонсируются, однако R1 их почему-то игнорирует. Взглянем на ID данного и соседнего роутеров:

Router# show ip eigrp topology

 

 

У обоих маршрутизаторов одинаковое значение ID. Это связано с тем, что у них настроен Loopback интерфейс с адресом 1.1.1.1. 

Чтобы исправить ситуацию можно на одном из роутеров поменять адрес Loopback интерфейса либо явно задать Router ID командой:

Router(config-eigrp)# eigrp router-id значение_ID

 

После этого необходимо перезагрузить R1 и R2. Теперь все работает