EIGRP Stub Routing

EIGRP Stub Routing — причины введения тупиковой области в EIGRP, механизм запросов EIGRP, SIA, суммаризация, варианты настройки Stub Routing EIGRP.

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

Немного теории

Сначала нужно освежить в голове сопутствующие понятия EIGRP. В таблицу маршрутизации добавляется только лучший маршрут в подсеть (маршрут с наименьшей метрикой). Для EIGRP, роутер, через который идёт такой маршрут, называется приемник (Successor, S).

Остальные маршруты в эту подсеть присутствуют в таблице топологии. Возможная замена для S в случае его недоступности по каким-то причинам это возможный приемник (Feasible Successor, FS). Не все роутеры, имеющие маршрут в данную подсеть становятся FS. Должно выполняться условие осуществимости (Feasibility Condition или Feasible Condition, FC): метрика для FS в эту подсеть должна быть меньше метрики исходного роутера через S в эту же подсеть. По сути FC это механизм, защищающий EIGRP от петель.

Посмотреть FS можно командой:

R1# show ip eigrp topology

Посмотреть все маршруты в данную подсеть, включая маршруты, которые не удовлетворяют FC:

R1# show ip eigrp topology all-links

Для EIGRP есть второй механизм защиты от петель: правило разделения горизонта (Split Horizon, SH). Суть этого правила заключается в следующем (своими словами): если роутер что-то выучил или получил через какой-то свой линк, то он оправляет эту информацию своим EIGRP соседям, за исключением линка, через который информация была получена.

Рассказал своими словами, подробнее про данные понятия тут.

Механизм распространения запросов

Для того, чтобы понять назначение Stub Routing'а, сначала нужно рассмотреть поведение роутера, когда EIGRP маршрут в его таблице маршрутизации становится недоступным.

Поведение DUAL при отвале маршрута
  • Сразу отсылается пакет с обновлением (Update) для отвалившегося маршрута EIGRP соседям, кроме S для этого маршрута (SH);
  • Сначала роутер пытается решить проблему самостоятельно, если есть FS в таблице топологии, то он становится S, а его маршрут сразу помещается в таблицу маршрутизации. Это и обеспечивает невероятно быструю сходимость сети для EIGRP в случае недоступности маршрута;
  • Если есть несколько FS, то S становится FS с наименьшей метрикой;
  • Заодно роутер проверяет наличие альтернативного маршрута по умолчанию;
  • Если FS нет, то маршрут из нормального состояния Passive (P) переводится в Active (A);
  • Далее роутер отравляет запросы (Queries) своим EIGRP соседям о наличии у них нового FS;
  • Запросы посылаются всем EIGRP соседям, за исключением S отвалившегося маршрута (SH);
  • Если новый FS найден соседом, то распространие запроса им прекращается и отсылается ответ (Reply);
  • Исходный роутер не обрабатывает информацию о новом FS, пока не получит ответы от всех соседей, которым был отослан запрос.
  • Если FS не найден, запрос рассылается далее (соседям соседей). Образуется расходящееся дерево запросов по всему домену EIGRP. Запрос не отсылается соседу, от которого этот запрос поступил (SH);
  • Каждый роутер, который не нашел FS, перед началом рассылки запросов также переводит данный маршрут в активное состояние;
  • Запрос доходит до границы EIGRP домена, граничный в домене роутер ищет FS и далее в обратную сторону идут уже ответы;
  • Каждый запрос требует ответа. Когда какой-то роутер в цепочке получает все ответы на запросы, которые он разослал, то он также отсылает ответ;
  • Маршрут остаётся активным на исходном роутере, пока не придут все ответы по числу отправленных запросов (есть специальный счётчик) или пока не истечёт таймер активного состояния (другой специальный счётчик);
  • Если истёк таймер активного состояния, то соседство с не ответившим на запрос роутером сбрасывается;
  • Если в результате новый FS не найден, то исходный маршрут отбрасывается.
Проблема механизма запросов

Таким образом, запросы сильно утилизируют сеть. Сам механизм запросов не особенно эффективный, слабое место в EIGRP. Один отвалившийся маршрут порождает огромное число запросов через EIGRP домен. Чтобы снизить нагрузку на сеть применяются 2 метода:

  • Суммаризация маршрутов;
  • Тупиковый роутинг (Stub Routing - SR).
