IS-IS (intermediate system to intermediate system) — протокол динамической маршрутизации, любимый в операторах и незаслуженно забытый в Enterprise сегменте, относится к типу IGP (interior gateway protocol) и используется для передачи маршрутной информации внутри автономных систем. Наряду со своим главным конкурентом, OSPF, представляет класс Link-State протоколов, позволяющих маршрутизаторам иметь представление обо всей топологии домена маршрутизации и использующий тот же алгоритм Дейкстры для поиска кратчайшего пути.
Изначально разработанный отважными инженерами в темных кабинетах DEC для маршрутизации в стеке OSI (rfc1142), впоследствии был расширен и интегрирован в TCP/IP получив название Integrated IS-IS (rfc1195)
Из модели OSI протокол наследовал формат адресации и некоторую терминологию:
CLNP (Connectionless-mode Network Protocol) - протокол сетевого уровня OSI, описывающий услуги предоставляемые транспортному уровню, имеет функционал схожий с IP из стека TCP/IP.
NSAP (Network service access point) - тип адресации на сетевом уровне OSI.
NET (Network Entity Title) — частный случай NSAP, используется для уникальной идентификации маршрутизатора IS-IS. Чуть позже поговорим о нем подробнее.
IS (Intermediate System) - маршрутизирующие устройства.
ES (End System) — оконечные устройства.
IS-IS поддерживает иерархию домена маршрутизации, предоставляя возможность разделения топологии на отдельные зоны, при этом, в отличии от area 0 в OSPF, нумерация зон в IS-IS не играет никакой роли. Границами зон являются не маршрутизаторы, а линки между ними. Маршрутизаторы IS-IS могут принадлежать только одной зоне.
Роли маршрутизаторов определяются уровнями их взаимодействия и имеют варианты:
L1 - знают маршруты только внутри своей зоны (аналог тупиковой зоны OSPF).
L2 - знают маршруты всего домена (аналог backbone OSPF).
L1/L2 - знают маршруты своей зоны и маршруты между зонами (аналог ABR в OSPF)
L1 и L2 оперируют разными базами данных и не могут устанавливать соседства, L1 знает только о маршрутах в своей зоне, чтобы попасть в другую зону трафик направляется к L1/L2, который крутой имеет обе базы.
В зависимости от роли, маршрутизаторы действуют следующим образом:
L1-маршрутизатор:
-пакеты для других зон отправляются ближайшему L1/L2 маршрутизатору. (по аналогии с default route, ближайший сосед выбирается на основе стоимости маршрута до него)
-пакеты для своей зоны отправляются согласно маршрутам в L1-базе
L1/L2-маршрутизатор:
-пакеты для других зон отправляются согласно маршрутам в L2-базе
-пакеты для собственной зоны отправляются согласно L1-базе
-приоритет маршрутов в L1-базе выше, чем в L2
Еще немного про дизайн
Говоря об уровнях взаимодействия, мы подразумеваем базы данных, которыми оперируют маршрутизаторы, в том числе для установления соседства между собой. Другими словами L1 маршрутизатор не сможет установить соседство с L2-only маршрутизатором по причине отсутствия «точек соприкосновения» в виде баз одного уровня.
Возьмем такую топологию:
Конфиги коммутаторов:
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
В выводе команды show isis neighbors коммутатора sw1, имеющего роль L2, мы видим LSDB только L2 уровня:
sw1#sh isis database
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime (s) ATT/P/OL
---------------------- ------------- -------------- ------------------ ----------
IS-IS Level-2 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime (s) ATT/P/OL
---------------------- ------------- -------------- ------------------ ----------
sw1.00-00 0x00000008 0x000069d4 1090 0/0/0
sw1.00-01 0x00000009 0x0000ec3b 1088 0/0/0
sw1.00-02 0x00000013 0x0000ce06 1157 0/0/0
sw2.00-00 0x00000007 0x0000f825 456 0/0/0
sw2.00-03 0x00000007 0x000014f1 491 0/0/0
sw2.00-04 0x0000000d 0x0000d814 1195 0/0/0
sw2.01-00 0x00000005 0x0000770d 599 0/0/0
sw4.00-00 0x0000000d 0x00009d84 830 0/0/0
sw4.00-05 0x0000000a 0x000004f6 927 0/0/0
sw4.00-06 0x0000000c 0x0000d6f0 1117 0/0/0
sw4.01-00 0x00000008 0x0000b0f4 618 0/0/0
на sw3, с ролью L1, будет только L1 LSDB:
sw3#sh isis database
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime (s) ATT/P/OL
---------------------- ------------- -------------- ------------------ ----------
sw2.00-00 0x00000008 0x0000fe16 1054 1/0/0
sw2.00-03 0x00000006 0x0000887d 585 0/0/0
sw2.00-04 0x0000000c 0x00001099 432 0/0/0
sw3.00-00 0x0000000a 0x00008c6e 733 0/0/0
sw3.00-03 0x00000005 0x00002abb 876 0/0/0
sw3.00-04 0x00000007 0x000050a7 885 0/0/0
sw3.01-00 0x00000005 0x0000d407 716 0/0/0
IS-IS Level-2 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime (s) ATT/P/OL
---------------------- ------------- -------------- ------------------ ----------
ну и логично, что на sw2 будут обе базы.
Посмотрим таблицу маршрутизации на sw2:
sw2#show ip route isis
Maximum Parallel Paths: 1 (1 after reset)
Load balancing: src-dst-mac-ip
IP Forwarding: enabled
Codes: * - failed to install, > - best, C - connected, S - static,
R - RIP,
O - OSPF intra-area, OIA - OSPF inter-area,
OE1 - OSPF external 1, OE2 - OSPF external 2,
B - BGP, i - IS-IS, L1 - IS-IS level-1,
L2 - IS-IS level-2, ia - IS-IS inter area
P - PBR
[d/m]: d - route's distance, m - route's metric
i L2 1.1.1.1/32 [116/20] via 10.0.0.1, 00:04:42, vlan 10
i L1 3.3.3.3/32 [115/20] via 10.0.0.6, 01:37:34, vlan 20
i L2 4.4.4.4/32 [116/30] via 10.0.0.1, 00:01:18, vlan 10
i L2 5.5.5.5/32 [116/40] via 10.0.0.1, 00:01:18, vlan 10
i L2 10.0.0.8/30 [116/20] via 10.0.0.1, 00:01:18, vlan 10
i L2 10.0.0.12/30 [116/30] via 10.0.0.1, 00:01:18, vlan 10
Здесь 10.0.0.1 - это адрес sw1 для линковой сети sw1-sw2.
Теперь соединим sw2 напрямую с sw4.
Вот так:
Включаем IS-IS на новом линке, видим установленное соседство:
sw2#sh isis neighbors
System Id Interface Type SNPA State Holdtime (s) Circuit Id
---------------- ------------- ------ ---------------- ------- -------------- -------------------
sw1 vlan 10 L2 e0d9.e3a1.2240 Up 28 sw2.01
sw3 vlan 20 L1 ecb1.e065.ea00 Up 9 sw3.01
sw4 vlan 50 L2 e0d9.e3e1.3780 Up 28 sw2.03
и next-hop в sw4 для маршрутов в area 3:
sw2#sh ip ro is
Maximum Parallel Paths: 1 (1 after reset)
Load balancing: src-dst-mac-ip
IP Forwarding: enabled
Codes: * - failed to install, > - best, C - connected, S - static,
R - RIP,
O - OSPF intra-area, OIA - OSPF inter-area,
OE1 - OSPF external 1, OE2 - OSPF external 2,
B - BGP, i - IS-IS, L1 - IS-IS level-1,
L2 - IS-IS level-2, ia - IS-IS inter area
P - PBR
[d/m]: d - route's distance, m - route's metric
i L2 1.1.1.1/32 [116/20] via 10.0.0.1, 00:12:27, vlan 10
i L1 3.3.3.3/32 [115/20] via 10.0.0.6, 01:45:19, vlan 20
i L2 4.4.4.4/32 [116/20] via 10.0.0.18, 00:02:42, vlan 50
i L2 5.5.5.5/32 [116/30] via 10.0.0.18, 00:02:42, vlan 50
i L2 10.0.0.8/30 [116/20] via 10.0.0.1, 00:02:42, vlan 10
i L2 10.0.0.12/30 [116/20] via 10.0.0.18, 00:02:42, vlan 50
То есть связность между area 1 и area 3 появилась в обход sw1 из area 2, имеющего роль L2-only и выполняющего функционал backbone’а.
Более того, мы можем вообще исключить L2-only из топологии, положив интерфейсы gi1/0/2 sw2 и gi1/0/1 sw4 и для маршрутов между area 1 и area 3 ничего не изменится. Коммутаторы sw3 и sw5 даже пересчитывать SPF не будут, так как имеют роль L1 и кроме дефолта в L1/L2 ничего хорошего в их жизни таблице маршрутизации нет.
Зачем нужен такой backbone?
Поменяем нашу схему, увеличив ее до 10 зон и уберем L2-only. Для передачи маршрутной информации между зонами все пограничные маршрутизаторы имеют роль L1/L2.
не самая красивая топология с точки зрения отказоустойчивости и утилизации линков.
Для решения этих проблем было бы неплохо организовать полносвязную топологию:
Full-Mesh это хорошо, но дорого. И пересчет маршрутов от stub сетей включенных в L1-маршрутизаторы каждой зоны будет сильно нагружать все L1/L2.
Так лучше.
Best practice при разделении домена IS-IS на зоны считается использование backbone в качестве ядра, с минимизацией дорогих и толстых линков и суммаризацией маршрутов от других зон на L2-only роутерах.
(дальше будет скучная теория)
Network Entity Title
Он же NET, является уникальным идентификатором маршрутизатора в домене IS-IS.
Имеет следующий формат:
и состоит из нескольких частей:
AFI (Authority and Format Identifier) - определяет класс адреса NET, в современных реализациях IS-IS это поле всегда равно 49.
Area ID - здесь указывается номер зоны.
System ID - идентификатор маршрутизатора, это поле делает NET уникальным.
SEL (Network Selector) - определяет подтип NSAP (Network service access point), поле всегда должно быть равно 00, именно это значение делает NET из NSAP.
Формат записи NET - xx.xxxx.xxxx.xxxx.xxxx.xx. Как стало понятно, вариации NET возможны за счет двух полей Area ID и System ID. И если с первым все понятно, по второму стоит пояснить.
Поле System ID имеет длину в 6 байт и состоит из 12 шестнадцатеричных символов. Прямо как mac-адрес. Иногда его указывают в качестве System ID и тогда адрес NET выглядит примерно так: 49.0001.e0d9.e3e1.3780.00
Но ни кто не любит шестнадцатеричную систему более популярным является использование IP-адреса в качестве System ID. Берется адрес, например, 192.168.1.1, дополняется нулями в каждом октете до полного адреса 192.168.001.001, после чего разделяется точками через каждые четыре символа как требует формат System ID -1921.6800.1001.
К примеру, маршрутизатор с loopback 10.10.10.10/32 работающий в area 1 может иметь NET 49.0001.0100.1001.0010.00. Теперь стало понятнее.
Типы сообщений IS-IS
Маршрутизатор IS-IS может генерировать 9 типов сообщений, которые называются так:
- Level 1 LAN Hello (тип 15)
- Level 2 LAN Hello (тип 16)
- Point-to-point Hello (тип 17)
- Level 1 LSP (тип 18)
- Level 2 LSP (тип 20)
- Level 1 CSNP (тип 24)
- Level 2 CSNP (тип 25)
- Level 1 PSNP (тип 26)
- Level 2 PSNP (тип 27)
Первые три требуются для установления и поддержания соседства. Level 1 LAN Hello и Level 2 LAN Hello нужны для соседства разного уровня и используются на широковещательных линках. Point-to-point Hello, как понятно из названия, на p2p линках. Hello пакеты отправляются на мультикастовые mac-адреса, для Level 1 LAN Hello это 01:80:c2:00:00:14, для Level 2 LAN Hello — 01:80:c2:00:00:15, и P2P Hello — 09:00:2b:00:00:05 для поиска маршрутизаторов обоих уровней, аналог 224.0.0.2 в IP.
Level 1 LSP и Level 2 LSP пакеты описывают топологию сети, содержат информацию о самих маршрутизаторах, их соседях, префиксах и метриках. Генерируются маршрутизаторами в зависимости от уровня соседства.
CSNP (Complete Sequence Number PDU) - содержит описание всех LSP маршрутизатора, периодически отправляется всеми маршрутизаторами и используется для синхронизации LSDB.
PSNP (Partial Sequence Number PDU) - аналог Link State Request в OSPF, является запросом к соседям на получение LSP о неизвестных префиксах, так же используется для подтверждения их получения.
Как и другие пакеты IS-IS, CSNP и PSNP генерируются маршрутизаторами на разных уровнях, в зависимости от установленного соседства.
Формат заголовка
Заголовок сообщений IS-IS выглядит следующим образом:
Состоит из нескольких частей. Синим цветом выделена фиксированная часть, она одинакова для всех типов сообщений. Часть PDU Specific fields содержит специфичные для каждого типа сообщения поля и определяется в поле PDU Type.
TLV section - здесь содержатся те самые Type/Length/Value, делающие IS-IS таким гибким. Каждый TLV представляет собой объект с атрибутами: Type - определяющей тип данных передаваемых PDU, Length - размер данных, Value - сами данные. Фактически для расширения протокола требуется только стандартизация нового типа TLV (угадайте, какой протокол первым получил поддержку IPv6?). В одном LSP могут передаваться несколько TLV различных типов.
Типы TLV поддерживаемые IS-IS:
- TLV1 - Area address.
- TLV2 - IS reachability.
- TLV6 - IS neighbors.
- TLV8 - Padding TLV.
- TLV9 - LSP entries
- TLV10 - Authentication.
- TLV22 - Extented IS reachability.
- TLV128 - IP internal reachability.
- TLV129 - Protocols supported.
- TLV130 - IP external reachability.
- TLV132 - IP interface addresses.
- TLV134 - TE IP router ID.
- TLV135 - Extended IP reachability.
- TLV137 - Dynamic hostname resolution.
- TLV222 - Multiple topology IS reachability.
- TLV229 - Multiple topologies supported.
- TLV232 - IPv6 interface address.
- TLV235 - Multiple topology IP reachability.
- TLV236 - IPv6 reachability.
- TLV237 - Multiple topology Reachable IPv6 TLV.
поднимите руки, кто не помнит типы LSA OSPF.
Давайте попробуем это все настроить.
Для начала настроем IS-IS на двух коммутаторах и посмотрим на установление соседства.
Схема будет такой:
Коммутаторы имеют роль L2-only, анонсировать будут адреса loopback’ов.
Настроем базовую IP связность:
sw1:
console#conf
console(config)#host sw1
sw1(config)#int vl10
sw1(config-if)#ip add 10.0.0.1 /30
sw1(config-if)#int lo1
sw1(config-if)#ip add 1.1.1.1 /32
sw1(config-if)#int gi1/0/1
sw1(config-if)#sw m t
sw1(config-if)#sw t al vl ad 10
sw2:
console#conf
console(config)#host sw2
sw2(config)#int vl10
sw2(config-if)#ip add 10.0.0.2 /30
sw2(config-if)#int lo1
sw2(config-if)#ip add 2.2.2.2 /32
sw2(config-if)#int gi1/0/1
sw2(config-if)#sw m t
sw2(config-if)#sw t al vl ad 10
Теперь IS-IS:
sw1:
sw1(config)#ip prefix-list dc-to-isis permit 1.1.1.1/32
<---для примера создадим префикс лист, фильтрующий адреса loopback интерфейса.
sw1(config)#router isis
<---включаем процесс IS-IS
sw1(router-isis)#net 49.0000.0010.0100.1001.00
<---настраиваем адрес net
sw1(router-isis)#is-type level-2-only
<---устанавливаем роль, по умолчанию коммутатор имеет роль L1/L2 и пытается установить соседство на обоих уровнях, при изменении роли все IS-IS сессии сбрасываются.
This action will reset all neighbor connections and clear IS-IS routing table.
Would you like to continue? (Y/N)[N] Y
sw1(router-isis)#shutdown
<--- и пока выключим процесс
sw1(router-isis)#address-family ipv4 unicast
<---указываем тип address family и переходим к ее конфигурации
sw1(router-isis-af)#redistribute connected filter-list dc-to-isis
<---включаем редистрибьюцию connected сетей в IS-IS, попадающих под указанный префикс-лист
sw1(router-isis-af)#exit
sw1(router-isis)#interface Loopback 1
sw1(config-if)#ip router isis
<---включаем IS-IS на интерфейсе.
sw1(config-if)#isis passive-interface
<---указываем режим passive, чтобы с этого интерфейса IS-IS не пытался устанавливать соседство.
sw1(config)#interface vlan 10
sw1(config-if)#ip router isis
на sw2 аналогичная конфигурация:
sw2(config)#ip prefix-list dc-to-isis permit 2.2.2.2/32
sw2(config)#router isis
sw2(router-isis)#net 49.0000.0020.0200.2002.00
sw2(router-isis)#is-type level-2-only
This action will reset all neighbor connections and clear IS-IS routing table.
Would you like to continue? (Y/N)[N] Y
sw2(router-isis)#shut
sw2(router-isis)#address-family ipv4 unicast
sw2(router-isis-af)#redistribute connected filter-list dc-to-isis
sw2(router-isis-af)#ex
sw2(router-isis)#interface lo1
sw2(config-if)#ip router isis
sw2(config-if)#isis passive-interface
sw2(config-if)#interface vl10
sw2(config-if)#ip router isis
На этом базовая настройка завершена. Поднимаем процессы IS-IS и готовим wireshark.
После включения процесса коммутатор начинает отправлять Hello сообщения:
в которых, помимо прочего, мы видим поля:
PDU Type: L2 HELLO - тип сообщения
Circuit type: Level 2 only - устанавливаемый уровень соседства
System ID: 0010.0100.1001 - идентификатор отправителя сообщения
NLPID: IP - поддерживаемый протокол
Area address: 49.0000 - номер зоны
IPv4 interface address: 10.0.0.1 — адрес интерфейса, с которого устанавливается соседство
Здесь заметно еще одно наследие модели OSI - IS-IS не использует транспорт IP, инкапсулируется сразу в Ethernet.
Коммутатор, получив сообщение Hello, добавляет mac-адрес его отправителя в поле IS Neighbor и направляет Hello в ответ:
Тоже самое делает и второй коммутатор:
Получив сообщение Hello, IS-IS переводит соседство из состояния Down в Initializing, означающее, что он "знает" о наличии сеседа, но не уверен, что сосед "знает" о нем. А после получения Hello со своим mac-адресом в поле IS Neighbor, IS-IS считает двусторонее взаимодействие между коммутаторами установленным и переводит соседство в состояние Up.
Да, так просто, всего три состояния:
Об установлении соседства свидетельствует сообщение в логах :%ISIS-I-ADJCHANGE: Adjacency to 0020.0200.2002 (vlan 10) (level-2) up
После чего в таблице маршрутизации sw1 мы увидим маршрут к loopback sw2, полученный по IS-IS:
sw1#sh ip route
Maximum Parallel Paths: 1 (1 after reset)
Load balancing: src-dst-mac-ip
IP Forwarding: enabled
Codes: * - failed to install, > - best, C - connected, S - static,
R - RIP,
O - OSPF intra-area, OIA - OSPF inter-area,
OE1 - OSPF external 1, OE2 - OSPF external 2,
B - BGP, i - IS-IS, L1 - IS-IS level-1,
L2 - IS-IS level-2, ia - IS-IS inter area
P - PBR
[d/m]: d - route's distance, m - route's metric
C 1.1.1.1/32 is directly connected, loopback 1
i L2 2.2.2.2/32 [116/20] via 10.0.0.2, 00:58:25, vlan 10
C 10.0.0.0/30 is directly connected, vlan 10
Добавим в нашу топологию еще несколько коммутаторов с разными ролями и вынесем L2 в отдельную зону:
Конфиги коммутаторов:
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
Раскрыть | ||
---|---|---|
| ||
|
Коммутатор sw4, имея роль L2-only, устанавливает соседство с sw3 с ролью L1/L2 на втором уровне:
sw4#sh is nei
System Id Interface Type SNPA State Holdtime (s) Circuit Id
---------------- ------------- ------ ---------------- ------- -------------- -------------------
sw3 vlan 30 L2 e0d9.e3a1.2240 Up 29 sw4.01
Соответственно sw1 с ролью L1 устанавливает соседство с sw2 на первом уровне:
sw1#sh is nei
System Id Interface Type SNPA State Holdtime (s) Circuit Id
---------------- ------------- ------ ---------------- ------- -------------- -------------------
sw2 vlan 10 L1 e0d9.e3e1.3780 Up 9 sw2.01
При этом между sw2 и sw3 устанавливаются два соседства, так как оба коммутатора имеют роли L1/L2 и держат LSDB обоих уровней:
sw2#sh is nei
System Id Interface Type SNPA State Holdtime (s) Circuit Id
---------------- ------------- ------ ---------------- ------- -------------- -------------------
sw1 vlan 10 L1 6813.e289.7500 Up 28 sw2.01
sw3 vlan 20 L1 e0d9.e3a1.2240 Up 28 sw2.02
sw3 vlan 20 L2 e0d9.e3a1.2240 Up 28 sw2.02
Мы можем явно задать уровень соседства между L1/L2 коммутаторами опцией circuit-type в режиме конфигурации интерфейса:
sw2(config)#interface vlan 20
sw2(config-if)#isis circuit-type
level-1 Level-1 only adjacencies are formed
level-2-only Level-2 only adjacencies are formed
level-1-2 Level-1-2 adjacencies are formed
Посмотрим таблицы маршрутизации sw4 и sw1.
sw4#sh ip ro is
Maximum Parallel Paths: 1 (1 after reset)
Load balancing: src-dst-mac-ip
IP Forwarding: enabled
Codes: * - failed to install, > - best, C - connected, S - static,
R - RIP,
O - OSPF intra-area, OIA - OSPF inter-area,
OE1 - OSPF external 1, OE2 - OSPF external 2,
B - BGP, i - IS-IS, L1 - IS-IS level-1,
L2 - IS-IS level-2, ia - IS-IS inter area
P - PBR
[d/m]: d - route's distance, m - route's metric
i L2 1.1.1.1/32 [116/40] via 10.0.0.9, 00:04:40, vlan 30
i L2 2.2.2.2/32 [116/30] via 10.0.0.9, 00:04:40, vlan 30
i L2 3.3.3.3/32 [116/20] via 10.0.0.9, 00:04:40, vlan 30
i L2 10.0.0.0/30 [116/30] via 10.0.0.9, 00:04:40, vlan 30
i L2 10.0.0.4/30 [116/20] via 10.0.0.9, 00:04:40, vlan 30
sw4 получает все префиксы, так как, имеет роль L2.
А вот sw1, с ролью L1, кроме connected сетей своей зоны ничего не знает:
sw1#sh ip route i
Maximum Parallel Paths: 1 (1 after reset)
Load balancing: src-dst-mac-ip
IP Forwarding: enabled
Codes: * - failed to install, > - best, C - connected, S - static,
R - RIP,
O - OSPF intra-area, OIA - OSPF inter-area,
OE1 - OSPF external 1, OE2 - OSPF external 2,
B - BGP, i - IS-IS, L1 - IS-IS level-1,
L2 - IS-IS level-2, ia - IS-IS inter area
P - PBR
[d/m]: d - route's distance, m - route's metric
i L1 0.0.0.0/0 [115/10] via 10.0.0.2, 00:16:57, vlan 10
i L1 2.2.2.2/32 [115/20] via 10.0.0.2, 00:16:57, vlan 10
i L1 3.3.3.3/32 [115/30] via 10.0.0.2, 00:16:45, vlan 10
i L1 10.0.0.4/30 [115/20] via 10.0.0.2, 00:16:57, vlan 10
i L1 10.0.0.8/30 [115/30] via 10.0.0.2, 00:16:45, vlan 10
и чтобы попасть в другую зоны из stub сети включенной в sw1, пакет будет отправлен по дефолтному маршруту на L1/L2. То есть в этом случае логика IS-IS перестает быть Link-State и становится в Distance-Vector. Мир несправедлив.
Под занавес прикрутим аутентификацию к IS-IS.
Делается это в ветке конфигурации router isis двумя командами:
включаем аутентификацию и определяем ее тип: cleartext или md5
sw1(router-isis)#authentication mode
— включаем аутентификацию и определяем ее тип: cleartext или md5
sw1(router-isis)#authentication key
— указываем ключ для аутентификации
При этом аутентификация действует именно на анонсы префиксов, то есть соседство установится даже если коммутаторы ее не пройдут. Соответственно в сообщениях Hello аутентификацию мы не увидим, а вот в LSP эти поля есть:
Полезные команды.
Посмотреть список всех соседей можно командой show isis neighbors
sw1#show isis neighbors
System Id Interface Type SNPA State Holdtime (s) Circuit Id
---------------- ------------- ------ ---------------- ------- -------------- -------------------
sw2 vlan 10 L2 e0d9.e3e1.3780 Up 9 sw2.01
Интерфейсы, участвующие в процессе IS-IS:
sw1#show isis interfaces
loopback1
Administrative state is UP
Operational state is UP
Circuit type is Level-1-2
Network type is broadcast
It is a passive interface
PDU buffer size is 1500
Hello PDU padding is enabled
Level-1:
Circuit metric is 10
Level-2:
Circuit metric is 10
vlan 10
Administrative state is UP
Operational state is UP
Circuit type is Level-1-2
Network type is broadcast
PDU buffer size is 1500
Hello PDU padding is enabled
Level-1:
Circuit metric is 10
Level-2:
Circuit metric is 10
Содержание LSDB IS-IS:
sw1#show isis database
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime (s) ATT/P/OL
---------------------- ------------- -------------- ------------------ ----------
IS-IS Level-2 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime (s) ATT/P/OL
---------------------- ------------- -------------- ------------------ ----------
sw1.00-00 0x00000007 0x00004ff1 647 0/0/0
sw1.00-03 0x00000006 0x0000e642 955 0/0/0
sw1.00-04 0x00000009 0x0000fda3 934 0/0/0
sw2.00-00 0x00000006 0x0000ec33 856 0/0/0
sw2.00-03 0x00000005 0x00008a7c 687 0/0/0
sw2.00-04 0x00000007 0x000092e1 819 0/0/0
sw2.01-00 0x00000005 0x0000770d 699 0/0/0
И конфигурация самого процесса:
sw1#show isis
IS-IS Router:
IS Level is Level-2
System ID is 0010.0100.1001
Area address(es):
49.0000
Dynamic hostname is configured
Packet Lifetime is 1200 seconds
Refresh Interval is 900 seconds
Maximum wait time between two consecutive SPFs is 5000 ms
Threshold number of updates to start SPF is infinite
Threshold number of updates to restart running SPF is infinite
Maximum number of consecutive SPF restarts is 10
System Level-1:
Metric style is both (narrow and wide)
LSP generation interval is 30000 ms
LSP buffer size is 1500
System Level-2:
Metric style is both (narrow and wide)
LSP generation interval is 30000 ms
LSP buffer size is 1500
Configured IS-IS circuits:
loopback1 is UP (admin UP)
vlan 10 is UP (admin UP)