Часть 3. Underlay. ISIS

Цель

  • Настроить IS-IS для Underlay сети

В сетях, где данные струятся,

IS-IS проводит путь незримый.

Пакеты быстро мчатся, чтобы сняться

С узлов на узел нитью неделимой.

А. С. ChatGPT (c.)

Ожидаемый результат

  1. Настроен IS-IS в Underlay сети для IP-связанности между всеми сетевыми устройствами.

  2. В документации зафиксирован план работ, адресное пространство, схема сети, конфигурация устройств.

  3. IP-связанность между устройствами проверена и подтверждена:

    • Со всех устройств должны быть доступны Loopback интерфейсы всех устройств

    • Leaf коммутаторы должны иметь 2 (два) маршрута до других Leaf'ов

Схема сети

Продолжаем работать со схемой из прошлого задания: 2 спайна, 3 лифа в Норвегии, Осло, DC1 "Мидгард" ヅ

Из настроек заботливо удалено всякое напоминание про OSPF.

Соединение

Подсеть

Устройство A

Интерфейс

IP A

Устройство B

Интерфейс

IP B

no-osl-dc1-f1-r01k01-spn01 <-> no-osl-dc1-f1-r03k01-lf01

10.16.2.0/31

no-osl-dc1-f1-r01k01-spn01

Ethernet 1

10.16.2.0

no-osl-dc1-f1-r03k01-lf01

Ethernet 1

10.16.2.1

no-osl-dc1-f1-r01k01-spn01 <-> no-osl-dc1-f1-r03k02-lf01

10.16.2.2/31

no-osl-dc1-f1-r01k01-spn01

Ethernet 2

10.16.2.2

no-osl-dc1-f1-r03k02-lf01

Ethernet 1

10.16.2.3

no-osl-dc1-f1-r01k01-spn01 <-> no-osl-dc1-f1-r03k03-lf01

10.16.2.4/31

no-osl-dc1-f1-r01k01-spn01

Ethernet 3

10.16.2.4

no-osl-dc1-f1-r03k03-lf01

Ethernet 1

10.16.2.5

no-osl-dc1-f1-r02k01-spn01 <-> no-osl-dc1-f1-r03k01-lf01

10.16.2.6/31

no-osl-dc1-f1-r02k01-spn01

Ethernet 1

10.16.2.6

no-osl-dc1-f1-r03k01-lf01

Ethernet 2

10.16.2.7

no-osl-dc1-f1-r02k01-spn01 <-> no-osl-dc1-f1-r03k02-lf01

10.16.2.8/31

no-osl-dc1-f1-r02k01-spn01

Ethernet 2

10.16.2.8

no-osl-dc1-f1-r03k02-lf01

Ethernet 2

10.16.2.9

no-osl-dc1-f1-r02k01-spn01 <-> no-osl-dc1-f1-r03k03-lf01

10.16.2.10/31

no-osl-dc1-f1-r02k01-spn01

Ethernet 3

10.16.2.10

no-osl-dc1-f1-r03k03-lf01

Ethernet 2

10.16.2.11

Loopback интерфейсы для нужд IS-IS и VTEP

Устройство
Loopback 0 (IS-IS)
Loopback 10 (VTEP)

no-osl-dc1-f1-r01k01-spn01

10.16.0.1/32

-

no-osl-dc1-f1-r02k01-spn01

10.16.0.2/32

-

no-osl-dc1-f1-r03k01-lf01

10.16.1.1/32

10.16.4.1/32

no-osl-dc1-f1-r03k02-lf01

10.16.1.2/32

10.16.4.2/32

no-osl-dc1-f1-r03k03-lf01

10.16.1.3/32

10.16.4.3/32

Немного теории про IS-IS.

Взято из Википедии: https://ru.wikipedia.org/wiki/IS-ISarrow-up-right

Протокол маршрутизации промежуточных систем (англ. IS-IS) — протокол внутренних шлюзов (IGP), стандартизированный ISO и использующийся в основном в крупных сетях провайдеров услуг. IS-IS может также использоваться в корпоративных сетях особо крупного масштаба. IS-IS — это протокол маршрутизации на основе состояния каналов. Он обеспечивает быструю сходимость и отличную масштабируемость. Как и все протоколы на основе состояния каналов, IS-IS очень экономно использует пропускную способность сетей.