Вторая проблема механизма запросов

Когда роутер распространяет запрос для маршрута, он переводит маршрут в активное состояние и включает таймер активного состояния. Таймер активного состояния равен 180 секундам. Если какой-то сосед не отвечает на запрос в это время, как уже говорилось, соседские отношения EGRP с этим соседом сбрасываются. Маршрут переводится в состояние Stuck In Active (SIA).

При сбросе отношений и SIA, все маршруты, известные через сброшенного соседа, переводятся в активное состояние. Затем роутер отправляет этому соседу Full Update сообщение для восстановления соседских отношений.

Допустим, роутер A посылает запрос роутеру B, роутер B роутеру C. Роутер C не ответил в 3 минуты, роутер B переводит маршрут в SIA и разрывает отношения с C. Но роутер B также не может отправить ответ A, пока B ждёт ответ от C. Таймер активного состояния на роутере A истекает, так как он был запущен раньше таймера активного состояния на B. Роутер A разрывает отношения с роутером B. В результате может возникнуть цепочка сбросов соседских отношений. Домен EIGRP ведёт себя нестабильно. И это всё из-за 1 не ответившего во время соседа.

Для преодоления проблемы SIA был придуман механизм улучшения активного состояния маршрута (Active Process Enhancement, APE). Если таймер активного состояния достиг 90 секунд, то не ответившему соседу отправляется запрос SIA-Query, сосед отвечает с помощью SIA-Reply. Если SIA-Reply получен, то соседские отношения не сбрасываются. Все соседские отношения при этом сохраняются, за исключения 1 роутера, связь с которым действительно была потеряна (роутер C в примере выше).

Влияние суммаризации на механизм запросов

Если на роутер пришел запрос и подсеть в запросе подпадает под имеющийся суммарный маршрут, то запрос далее не распространяется и сразу отправляется ответ о недоступности нового FS для этой подсети.

В отличии от OSPF, для EIGRP суммарный маршрут может быть настроен в любой точке EIGRP домена. Настройка суммаризации зависит от точки, в которой она настраивается.

  • Если у роутера несколько подсетей с прямым подключением (connected), которые подпадают под одну классовую сеть A, B или C и эти подсети задействованы в EIGRP с помощью команды network, то достаточно включить авто-суммаризацию для EIGRP:
R3(config)# router eigrp 1
network 0.0.0.0 - задействует все подсети с прямым подключением на роутере
... 
auto-summary

Дальше роутер сделает всё сам. Авто-суммаризация для EIGRP выключена по умолчанию для IOS 15, для IOS 12 включена.

  • Если есть несколько роутеров имеют подсети с прямым подключением из одной классовой сети, то авто-суммаризацию включать нельзя, применяется ручное суммирование на интерфейсе. Сети, получившиеся на разных роутерах в результате суммирования, не должны пересекаться.
  • Если роутер получает несколько маршрутов EIGRP, которые можно суммировать, то суммаризация производится на интерфейсе вручную.
Пример

Суммаризация  настраивается на интерфейсе Gi0/0 роутера R2:

EIGRP Stub Routing

R2(config)# interface gi0/0 
R2(config-if)# ip summary-address eigrp 1 192.168.0.0/16

При настройке суммаризации соседские отношения не разрываются, происходит синхронизация:

*Nov 23 18:09:42.732: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1 (GigabitEthernet0/0) is resync: summary configured
*Nov 23 18:09:42.736: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1 (GigabitEthernet0/0) is resync: summary up, remove components

Для роутера R2 с суммаризацией 192.168.0.0/16 (в данном случае ручная суммаризация на интерфейсе, но для авто тоже справедливо), появится запись в таблице маршрутизации:

192.168.0.0/16 is variably subnetted ...
D 192.168.0.0/16 is a summary, 00:31:38, Null0

Такой маршрут защищает роутер от петель. Пакеты подпадающие под данный маршрут отбрасываются. Зачем так сделано? Потому что роутер R2 не имеет в своей таблице маршрутизации маршрутов для всего диапазона суммаризации. А только маршруты в конкретные сети 192.168.1.0/24 и 192.168.2.0/24. Роутер R1, получив от R2 суммарный маршрут, может присылать на него любые пакеты из диапазона суммаризации. Например для сети 192.168.3.0/24. Если бы на роутере R2 был бы дополнительно настроен маршрут по умолчанию в сторону R1, то это петля. Пока не закончится TTL пакет бы гулял между роутерами. Поскольку есть маршрут Null0, то это более длинное совпадение, чем маршрут по умолчанию. Пакет уйдёт в Null0 виртуальный интерфейс, то есть будет отброшен.

