Практическая часть

1. Схема сети

Схема сети

IS

LoopBack IP/NET

MX1-L1

25.0.0.254/49.0001.0250.0000.0254.00

MX2-L1

25.0.0.253/49.0001.0250.0000.0253.00

MX3-L1-L2

25.0.0.252/49.0001.0250.0000.0252.00

MX4-L2

2.2.2.2/49.0002.0020.0200.2002.00

MX5-L2

3.3.3.3/49.0003.0030.0300.3003.00

MX6-L2

3.3.3.4/49.0003.0030.0300.3004.00

MX7-L1-L2

50.0.0.254/49.0004.0500.0000.0254.00

MX8-L1

50.0.0.253/49.0004.0500.0000.0253.00

MX9-L1-L2

75.0.0.254/49.0005.0750.0000.0254.00

MX10-L1

75.0.0.253/49.0005.0750.0000.0253.00

MX11-L1-L2

100.0.0.254/49.0006.1000.0000.0254.00

MX12-L1

100.0.0.253/49.0006.1000.0000.0253.00

На схеме сети изображены промежуточные системы. Из названия промежуточных систем видно какие LSDB они будут содержать. Например, MX11-L1-L2 будет содержать как Level 1 LSDB, так и Level 2 LSDB.

2. Конфигурирование NET-адресов

Тут всё довольно стандартно. Единственное правило - NET-адреса нужно прописывать только на lo0.0 адресах. Family следует указывать - iso. Ну и заодно стоит указать LoopBack IP-адреса.

3. Формирование Level 1 смежности

Для формирования смежности необходимо:

  1. Иметь iso-адрес на lo0.0 интерфейсе (Сделано в предыдущем пункте)

  2. Указать family iso на интерфейсах, на которых будет формироваться смежность. Это необходимо, чтобы мы могли принимать PDU от IS-IS

  3. Добавить соостветствующие интерфейсы в протокол

Выглядит это так:

Дополнительно стоит отметить, что мы отключаем формирование Level 2 смежностей, так как в этом нет необходимости.

Далее проводим аналогичную настройку на MX2-L1 и посмотрим как формируется смежность на p2p-интерфейсах. А формируется она без IP-адресов на интерфейсках:

Тут видно и имя соседнего хоста, которое передаётся в TLV.

3.1. Выбор DIS

Донастроим IP-адреса и включим оставшиеся интерфейсы в IS-IS для установления Level 1 смежности и посмотрим как происходит выбор DIS в широковещательном домене:

Тут сразу видно, что DIS - это MX3-L1-L2 (и это не мы). Приоритет по умолчанию равен 64, а метрика для интерфейса 10. Сделаем MX1-L1 - DIS:

После принятия изменений:

Т.е. тут без перезагрузки произошёл мгновенный перевыбор DIS. А теперь погасим какой-нибудь линк и посмотрим появившийся IS-IS-маршрут:

Тут видно, что IS-IS имеет Preference (Административную дистанцию в Cisco) по умолчанию 15, что ниже, чем у OSPF.

Ещё одно замечание: можно не включать lo0.0 интерфейсы как passive, так как эта настройка для LoopBack-интерфейсов включена по умолчанию:

Вернём всё как было, перезагрузим устройства и запишем на широковещательном линке дамп, чтобы увидеть PDU IS-IS.

3.2. Запись дампа

Сначала посылается IIH по протоколу ES-IS:

Далее происходит рассылка IIH PDU с некоторой полезной нам информацией:

Тут видно, что изначально DIS себя считает совершенно другой роутер. Также видны поля TLV.

Далее начинают поступать IIH немного другого формата:

Чтобы проверить MTU, IIH нагружается всяким мусором. Также тут видно, что идёт процесс установления соседства.

Далее видно, что мы сначала обмениваемся LSP и адресацией на текущем линке

А потом обмениваемся LSP с PseudoNode (судя по метрике = 0):

Тут, в HII виден приоритет роутера MX1-L1:

Далее происходит обмен CSNP:

