Практическая часть
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 смежности
Для формирования смежности необходимо:
Иметь iso-адрес на lo0.0 интерфейсе (Сделано в предыдущем пункте)
Указать family iso на интерфейсах, на которых будет формироваться смежность. Это необходимо, чтобы мы могли принимать PDU от IS-IS
Добавить соостветствующие интерфейсы в протокол
Выглядит это так:
Дополнительно стоит отметить, что мы отключаем формирование 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?