Далее, нас интересует понятие Net в IS-IS:

Адрес ISIS NET — это то, что нам нужно настроить, когда мы используем протокол маршрутизации ISIS в сети. Это связано с тем, что протокол ISIS изначально был разработан для сетей CLNS. Хотя мы используем IP-адрес для маршрутизации IP-трафика, пакеты управления ISIS по-прежнему используют адрес CLNS для связи друг с другом.

Машинный перевод части статьи https://rayka-co.com/lesson/isis-net-address-format/#google_vignettearrow-up-right

Формат CLNS адреса для наглядности. Пригодится позже.

Вводные для IS-IS:

  • Для упрощения и совместимости принимаем, что все устройства работают с IS-IS Level 2.

  • В качестве System ID используем видоизмененный адрес Loopback

    • 10.16.0.1 представляем видом 100.160.000.001 - добавляем лидирующих или конечных нулей

    • Переписываем значение в вид 100.160.000.001, двигаем точки и получаем: 1001.6000.0001

Достижение результата

Тут мы эволюционируем и меняем парадигму xD. Принимаем за основу состояние сети из Netbox.

После установки и конфигурирования считаем, что у нас в Netbox 5 устройств: 2 Spine-коммутатора, 3 - Leaf-коммутатора. Описываем их состояние внутри Netbox:

Для каждого устройства указаны соответствующие настройки интерфейсов средствами Netbox - адреса, кабели, состояние физического интерфейса - включен/выключен, description.

Пример состояния интерфейсов для no-osl-dc1-f1-r01k01-spn01

Для устройств создан Config Template со следующим содержимым:

Этот темплейт делает следующие замечательные вещи:

  1. Генерирует конфигурацию для интерфейсов с именем, которое начинается на "^Ethernet", а именно:

    • Вытягивает и устанавливает IP-адрес для интерфейса из Netbox

    • Если на интерфейсе назначен IP-адрес переводит его в режим no switchport

    • Назначает ему имя процесса IS-IS

    • В случае, если интерфейс помечен, как активный в Netbox, переводит его в no shutdown

  2. Генерирует конфигурацию интерфейсов Loopback и Management

  3. Генерирует прочую общую информацию в виде

    • vrf

    • default gw для mgmt трафика

    • stp режим

    • настройки ISIS, общие для устройств

Остальная магия с настройками и шаблоном Jinja2 связана с понятием Config Context из Netbox

Для каждого устройства, участвующего в построении IS-IS, указан локальный контекст с именем "isis_id":

chevron-rightКонтекст для коммутаторов из нашей схемыhashtag

С помощью шаблона он генериуется в NET адрес в конструкции:

Весь контекст суммируется на вкладке Rendered Context и представляет собой вот это:

PoC. Импорт конфигурационного файла, созданного в Netbox в устройства (ручной режим)

На момент написания статьи не удалось реализовать импорт конфигурации в автоматическом режиме, поэтому автор копирует конфигурацию в каждое устройство как есть. При этом предполагается, что для устройств настроен только mgmt интерфейс, привилегированный пользователь. Остальные настройки соответствуют умолчаниям.

chevron-rightno-osl-dc1-f1-r01k01-spn01hashtag
chevron-rightno-osl-dc1-f1-r02k01-spn01hashtag
chevron-rightno-osl-dc1-f1-r03k01-lf01hashtag
chevron-rightno-osl-dc1-f1-r03k02-lf01hashtag
chevron-rightno-osl-dc1-f1-r03k03-lf01hashtag

Результат настройки IS-IS

Маршруты на spine-коммутаторах:

Маршруты на leaf-коммутаторах:

Необходимо доделать

  • добавить в шаблон генерацию секции IS-IS для Loopback интерфейсов VTEP Добавлено путем добавления интерфейсов в Netbox

  • добавить в шаблон генерацию секции BFD Добавлено в новой версии шаблонаarrow-up-right

  • проверить и в случае необходимости добавить настройки ECMP

Last updated