По чексуммам роутеры понимают есть ли у них эти LSP в базе данных или нет. По Sequence Number определяется актуальность LSP. Если Sequence Number в полученном CSNP для LSP больше, чем у нас или LSP отсутствует, то посылается PSNP (чтобы его увидеть, нужно либо иметь в цепочке более 3 роутеров и снимать дамп с крайнего (иначе все обновления о сетях придут от роутера в середине), либо иметь p2p линк):

В p2p линках PSNP посылается ещё и как подтверждение о получении LSP:

По чексумме можно определить на какой LSP мы ответили:

Т.е. MX-L1 подтвердил получение LSP от L2. PSNP на запрос информации поймать довольно сложно, так как LSP рассылаются лавинно в самом начале и при обновлениях топологии.

3. Формирование Level 2 смежности

Тут всё аналогично формированию L1-смежности:

Можно отключить формирование смежности на уровне L1 и глобально для всего протокола, если хочется, как это сделано в предыдущем пункте.

4. Формирование L1/L2 смежности

Тут всё аналогично. На интерфейсах, где планируется принимать только L1 отключаем L2, а где планируется принимать только L2 отключаем L1

5. Проверка работы протокола

Посмотрим как выглядит таблица маршрутизации на L1-роутере:

Тут мы получам по IS-IS маршруты о LoopBack-адресах и маршрут по умолчанию в ядро сети (в Level 2 сеть). Это говорит нам о том, что маршрутизация для L1-роутеров похожа на маршрутизацию внутри Stub-Area OSPF. L1/L2 роутеры имеют полную топологию своей Area и маршруты, пришедшие от Level 2 роутеров. При этом Preference у маршрутов, полученных по L2 равен 18 против 15 у маршрутов полученных от L1 роутеров:

А вот как выглядят маршруты в Area 1 на Level 2 роутерах:

Т.е. L1/L2 роутер просто передаёт внутренние сети в L2. Вот так выглядит база данных на L1/L2 роутере:

При этом сама еденица LSDB несёт в себе гораздо больше информации, чем она же в OSPF за счёт гибкого поля TLV, которое позволяет передавать любую информацию.

6. Суммаризация маршрутов и Route Leaking

Route Leaking - это передача маршрутов из L1 LSDB в L2. По умолчанию Route Leaking включен для передачи маршрутов из L1 в L2 LSDB на L1/L2 IS. Чтобы сделать суммаризацию, мы должны сагрегировать пул адресов нашей зоны и запретить Route Leaking, утсановленный по умолчанию. Делается это при помощи аггрегированных маршрутов и policy-option:

В данном случае мы убрали Route Leaking из L1 в L2 LSDB и добавили редистрибуцию Aggregte маршрута в Level 2 IS-IS. Резултьтат:

Проверка связности:

7. Overload Bit

Позволяет отказать в перенаправлении транзитного трафика во время пересчётся SPF. Если трафик идёт к напрямую подключенным сетям, то мы его принимаем. Зачем это нужно? Если роутер пересчитывает SPF, то могут возникнуть проблемы с переправкой трафика, который отправлен не к напрямую подключенным сетям (Directly Connected Links и Passive Interfaces).

Для этого можно включить возможность установки Overload Bit'а. Как видно из пршлой трассировки, трафик идёт через MX4-L2 (1.1.1.6). На MX4-L2 можно будет как раз поставить возможность установки Overload Bit'а:

Обязательно стоит указывать Timeout, иначе после перерасчёта SFP, Overload Bit придётся снимать вручную.

Теперь запустим перерасчёт алгоритма SFP. У меня во время коммита произошло падение виртуальной машины с MX4-L2 и в это время удачно был запущен Wireshark, поэтому удалось поймать LSP:

Ещё раз перезагрузим MX4-L2, дождёмся перезагрузки роутера и установления смежности по IS-IS, после чего запустим трассировку и зафиксируем результат:

Не смотря на то, что у нас давно установилась смежность, транзитный трафик ходит в обход ещё несколько минут. Также может быть полезно, если какой-то интерфейс флапает и из-за постоянных пересчётов, трафик будет ходит в обход, что снизит влияние флапов на стабильность сети.

Если есть желание или необходимость, то можно вручную очистить Overload Bit:

Last updated

Was this helpful?