Может ещё возникнуть вопрос: почему так неаккуратно суммировано по 16 маске? Да, действительно, по 22 будет правильнее, но в данном конкретном примере, который только для наглядности, не имеет значения.


Stub Routing

Теперь непосредственно о SR. Преимущества EIGRP SR:

  • Улучшает стабильность сети;
  • Снижает накладные расходы (CPU, утилизация сети);
  • Упрощает настройку.

Если роутер настроен как тупиковый (Stub), то к нему запросы не отравляются. Сам он тоже отправляет соседям не все маршруты EIGRP. Настройка простая:

R3(config)# router eigrp 1
 ...
eigrp stub

Для команды eigrp stub имеются параметры:

connected - отправляет соседям только маршруты сетей с прямым подключением (connected), для тех интерфейсов, которые соответствуют командам network
summary - отправляет только суммарные маршруты как настроенные вручную, так и полученные автоматически в результате работы команды auto-summary
static - отправляет только статические маршруты перераспределённые (redistributed) в EIGRP с помощью команды redistribute static
redisribute - отправляет все перераспределённые маршруты, предполагается уже выполненной дополнительная настройка EIGRP с помощью команды redistribute
receive-only - не отправляет никакие маршруты
leak-map route-map-name - отправляет маршруты, которые соответствуют роут мапе с именем route-map-name

Опция recieve-only используется крайне редко. Пример использования: граничный для домена EIGRP роутер с 1 EIGRP интерфейсом, на котором настроен PAT и несколькими интерфейсами в локальную сеть. Все хосты маскарадятся 1 внешним IP адресом. Нет смысла передавать какую-либо информацию о сетях через EIGRP. Также предлагаю посмотреть короткое видео по настройке leak-map.

Если ввести команду eigrp stub без параметров, то в конфигурации пропишутся следующие параметры по умолчанию:

...
eigrp stub connected summary
...

Параметры можно  комбинировать (кроме параметра receive-only), таким образом команда:

R3(config)# router eigrp 1 
...
eigrp stub connected static

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

После ввода команды eigrp stub соседские отношения переустанавливаются:

*Nov 23 19:34:12.671: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.3.1 (Ethernet0/0) is down: peer info changed
*Nov 23 19:34:15.962: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.3.1 (Ethernet0/0) is up: new adjacency

Тупиковый роутер анонсирует свой новый статус в EIGRP hello сообщениях. Теперь если посмотреть статус тупикового соседа:

R2# show ip eigrp neighbors detail
...
Stub Peer Advertising (CONNECTED STATIC ) Routes
Suppressing queries

Применение Stub Routing

Тут всё очевидно, SR применяется на роутерах, которые являются граничными, тупиковыми для EIGRP домена.

eigrp stub

Рассмотрим ещё раз работу EIGRP домена на картинке. Роутеры R3 и R4 настроены тупиковыми. Для R2 настроен суммарный маршрут 192.168.0.0/16 на интерфейсе Gi0/0. Роутер R2 отправляет информацию о суммарном маршруте роутеру R1. Допустим связь между R2 и R3 потеряна. У роутера R2 отвалился маршрут в сеть 192.168.1.0/24. Роутер R2 незамедлительно отправляет пакет обновления соседям (кроме R3). Маршрут 192.168.1.0/24 на R2 переводится в активное состояние. Далее, R2 отправляет запросы о новом FS в сеть 192.168.1.0/24 соседям. Запрос к R3 не будет оправлен, так как он S. Запрос к R4 не будет отправлен, так как R4 тупиковый. Роутер R2 отправляет запрос только к R1. Роутер R1 смотрит свою таблицу маршрутизации и находит суммарный маршрут 192.168.0.0/16, затем сразу отправляет ответ для R2 о недоступности нового FS. Скорость схождения сети мгновенная. Соседские отношения EIGRP между R1 и R2 не пострадают при этом.

Выжимка полезностей про EIGRP тут.



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *