Конфигурирование и проверка EIGRP
Описываются команды для конфигурирования и проверки работы протокола EIGRP;
- Планирование и базовая конфигурация EIGRP;
- Проверка работы;
- Использования команды passive-interface;
- Передача маршрута по умолчанию EIGRP;
- Суммирование.
Содержание
Планирование и базовая конфигурация EIGRP
Planning for Basic EIGRP
Сеть, показанная на рисунке, должна быть настроена на использование EIGRP
- Шаг 1. Определить требования к сети;
- Шаг 2. Собрать необходимые параметры;
- Шаг 3. Определить параметры маршрутизации EIGRP;
- Шаг 4. Сконфигурировать EIGRP;
- Шаг 5. Проверить конфигурацию.
Требования и параметры
R1 и R2 находятся в 110 AS, R3 - в нешней сети, не являющейся частью AS. Требования для базового EIGRP следующие:
- План адресации - ip адреса всех интерфейсов устройств;
- номера автономных систем EIGRP - маршрутизаторы в одном домене используют один номер AS. В примере 110;
- Интерфейсы, на которых запущен протокол, и участвующие в маршрутизации сети EIGRP - интерфейсы используются для обмена различными сообщениями между соседями. В
- Bandwidth интерфейсов - т.к. BW - часть метрики. Чтобы влиять на выбор пути. В примере актуальная пп - 512 кбит/сек.
В ранних IOS стандартная BW для всех serial-портов была T1 (1.544 мегабита). Сейчас варьируется от типа интерфейса. Если стандартный параметр задержки на интерфейсе не отражает реальность, то можно воспользоваться командой
delay tens-of-microseconds.
Базовая конфигурация
В плане внедрения должны быть прописаны следующие задачи для базовой конфигурации EIGRP:
Шаг 1. - Включение EIGRP и назначение номера автономной системы:
R(config)#router eigrp <номер автономной системы>
Номер автономной системы должен быть одинаковым на всех маршрутизаторах, входящих в одну автономную систему.
Шаг 2. - Определение сетей, участвующих в маршрутизации EIGRP:
R(config)#network <IP-адрес сети> [<wildcard-маска>]
<IP-адрес сети> - непосредственно подключенная к маршрутизатору сеть. Этот параметр инструктирует EIGRP, что соединения, принадлежащие данной сети, должны объявляться соседям, а интерфейсы, назначенные данной сети, должны принимать EIGRP-объявления. <wildcard-маска> - необязательный аргумент, уточняющий маску подсети. Маска подсети может быть введена как в wildcard-формате, так и в обычном. Например команды network 10.10.10.0 255.255.255.252 и network 10.10.10.0 0.0.0.3 идентичны.
Если опциональная wildcard-маска не используется, то процесс маршрутизации EIGRP будет работать со всеми напрямую подключёнными сетям, относящимися к классовой сети (А, В или С) и попытается установить соседские отношения через каждый такой интерфейс.
Шаг 3. - Определение полосы пропускания последовательных соединений (serial links). По умолчанию EIGRP рассматривает полосу пропускания последовательных соединений как 1544 кбит/с. В случае, если скорость соединения отлична от 1544 кбит/с, необходимо применить команду bandwidth на интерфейсе для правильного расчета метрик EIGRP:
R(config-if)#bandwidth <скорость>
<скорость> - аргумент, определяющий полосу пропускания интерфейса в кбит/с. Например, для соединения в 64 кбит/с команда будет: bandwidth 64.
Команда Bandwidth носит чисто информационный характер и реально никак не влияет на скорость соединения. Однако, стоит помнить, что она участвует в процессе расчёта метрик. Если соединения на самом деле медленнее, чем стандартное значение BW, это может привести к тому, что конвергенция не сможет произойти или обновления маршрутизации будут потеряны.
Для последовательных интерфейсов с инкапсуляцией PPP или HDLC нужно устанавливать bandwidth равным скорости линии. Для point-to-point интерфейсов Frame Relay - равным CIR (гарантированная скорость передачи). Для multipoint интерфейсов Frame Relay - равным сумме всех CIR, или, если виртуальные каналы (PVC) имеют различную скорость - равным минимальному CIR, умноженному на количество PVC.
BW полоса пропускания канала используется, например, протоколом TCP при повторной передаче.
Пример базовой конфигурации
Конфигурация R1 показана в примере 1 (Конфигурация R2 аналогична)
Пример 1
interface FastEthernet0/0 ip address 172.16.1.1 255.255.255.0 interface Serial0/0/1 bandwidth 512 ip address 192.168.1.101 255.255.255.254 interface Serial0/0/2 ip address 172.16.5.1 255.255.255.0 router eigrp 110 network 172.16.1.0 0.0.0.255 network 192.168.1.0
Из схемы и конфигурации R1 видно, что он анонсирует R2 маршрут к полной классовой сети 172.16.0.0, так как используется автосуммирование. R1 не сконфигурирован для работы RIGRP на 172.16.5.0 (указана масска 0.0.0.255), поэтому он не пытается установить соседство с R3.
Другой пример базовой конфигурации
Рассмотрим начальную конфигурацию EIGRP для маршрутизатора A. Данный маршрутизатор, как и остальные, принадлежит автономной системе с номером 109. Непосредственно к нему подключены четыре подсети: 10.1.0.0, 10.4.0.0, 172.16.2.0, 172.16.7.0. Если не использовать wildcard-маску в объявлении сетей, то команды начальной конфигурации будут выглядеть так:
A(config)#router eigrp 109 A(config-router)#network 10.0.0.0 A(config-router)#network 172.16.2.0
Нам не нужно указывать точные IP-адреса подсетей. Если не используется wildcard-маска, маршрутизатор обнуляет хостовую часть IP-адреса подсети до границы класса. Другими словами, объявление всех подсетей 10.1.0.0, 10.4.0.0, 172.16.2.0, 172.16.7.0 привело бы к точно такому же результату, что и команды выше.
Wildcard-маска может использоваться для конкретизации интерфейсов и подсетей, участвующих в EIGRP. Например, представим, что маршрутизатор E является внешним, не входящим в автономную систему 109, и мы не желаем обмениваться с ним EIGRP-информацией. Это сэкономит полосу пропускания и процессорное время маршрутизатора. В этом случае команды начальной конфигурации будут выглядеть следующим образом:
A(config)#router eigrp 109 A(config-router)#network 10.1.0.0 0.0.255.255 A(config-router)#network 10.4.0.0 0.0.255.255 A(config-router)#network 172.16.2.0 0.0.0.255
Видно, что подсеть 172.16.7.0 не объявлена. Маршрутизатор A не устанавливает соседские отношения с маршрутизатором E, не посылает и не принимает EIGRP-пакеты через эту подсеть, и не рассказывает о ней своим соседям.
Проверка работы EIGRP
| Команда | Описание |
|---|---|
| show ip eigrp neighbors | выдаёт список соседей, обнаруженных EIGRP |
| show ip route | Показывает текущие записи в таблице маршрутизации для всех сконфигурированных протоколов маршрутизации. |
| show ip route eigrp | Показывает записи EIGRP в таблице маршрутизации |
| show ip protocols | Показывает параметры и текущий статус активных протоколов маршрутизации. Для EIGRP показывает номера AS, фильтрацию и redistribution numbers, соседей и информацию о дистанциях |
| show ip eigrp interfaces | Показывает информацию о задействованных EIGRP интерфейсах |
| show ip eigrp topology | Показывает топологическую таблицу EIGRP, статусы (active и passive) для маршрутов, число successor, FD для назначения. Внимание! Показываются только successor и feasible successor маршруты. Добавьте к команде all-links чтобы показать все маршруты. |
| show ip eigrp traffic | Показывает число полученных и отправленных пакетов EIGRP. Показывает статистику по hello-пакетам, обновлениям, запросам, ответам и ACK |
Используйте команду debug с осторожностью! Может быть требовательна к ресурсам, что повлияет на работу сети. Вывод дебага имеет более высокий приоритет, чем другой сетевой трафик.
| Команда | Описание |
|---|---|
| debug eigrp packets | Отображает типы пакетов EIGRP, полученных и отправленных. Максимум 11 типов пакетов может быть выбрано для отдельного или группового отображения. |
| debug ip eigrp | Отображает всю доступную отладочную информацию EIGRP, касающуюся протокола IP. Отображает пакеты, которые отправлены или получены на интерфейсе. Т.к. команда генерирует много информации, используйте только, когда трафик в сети небольшой. |
| debug ip eigrp summary | Разрешает отладку процедур, связанных с обработкой суммарных маршрутов EIGRP |
| debug eigrp neighbors | Отображает процесс поиска соседей и содержание hello-пакетов |
Проверка соседей
Команда show ip eigrp neighbors отображает содержание таблицы соседей.
R1#show ip eigrp neighbors
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.1.102 Se1/0 14 00:02:27 44 2280 0 3
- H (handle) - внутренний номер EIGRP-соседа. Данное поле заполняется по мере обнаружения соседей.
- Address - адрес сетевого уровня соседнего маршрутизатора.
- Interface - интерфейс, через который был обнаружен соседний маршрутизатор.
- Hold (hold time) - время в секундах, в течении которого маршрутизатор ждет EIGRP-пакет от соседа, прежде чем объявить его недоступным.
- Uptime - время продолжительности соседских отношений с данным маршрутизатором.
- SRTT (smoothed round-trip time - усредненная круговая задержка). Среднее время необходмое для отправки EIGRP-пакета и получения подтверждения.
- RTO (retrnsmisson timeout - таймер повторной передачи) - время в мс, в течении которого маршрутизатор ждет от соседа подтверждения получения пакета, прежде чем выслать пакет повторно. Когда маршрутизатор передает update-, query- или reply-пакет, он помещает копию этого пакета в очередь, которая затем используется для повторной отправки. RTO вычисляется на основе SRTT.
- Q Cnt (queue count) - число пакетов ожидающих в очереди. Если это значение постоянно поднимается выше 0, это указывает на наличие чрезмерной загрузки соединения.
- Seq Num - последовательный номер последнего update-, query- или reply-пакета, полученного от соседа. Используется для обнаружения нарушения порядка пакетов.
Детальную информацию можно получить командой show ip eigrp neighbors detail
R1#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 110
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.1.102 Se0/0/1 14 00:17:27 0 4500 3 274
Last startup serial 569
Version 12.4/1.0, Retrans: 2, Retries: 2, Waiting for Init Ack
Update seq 307 ser 29-569 Sent 8924 Init Sequenced
Update seq 310 ser 570-573 Sequenced
Update seq 312 ser 574-578 Sequenced
Здесь дополнительно указано:
- number of items a packet has been retransmitted (в примере 2);
- число попыток повторной передачи пекета (2);
- пакеты, ожидающие отправки (три);
- соседний маршрутизатор имеет IOS 12.4
- sequence номер (seq), увеличивающийся при каждом отправленном пакете-запросе, пакете-обновлении или пакете-ответе.
- ser - серийный номер, увеличивающийся при каждом изменении топологической таблицы.
Проверка маршрутов
show ip route eigrp
R1#show ip route eigrp
D 172.17.0.0/16 [90/40514560] via 192.168.1.102, 00:00:46, Serial1/0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
D 172.16.0.0/16 is a summary, 00:01:18, Null0
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
D 192.168.1.0/24 is a summary, 00:43:00, Null0
Команда show ip route eigrp выводит EIGRP-маршруты в таблице маршрутизации IP. EIGRP поддерживает следующие типы маршрутов: internal (внутренний), external (внешний) и summary (суммарный). Маршрут EIGRP помечен буквой D. Внешние EIGRP-маршруты (за пределы локальной автономной системы) помечаются как D EX.
После адреса сети в квадратных скобках указана метрика. EIGRP-метрика равна возможному расстоянию FD маршрута в таблице топологии. Первое число (в примере 90) - это административная дистанция, которая используется для выбора наилучшего маршрута, если существует больше одного маршрута к одному месту назначения, найденные разными протоколами маршрутизации. Выигрывает протокол с меньшей административной дистанцией.
Внимание Помните, что маршрутизаторы используют административную дистанцию только если хотя бы два одинаковых маршрута к назначению (и маска и адрес). Например, маршрутизатор выберет RIP, а не EIGRP, если его маршрут более специфичный.
Следующее поле "via 192.168.1.102" показывает адрес соседнего маршрутизатора (next-hop), через который будут передаваться пакеты для сети 172.17.0.0/16. Next-hop адрес в таблице топологии - это адрес преемника (successor) для данного места назначения.
Каждый маршрут отсчитывает время (00:00:46) с того момента, как сеть была объявлена локальному (нашему) маршрутизатору. Маршрутизатор повторно рассылает маршрутную информацию только когда меняется neighbor adjacencies. Следующее поле содержит интерфейс (в примере Serial1/0) через который передаются пакеты для данного места назначения.
Таблица маршрутизации содержит маршруты через интерфейсы Null0. Эти маршруты называется суммарными и помещаются в таблицу маршрутизации, если включено автоматическое суммирование. Null0 - это непосредственно подключенный программный интерфейс. Если маршрутизатор получает пакет для неизвестной сети, являющейся частью суммарной сети, (172.16.3.5, например) то данный пакет передается на интерфейс Null0, как наиболее соответствующий суммарной сети 172.16.0.0/16. Проще говоря, маршрутизатор удаляет этот пакет, вместо того, чтобы послать его на шлюз последней надежды, что могло бы привести к появлению петли.
Проверка работы
show ip protocols
R1#show ip protocols
Routing Protocol is "eigrp 100"
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 metric weight K1=1, K2=0, K3=1, K4=0, K5=0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: eigrp 100
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is in effect
Automatic address summarization:
192.168.1.0/24 for FastEthernet0/0
Summarizing with metric 40512000
172.16.0.0/16 for Serial1/0
Summarizing with metric 28160
Maximum path: 4
Routing for Networks:
172.16.1.0/24
192.168.1.0
Routing Information Sources:
Gateway Distance Last Update
(this router) 90 01:02:26
Gateway Distance Last Update
192.168.1.102 90 01:01:57
Distance: internal 90 external 170
Команда show ip protocols выводит информацию о протоколах маршрутизации запущенных на маршрутизаторе. Вывод показывает входящую и исходящую фильтрацию обновлений (входящих и исходящих) EIGRP, генерирует ли маршрутизатор или получает обновления о сети по умолчанию (wether EIGRP is generating a default network or receiving a default network in EIGRP updates).
Выводятся значения весовых коэффициентов EIGRP (K1 - K5), максимальное количество прыжков (hop), metric variance (отклонение метрики при балансировке нагрузки), включено ли автоматическое суммирование (automatic summarization) и максимальное количество маршрутов при балансировке (maximum path).
Два маршрутизатора должны иметь одинаковые значения параметров K для установления соседства!
Показаны сети, для которых включен EIGRP (Routing for Networks). Формат вывода сетей зависит от того, определена ли wildcard-маска при их объявлении. Для сети 172.16.1.0 была прописана wildcard-маска 0.0.0.255, на что указывает префикс подсети /24. В ином случае выводится адрес классовой сети.
Секция Routing Information Sources (источники информации о маршрутизации) содержит адреса соседних EIGRP-маршрутизаторов. Указаны два значения административной дистанции (Distance: internal 90 external 170): 90 - применяется для маршрутов внутри автономной системы, 170 - к внешним маршрутам, выходящих за границы автономной системы.
show ip eigrp interfaces
R1#show ip eigrp interfaces
IP-EIGRP interfaces for process 100
Xmit Queue Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable SRTT Un/Reliable Flow Timer Routes
Fa0/0 0 0/0 0 0/1 0 0
Se1/0 1 0/0 41 10/380 544 0
Команда show ip eigrp interfaces выводит информацию об интерфейсах, настроенных для EIGRP. Вывод содержит следующие столбцы:
- Interface - имя интерфейса.
- Peers - количество соседей подключенных через данный интерфейс
- Xmit Queue Un/Reliable - число пакетов находящихся в очередях надежной (reliable) и ненадежной (unreliable) доставки.
- Mean SRTT - усредненная круговая(??) задержка в мс.
- Pacing Time Un/Reliable - шаговое время, используемое для определения того, когда EIGRP-пакеты должны быть переданы через интерфейс (для надёжных и ненадёжных пакетов).
- Multicast Flow Timer - максимальное число секунд, через которое маршрутизатор ожидает ACK-пакет после отправки многоадресного EIGRP-пакета, перед тем, как переключиться с мультикаста на юникаст.
- Pending Routes - число маршрутов в пакетах в очереди передачи, ожидающих отправки (number of routes in the packets in the retransmit queue waiting to be sent).
show ip eigrp topology
Отображает статусы DUAL и помогает решать возможные проблемы в его работе.
R1#show ip eigrp topology IP-EIGRP Topology Table for AS(100)/ID(192.168.1.101)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.1.96/27, 1 successors, FD is 40512000
via Connected, Serial1/0
P 192.168.1.0/24, 1 successors, FD is 40512000
via Summary (40512000/0), Null0
P 172.16.0.0/16, 1 successors, FD is 28160
via Summary (28160/0), Null0
P 172.17.0.0/16, 1 successors, FD is 40514560
via 192.168.1.102 (40514560/28160), Serial1/0
P 172.16.1.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/0
Данная команда используется для проверки EIGRP-операций. Вывод показывает, что R1 имеет ID = 192.168.1.101 (максимальный IP-адрес активного интерфейса данного маршрутизатора (и loopback-интерфейсов, если они сконфигурированы), принадлежащего автономной системе с номером 100). Альтернативный способ - указать ID командой eigrp router-id ip-address (в этом случае, даже если есть и физ и/или loopback, в качестве ID будет использоваться указанный командой).
Записями служат места (сети) назначения, изученные протоколом EIGRP. Запись может иметь одно из следующих состояний (указано в первой колонке):
- P (Passive) - Сеть доступна и запись выложена в таблицу маршрутизации. Пассивный режим - нормальное состояние записи.
- A (Active) - Сеть не доступна в данный момент, запись не представлена в таблице маршрутизации. Active означает, что маршрутизатор разослал запросы о данной сети назначения.
- U (Update) - Сеть обновляется (показывает, что update-пакет был отправлен). Этот режим также применяется в случае, когда маршрутизатор ждет подтверждения ACK для update-пакета.
- Q (Query) - Разосланы query-пакеты для данной сети назначения. Этот режим также применяется в случае, когда маршрутизатор ждет подтверждения ACK для query-пакета.
- R (Reply) - Маршрутизатор генерирует (или создал) reply для данной сети. Показывает, что reply-пакет был отправлен. Этот режим также применяется в случае, когда маршрутизатор ждет подтверждения ACK для reply-пакета.
- r (Reply status) - Показывает флаг, установленный после того как ПО отправило query(запрос) и ожидает reply(ответ)
- s (Stuck-in-active status) - Застрял в активном режиме. EIGRP имеет проблемы сходимости для данной сети назначения.
Команда выводит количество преемников (что соответствует числу лучших маршрутов в сети, имеющих одинаковую стоимость) для каждой сети назначения (1 successors) и наименьшее FD (возможное расстояние). FD выводится также для каждого маршрута к сети назначения. Это значение расположено после IP-адреса соседа в формате FD/AD. Например, в примере к сети назначения 172.17.0.0/16 имеется маршрут через 192.168.1.102 с FD=40514560 и AD=28160.
show ip eigrp traffic
R1#show ip eigrp traffic IP-EIGRP Traffic Statistics for AS 100 Hellos sent/received: 4436/2166 Updates sent/received: 8/8 Queries sent/received: 1/0 Replies sent/received: 0/1 Acks sent/received: 3/2 Input queue high water mark 2, 0 drops SIA-Queries sent/received: 0/0 SIA-Replies sent/received: 0/0 Hello Process ID: 131 PDM Process ID: 130
Команда выводит количество различных переданных и принятых EIGRP-пакетов. Например, в примере R1 разослал 4436 и принял 2166 hello-пакетов. Отправил и получил по 8 обновлений. Отправил 1 и получил 0 запросов. Отправил 0 ответов и получил 1 ответ. Отправил 3 ACK, получил 2 ACK.
debug eigrp packets
Показывает передачу и прием пакетов протокола EIGRP.Например пакеты приветствия, обновления маршрутов, запросы или ответы на запрос.В пакетах используются номера последовательности и номера подтверждений используемые фирменным алгоритмом надежной доставки данных протокола EIGRP.
500px
В выводе показана нормальная передача и приём пакетов. Последовательной соединение HDLC p2p. Стандратный интервал hello 5 сек. Hello-пакеты рассылаются ненадёжным методом, т.к. Seq не увеличивается.
В данном выводе, когда R2 получает обновление от R1, появляется значение в поле seq. Seq 5/4 показывает, что R1 (192.168.1.101) отослал этот пакет с номером последовательности 5 маршрутизатору R2, а номер 4 был получен R1 от R2. R1 ожидает получить seq 5 в следующем надёжном пакете от R2.
R2 возвращает ACK пакет с Seq 0/5. ACK отправлен ненадёжным методом. Установлен neighbor unreable/reliable флаг (un/rel 1/0), что значит, что ACK был отправлен в ответ на reliable пакет.
Серийный номер (serno 9-9) отражает число изменений, которые два соседа обнаружили в их топологических таблицах. Seq увеличивается каждый раз при отправке запроса, обновления или ответа, тогда как серийный номер увеличивается при каждом изменений таблицы топологии. Одно обновление может содержать больше 100 сетей, например, если они все стали недоступными. Поэтому, если топологическая таблице имеет больше 100 изменений, серийный номер (serno) существенно возрастает, но seq увеличивается только на 1.
Результат вывода дебага на R2 при переводе интерфейса в shutdown R1 показан ниже.
500px
R1 отправляет запрос R2 чтобы определить, знает ли R2 маршрут к пропавшей сети. R2 отвечает ACK пакетом для подтверждения query-пакета - reliable-пакет должен быть подтверждём ACK-пакетом. R2 также отвечает на запрос ответом. Серийный номер 10-12 отражает колличество изменений в топологической таблице с момента начала соседских отношений между этими двумя маршрутизаторами EIGRP.
debug ip eigrp
Используется для проверки работы EIGRP. Показывает пакеты, которые получает и отправляет маршрутизатор.
Дописать 103 страница
Использование команды passive-interface
Бывают случаи, когда вы должны или хотите включить подсеть в команду network протокола маршрутизации, однако вы при этом не хотите, чтобы интерфейс, к которому подключена подсеть, участвовал в маршрутизации. passive-interface {type number}| default - препятствует рассылке обновлений маршрутизации протокола маршрутизации через определённый интерфейс и установке соседства. В команде указывается или конкретный интерфейс, или параметром default все интерфейсы маршрутизатора.
Для EIGRP команда:
- Препятствует установлению соседских отношений через passive интерфейс;
- Останавливает применение полученных обновлений и их рассылку через этот интерфейс;
- Позволяет подсети на пассивном интерфейсе быть объявленной (to be announced) в процессе EIGRP.
При использовании команды passive-interface hello-сообщения не рассылаются через определённый интерфейс. С другими маршрутизаторами, достижимыми через интерфейс, соседство не формируется (т.к. процесс двухсторонний). Соответственно, нет соседства - нет другого трафика EIGRP.
Вспомните, что команда network определяется интерфейсы, через которые EIGRP будет пытаться установить соседство и сети, которые будут анонсированны соседям. Конфигурирование интерфейса как пассивного отключает только установление соседства. Маршрутизатор будет анонсировать сеть своим соседям.
R1# router eigrp 110 passive-interface FastEthernet0/0 network 172.16.1.0 0.0.0.255 network 192.168.1.0
R2# router eigrp 110 passive-interface FastEthernet0/0 network 172.17.2.0 0.0.0.255 network 192.168.1.0
Внимание! EIGRP не установит соседство на пассивном интерфейсе даже если указать соседа на интерфейсе командой neighbor
Раньше, до IOS 12, админы конфигурили маршрутизацию для всех интерфейсов, а потом вручную отклчали их. Сейчас же можно перевести все интерфейсы в пассивное состояние (passive-interface default), а затем на нужных указать no passive-interface.
R1# router eigrp 110 passive-interface defaul passive-interface Serialt0/0/1 network 172.16.1.0 0.0.0.255 network 192.168.1.0
Для проверки работы EIGRP, при использовании пассивных интерфейсов, используются следующие команды:
- show ip eigrp neighbors - для того, чтобы узнать что отношения со всеми соседями установлены.
- show ip protocols - чтобы увидеть, какие интерфейсы пассивные. Например
R1#show ip protocols Routing protocol is "eigrp 110" <-- часть вывода отсуствует --> Passive Interface(s): FastEthernet0/0 <-- часть вывода отсуствует -->
Команда passive-interface используется для управления объявлением информации маршрутизации. Данная команда включает подавление обновлений маршрутов через некоторые интерфейсы, однако она разрешает проводить обмен обновлениями через другие интерфейсы в обычном режиме.
В протоколах большинства маршрутов команда passive-interface ограничивает только исходящие объявления. Однако при использовании протокола EIGRP (Усовершенствованный внутренний протокол маршрутизации шлюзов) результат немного отличается. В этом документе показано, как команда passive-interface на EIGRP подавляет обмен hello-пакетами между двумя маршрутизаторами, что приводит к прекращению отношений соседства между ними. Это действие не только останавливает выдачу объявлений об обновлениях маршрутов, но также подавляет входящие обновления маршрутов. В этом документе также рассматривается конфигурация, необходимая для разрешения подавления исходящих обновлений маршрутизации, а также для возможности получения входящих обновлений маршрутизации от соседей.
Если в сети работает протокол EIGRP, команда passive-interface блокирует исходящие и входящие обновления маршрутизации, поскольку результат команды приводит к остановке маршрутизатором отправки и приема hello-пакетов по интерфейсу.
При использовании команды passive-interface в EIGRP маршрутизатор не может формировать соседскую смежность в интерфейсе либо получать или отправлять обновления маршрутов. Однако если необходимо подавление только исходящих обновлений маршрутизации и продолжение приема входящих обновлений (при этом маршрутизаторы остаются соединенными с соседями), то используйте команду distribute-list следующим образом:
R1(config)# access-list 20 deny any ... R1(config)# router eigrp 1 R1(config-router)# no passive-interface serial 0 R1(config-router)# distribute-list 20 out serial 0
Распространение маршрута по умолчанию
Использование маршрутов по умолчанию сокращает таблицы маршрутизации на маршрутизаторах, получивших их. Например, маршрутизаторам в stub-сетях или на уровне доступа обычно не требуется знать все маршруты во всей сети. Вместо этого они могут использовать маршрут по умолчанию для пересылки трафика маршрутизаторам, имеющим более полные таблицы маршрутизации. Вы можете создать маршрут по умолчанию (default route) EIGRP c помощью команды
ip route 0.0.0.0 0.0.0.0 { next-hop | interface [next-hop]}
Или, любая классовая сеть, находящаяся в таблице маршрутизации, может стать EIGRP маршрутом по умолчанию:
R(config)#ip default-network <адрес сети>
<адрес сети> - классовый IP-адрес сети по умолчанию.
Эта команда объявляет <адрес сети> как шлюз последней надежды (gateway of last resort), который маршрутизатор анонсирует другим маршрутизаторам с exterior flag set. Сеть по умолчанию должна быть доступна маршрутизатору, который использует эту команду, прежде чем он анонсирует её в качестве кандидата в маршруты по умолчанию другим EIGRP-маршрутизаторам. Чтобы сеть могла быть передана соседним EIGRP-маршрутизаторам, она должны быть объявлена в конструкции router eigrp <AS> (т.е. быть известной маршрутизаторам, быть в их таблицах) или в статическом маршруте, который будет распределен через EIGRP.
Внимание! В EIGRP маршруты по умолчанию не могут быть прямо указаны (directly injected) (как они могут в OSPF с командой default-information originate
Внимание! Любой маршрут, находящийся в таблице маршрутизации, включая НЕ-EIGRP маршруты, может быть помечен как кандидат по умолчанию.
Можно объявить более одной default network. Соседние маршрутизаторы используют метрику EIGRP для определения лучшего маршрута по умолчанию. Когда лучший маршрут по умолчанию выбран, маршрутизатор ставит GW of last resort... (When the best defaul route is selected, the router sets the gateway of last resort to the next-hop address of the selected candidate, unless the best candidate route is one of the router's directly connected routers). Другие маршрутизаторы используют свой next-hop адрес для анонсирования сети как их стандартного маршрута (Other routers use their next-hop address to the advertised network as their default route).
На рисунке изображен маршрутизатор A, подключенный непосредственно к внешней сети 172.31.0.0. A объявляет 172.31.0.0 кандидатом в сети по умолчанию следующими командами:
A(config)#router eigrp 1 A(config-router)#network 10.0.0.0 A(config-router)#network 172.31.0.0 // обратить внимание, сеть перечислена в network A(config-router)#exit A(config)#ip default-network 172.31.0.0 //объявлена
Информация о сети по умолчанию передается маршрутизатору B, т.к. данная сеть объявлена в блоке router eigrp 1.
A#sh ip route ... Gateway of last resort is not set C* 172.31.0.0/16 is directly connected, Serail0/0/0 C 10.5.1.0/24 is directly connected, FastEthernet0/0
Заметим, что A не выбирает 172.31.0.0 шлюзом последней надежды. Команда ip default-network не имеет такого действия на локальный маршрутизатор.
B#sh ip route ... Gateway of last resort is 192.168.1.1 to network 172.16.0.0 D* 172.16.0.0/16 [90/307200] via 192.168.1.1, 00:01:44, FastEthernet0/0 C 192.168.1.0/24 is directly connected, FastEthernet0/0
Маршрутизатор B помечает изученную сеть 172.16.0.0 в качестве кандидата в сеть по умолчанию (символ * в записи маршрута). B также устанавливает шлюзом последней надежды 10.5.1.1 (адрес маршрутизатора A) для достижения сети по молчанию 172.131.0.0.
Заметим, что EIGRP ведет себя отлично от RIP в отношении статических маршрутов по умолчанию, созданных командой route 0.0.0.0 0.0.0.0. Например, по умолчанию EIGRP не передает информацию о таких маршрутах соседям. Следующие команды показывают, как добиться того, чтобы маршруты 0.0.0.0 объявлялись соседям.
A(config)#ip route 0.0.0.0 0.0.0.0 172.16.0.2 A(config)#router eigrp 100 A(config-router)#network 0.0.0.0
Внимание! При конфигурировании командой ip default-network создаётся статический маршрут. Однако IOS никак это событие не отображает. Если вы хотите удалить default network, нужно использовать команду no ip route, а не команду no ip default-network.
Суммирование маршрутов в EIGRP
Некоторые функции протокола EIGRP, такие как автосуммирование маршрутов на границе классовой сети, имеют характеристики дистанционно векторных и классовых протоколов. Традиционно, дистанционно векторные протоколы, относящиеся к классовым протоколам маршрутизации, должны суммировать на границах сети. Они не могут знать маску для сетей, которые напрямую не подключены, так как маски не содержатся в обновлениях маршрутизации.
Суммирование маршрутов на границе классовых сетей позволяет сокращать таблицы маршрутизации. Меньшие таблицы - меньший размер обновлений, меньшее использование ресурсов маршрутизатора. Дистанционно-векторные протоколы Cisco используют автосуммирование по умолчанию. В EIGRP автосуммирование может быть включено или отключено.
Неспособность создавать суммированные маршруты на произвольных границах классовой сети было недостатком дистанционно-векторных протоколов с момента их появления. В EIGRP добавили функциональность, позволяющую администраторам создавать один или несколько суммированных маршрутов в пределах сети на любой битовой границе (on any bit boundary), до тех пор пока более специфический маршрут существует в таблице маршрутизации. Когда после специфический маршрут из суммированного пропадает, суммированный маршрут удаляется из таблицы маршрутизации.
Важно знать, что для метрики суммированного маршрута используется минимальная метрика специфических маршрутов.
Когда суммирование настроено на интерфейсе маршрутизатора, суммированный маршрут добавляется в таблицу маршрутизации с выходным интерфейсов null0 - напрямую подключённым программным интерфейсом. Использование интерфейса null0 при автосуммировании препятствует пересылке маршрутизатором трафика (он уничтожает пакеты, предназначенные для сетей, реальных маршрутов к которым у него нет) другим маршрутизаторам и предотвращает образование маршрутных петель.
Применение автосуммирования маршрутов сводится к тому, что некоторое количество специфичных маршрутов заменяется одним маршрутом, который охватывает все ip-адреса, относящиеся к подсетям в первоначальных маршрутах. Поэтому, к планированию выбора адресации нужно подойти серьёзно.
Число подсетей, которые могут быть представлены в суммированном маршруте, рассчитывается по формуле 2^n, где n - разница в числе битов между суммированной маской и маской подсети. Например, если суммированная маска содержит на 3 бита меньше, чем маска подсети 2^3 = 8 подсетей может быть агрегировано в одном маршруте.
Например, если сеть 10.0.0.0 разделена на подсети с префиксом /24 и некоторые из этих подсетей суммированны в блок 10.1.8.0/21. Разница между 24-21 = 3 бита. Таким образом 2^3 = 8 подсетей агрегируется. Суммируются подсети от 10.1.8.0/24 до 10.1.15.0/24.
При создании суммированных маршрутов администратору нужно определить IP адрес маршрута и его маску. Cisco IOS управляет деталями, такими как метрики, предотвращение петель и удаление суммированного маршрута из таблицы маршрутизации если нет ни одного более специфического маршрута, относящегося к суммированному.
Конфигурирование суммирования в ручную
В некоторых случаях вам может потребоваться отключить автоматическое суммирование в EIGRP, например, если у вас в сети есть разделённые подсети (discontigous subnets)
Внимание! EIGRP маршрутизатор не выполняет автосуммирования сетей в которых он не участвует.
Для отключения автосуммирования использовать команду no auto-summary. Для создание суммированного маршрута вручную на произвольной битовой границе, если существует более специфичный маршрут в таблице маршрутизации, использовать команду на интерфейсе ip summary-address eigrp as-number mask | admin-distance, где
- <as-number> - номер автономной системы EIGRP
- address - ip адрес, который будет анонсироваться как адрес суммированного маршрута. Адрес не должен совпадать с границами классовых сети А, В или С.
- mask - маска подсети, используемая для создания суммированного адреса.
- admin-distance - (Опционально) Административная дистанция. 0 - 255.
Вместо более специфичных маршрутов рассылается суммарный маршрут.
Преимущества суммирования:
- Таблицы маршрутизации меньше размером, при том, что сохраняется доступность всех destination.
- Сокращается диапазон рассылки Query (query scope): EIGRP Query останавливаются на маршрутизаторе, который имеет суммарный маршрут, включающий в себя подсеть, указанную в query, а не специфический маршрут.
- EIGRP поддерживает суммирование в любой точке сети.
- Суммарный маршрут имеет туже метрику, что и наилучший специфический маршрут, входящий в суммарный маршрут.
Минусы:
- Может служить причиной неоптимальной маршрутизации
- Пакеты будут дропаться при попадании в Null0
Для примера, на рисунке показана разделённая сеть 172.16.0.0. По умолчанию и А, и В суммируют маршрут на границе сети, использующей адреса классов. В результате С имеет два маршрута до 172.16.0.0 и будет выполнять балансировку трафика, что приведёт к некорректному поведению.
Поэтому необходимо отключить автосуммирование на А и В. EIGRP маршрутизатор суммирует маршруты только для сетей, к которым он подключён (attached). Если сеть не суммирована автоматический на границе, как в примере с рисунком для А и В, т.к. автосуммирование отключено, то маршруты ко всем подсетям переносятся на маршрутизатор С. С не суммирует 172.16.1.0 и 172.16.2.0 подсети, потому что сеть 172.16.0.0 не его. Таким образом С отправляет инфу об этих сетях через WAN.
Тем не менее можно суммировать вручную маршрут для 172.16.0.0 на С
int s0/0/0 ip address 192.168.4.2 255.255.255.0 ip summary-address eigrp 1 172.16.0.0 255.255.0.0
Внимание! Вы можете использовать ip summary-address eigrp as-number 0.0.0.0 0.0.0.0 команду для ввода маршрута по умолчанию соседу, как альтернативным способом методам, описанным ранее в Распространение маршрута по умолчанию. При этом никаких других специфичных маршрутов анонсированно не будет. Однако, автоматическое создание маршрута к null0 может стать проблемой в некоторых топологиях.
Если необходимо чтобы маршрут в null0 не помещался в таблицу маршрутизации, то необходимо указать AD = 255.
Проверка суммирования в ручную
Для проверки смотрите в таблицу маршрутизации. Пример таблицы маршрутизации маршрутизатора С, имеющего маршруты к 172.16.1.0 и 172.16.2.0, разделённые подсети и суммированный маршрут к null0. Через s0/0/0 анонсируется только суммированный маршрут.
RouterC#show ip route
<часть вывода опущена>
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
D 172.16.0.0/16 is summary, 00:00:04, Null0
D 172.16.1.0/24 [90/156160] via 10.1.1.2, 00:00:04, Fastethernet0/0
D 172.16.2.0/24 [90/20640000] via 10.1.1.2, 00:00:04, Serial0/0/1
C 192.168.4.0/24 is derectly connected, Serial0/0/0
10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C 10.2.2.0/24 is derectly connected, Serial0/0/1
C 10.1.1.0/24 is derectly connected, FastEthernet0/0
D 10.0.0.0/8 is a summary, 00:00:05, Null0
Для ручного суммирования, суммированный маршрут анонсируется только если компонент суммированного маршрута (более специфическая запись, представленная в суммированном) присутствует в таблице маршрутизации.
Суммирование и Leak-Map
Если вы выполняете суммирование в ручную, но при этом вам необходимо анонсировать и специфические маршруты соседям, то можно сделать это, используя leak-map.
Если настроен Leak Map и:
- Он ссылается на несуществующий route-map - анонсируется суммарный маршрут, а более специфичные нет (they are suppressed);
- Если route-map существует, но он ссылается на несуществующий ACL, то и суммарный маршрут, и специфичные маршруты анонсируются;
- Если ACL существует, то он определяет маршруты, которые будут анонсироваться в дополнение (вместе с) суммарному маршруту.
To configure the Leak Map just attach a route-map to the "eigrp summary" command:
R2(config-if)#ip summary-address eigrp 100 2.2.4.0 255.255.252.0 leak-map ROUTE_MAP
Пример: Пусть есть следующая топология
R1----------------R2-------------------R3
R1, R2, R3: AS 100 R1 has 5 loopbacks:
- 1.1.1.1/32
- 1.1.1.2/32
- 1.1.1.3/32
- 1.1.1.4/32
- 1.1.1.5/32
R1#show run | begin router eigrp 100
router eigrp 100 network 1.1.1.1 0.0.0.0 network 1.1.1.2 0.0.0.0 network 1.1.1.3 0.0.0.0 network 1.1.1.4 0.0.0.0 network 1.1.1.5 0.0.0.0 network 100.1.12.1 0.0.0.0 no auto-summary eigrp router-id 1.1.1.1
R2#show run | begin router eigrp 100 router eigrp 100 network 100.1.12.2 0.0.0.0 network 100.1.23.2 0.0.0.0 no auto-summary eigrp router-id 2.2.2.2
R3#show run | begin router eigrp 100
router eigrp 100 network 100.1.23.3 0.0.0.0 no auto-summary eigrp router-id 3.3.3.3
R1#show ip route eigrp
100.0.0.0/24 is subnetted, 2 subnets D 100.1.23.0 [90/2681856] via 100.1.12.2, 00:03:18, Serial1/0
R2#show ip route eigrp
1.0.0.0/32 is subnetted, 5 subnets
D 1.1.1.1 [90/2297856] via 100.1.12.1, 00:02:30, Serial1/0
D 1.1.1.3 [90/2297856] via 100.1.12.1, 00:02:30, Serial1/0
D 1.1.1.2 [90/2297856] via 100.1.12.1, 00:02:30, Serial1/0
D 1.1.1.5 [90/2297856] via 100.1.12.1, 00:02:30, Serial1/0
D 1.1.1.4 [90/2297856] via 100.1.12.1, 00:02:30, Serial1/0
R3#show ip route eigrp
1.0.0.0/32 is subnetted, 5 subnets
D 1.1.1.1 [90/2809856] via 100.1.23.2, 00:02:42, Serial1/1
D 1.1.1.3 [90/2809856] via 100.1.23.2, 00:02:42, Serial1/1
D 1.1.1.2 [90/2809856] via 100.1.23.2, 00:02:42, Serial1/1
D 1.1.1.5 [90/2809856] via 100.1.23.2, 00:02:42, Serial1/1
D 1.1.1.4 [90/2809856] via 100.1.23.2, 00:02:42, Serial1/1
100.0.0.0/24 is subnetted, 2 subnets
D 100.1.12.0 [90/2681856] via 100.1.23.2, 00:03:50, Serial1/1
Замечания:
- Автосуммирование отключено
- Суммирование в ручную ещё не настроено.
Настраиваем суммирование на R2 по направлению к R3:
R2(config-router)#int ser1/1 R2(config-if)#ip summary-address eigrp 100 1.1.1.0 255.255.255.248 R2(config-if)# *Jul 5 14:37:27.143: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 100.1.23.3 (Serial1/1) is resync: summary configured R2(config-if)#
R2#show ip route eigrp
1.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
D 1.1.1.1/32 [90/2297856] via 100.1.12.1, 00:05:41, Serial1/0
D 1.1.1.0/29 is a summary, 00:01:07, Null0
D 1.1.1.3/32 [90/2297856] via 100.1.12.1, 00:05:41, Serial1/0
D 1.1.1.2/32 [90/2297856] via 100.1.12.1, 00:05:41, Serial1/0
D 1.1.1.5/32 [90/2297856] via 100.1.12.1, 00:05:41, Serial1/0
D 1.1.1.4/32 [90/2297856] via 100.1.12.1, 00:05:41, Serial1/0
R3#
*Jul 5 14:37:25.703: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 100.1.23.2 (Serial1/1) is resync: peer graceful-restart
R3#
R3#show ip route eigrp
1.0.0.0/29 is subnetted, 1 subnets
D 1.1.1.0 [90/2809856] via 100.1.23.2, 00:00:11, Serial1/1
100.0.0.0/24 is subnetted, 2 subnets
D 100.1.12.0 [90/2681856] via 100.1.23.2, 00:05:53, Serial1/1
R3#
Замечания:
- Суммирование настроено на R2
- R3 получает суммированный маршрут
- Теперь R3 хочет получать 1.1.1.1/32 вместе с суммарный маршрутом
- Настроим leak-map на R2, чтобы маршрут 1.1.1.3/32 попал на R3
R2(config)#ip prefix-list LEAK permit 1.1.1.1/32 R2(config)# R2(config)#route-map LEAK-MAP R2(config-route-map)#match ip address prefix-list LEAK R2(config-route-map)#int ser1/1 R2(config-if)#ip summary-address eigrp 100 1.1.1.0 255.255.255.248 leak-map LEAK-MAP R2(config-if)# *Jul 5 14:54:08.327: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 100.1.23.3 (Serial1/1) is resync: summary configured R2(config-if)#
R3#
*Jul 5 14:54:06.895: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 100.1.23.2 (Serial1/1) is resync: peer graceful-restart
R3#
R3#show ip route eigrp
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D 1.1.1.1/32 [90/2809856] via 100.1.23.2, 00:03:08, Serial1/1
D 1.1.1.0/29 [90/2809856] via 100.1.23.2, 00:19:49, Serial1/1
100.0.0.0/24 is subnetted, 2 subnets
D 100.1.12.0 [90/2681856] via 100.1.23.2, 00:25:31, Serial1/1
R3#
Теперь у R3 есть 1.1.1.1/32.