Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

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 маршрутизатором по причине отсутствия «точек соприкосновения» в виде баз одного уровня.

Возьмем такую топологию:


Конфиги коммутаторов:

 sw1

sw1#sh run

vlan database

vlan 10,30

exit

!

hostname sw1

!

interface gigabitethernet1/0/1

switchport mode trunk

switchport trunk allowed vlan add 10

exit

!

interface gigabitethernet1/0/2

switchport mode trunk

switchport trunk allowed vlan add 30

exit

!

interface vlan 10

ip address 10.0.0.1 255.255.255.252

ip router isis

exit

!

interface vlan 30

ip address 10.0.0.9 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 1.1.1.1 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

is-type level-2-only

address-family ipv4 unicast

redistribute connected

exit

net 49.0002.0010.0100.1001.00

exit

!

!

end

 sw2

sw2#sh run


vlan database


vlan 10,20


exit


!


hostname sw2


!


interface gigabitethernet1/0/1


switchport mode trunk


switchport trunk allowed vlan add 20


exit


!


interface gigabitethernet1/0/2


switchport mode trunk


switchport trunk allowed vlan add 10


exit


!


interface vlan 10


ip address 10.0.0.2 255.255.255.252


ip router isis


exit


!


interface vlan 20


ip address 10.0.0.5 255.255.255.252


ip router isis


exit


!


interface loopback 1


ip address 2.2.2.2 255.255.255.255


ip router isis


isis passive-interface


exit


!


!


router isis


address-family ipv4 unicast


redistribute connected


exit


net 49.0001.0020.0200.2002.00


exit


!


!


end

 sw3

sw3#sh run

vlan database

vlan 20

exit

!

hostname sw3

!

interface gigabitethernet1/0/2

switchport mode trunk

switchport trunk allowed vlan add 20

exit

!

interface vlan 20

ip address 10.0.0.6 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 3.3.3.3 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

is-type level-1

address-family ipv4 unicast

redistribute connected

exit

net 49.0001.0030.0300.3003.00

exit

!

!

end

 sw4

sw4#sh run

vlan database

vlan 30,40

exit

!

hostname sw4

!

interface gigabitethernet1/0/1

switchport mode trunk

switchport trunk allowed vlan add 30

exit

!

interface gigabitethernet1/0/2

switchport mode trunk

switchport trunk allowed vlan add 40

exit

!

interface vlan 30

ip address 10.0.0.10 255.255.255.252

ip router isis

exit

!

interface vlan 40

ip address 10.0.0.13 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 4.4.4.4 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

address-family ipv4 unicast

redistribute connected

exit

net 49.0003.e0d9.e3e1.3780.00

exit

!

!

end

 sw5

sw5#sh run

vlan database

vlan 40

exit

!

hostname sw5

!

interface gigabitethernet1/0/1

switchport mode trunk

switchport trunk allowed vlan add 40

exit

!

interface vlan 40

ip address 10.0.0.14 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 5.5.5.5 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

is-type level-1

address-family ipv4 unicast

redistribute connected

exit

net 49.0003.0050.0500.5005.00

exit

!

!

end

В выводе команды 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 роутерах. Для этого backbone и нужен.


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 в отдельную зону:

Конфиги коммутаторов:

 sw1

sw1#sh run

vlan database

vlan 10

exit

!

hostname sw1

!

interface gigabitethernet1/0/1

description to-sw2

switchport mode trunk

switchport trunk allowed vlan add 10

exit

!

interface vlan 10

ip address 10.0.0.1 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 1.1.1.1 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

is-type level-1

address-family ipv4 unicast

redistribute connected

exit

net 49.0000.0010.0100.1001.00

exit

!

!

end

 sw2

sw2#sh run

vlan database

vlan 10,20

exit

!

hostname sw2

!

interface gigabitethernet1/0/1

description to-sw3

switchport mode trunk

switchport trunk allowed vlan add 20

exit

!

interface gigabitethernet1/0/2

description to-sw1

switchport mode trunk

switchport trunk allowed vlan add 10

exit

!

interface vlan 10

ip address 10.0.0.2 255.255.255.252

ip router isis

exit

!

interface vlan 20

ip address 10.0.0.5 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 2.2.2.2 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

address-family ipv4 unicast

redistribute connected

exit

net 49.0000.0020.0200.2002.00

exit

!

!

end

 sw3

sw3#sh run

vlan database

vlan 20,30

exit

!

hostname sw3

!

interface gigabitethernet1/0/1

description to-sw4

switchport mode trunk

switchport trunk allowed vlan add 30

exit

!

interface gigabitethernet1/0/2

description to-sw2

switchport mode trunk

switchport trunk allowed vlan add 20

exit

!

interface vlan 20

ip address 10.0.0.6 255.255.255.252

ip router isis

exit

!

interface vlan 30

ip address 10.0.0.9 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 3.3.3.3 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

address-family ipv4 unicast

redistribute connected

exit

net 49.0000.0030.0300.3003.00

exit

!

!

end

 sw4

sw4#sh run

vlan database

vlan 30

exit

!

hostname sw4

!

interface gigabitethernet1/0/2

description to-sw3

switchport mode trunk

switchport trunk allowed vlan add 30

exit

!

interface vlan 30

ip address 10.0.0.10 255.255.255.252

ip router isis

exit

!

interface loopback 1

ip address 4.4.4.4 255.255.255.255

ip router isis

isis passive-interface

exit

!

!

router isis

is-type level-2-only

address-family ipv4 unicast

redistribute connected

exit

net 49.0001.0040.0400.4004.00

exit

!

!

end

Коммутатор 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 двумя командами:

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)






  • Нет меток