IS-IS

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


IS-IS (Intermediate System to Intermediate System) — протокол динамической маршрутизации

Содержание

[править] Основные характеристики протокола

Основные характеристики IS-IS:

  • Link-state протокол маршрутизации
  • Использует алгоритм Дейкстры поиска кратчайшего пути; быстрая сходимость
  • Поддержка VLSM
  • Использует hello-пакеты для установления отношений соседства и link-state пакеты для обмена информацией о состоянии каналов
  • Эффективное использование пропускной способности, памяти и процессора
  • Поддерживает два уровня маршрутизации:
    • Уровень 1: маршрутизация внутри зоны IS-IS. Протокол распознает местоположение ES и IS, а после этого строит таблицу маршрутизации для достижения каждой системы. У всех устройств в зоне маршрутизации Уровня 1 одинаковые адреса зоны. Маршрутизация внутри зоны выполняется с учетом значения locally significant address portion (system ID) и выбора кратчайшего пути.
    • Уровень 2: маршрутизаторы на этом уровне определяют местоположение зон уровня 1 и строят таблицу маршрутизации между зонами. Все IS в зоне маршрутизации Уровня 2 используют адрес зоны назначения для того, чтобы отправить данные используя кратчайший путь.

[править] Терминология протокола IS-IS

  • IS (Intermediate System) — маршрутизаторы.
  • ES (End System) — хосты.
  • CLNS (Connectionless Network Service) — протокол 3го уровня в стеке OSI, для передачи данных без установления соединения.
  • LSP (Link-state Packet) - пакет состояния канала (аналог LSA в OSPF)
  • CSNP (Complete Sequence Number PDU) - список всех состояний каналов (LSP) в базе данных состояний маршрутизатора (аналог пакета DD в OSPF). CSNP содержит LSP идентификатор, время жизни (lifetime), порядковый номер и контрольную сумму для каждой записи в базе данных.
  • PSNP (Partial Sequence Number PDU) - запрос IS-IS маршрутизатора посылаемый для получения определенной LSP информации из базы данных соседнего маршрутизатора (аналог LSR в OSPF). Используется для: подтверждения получения одного из пакетов LSP (на участке сети point-to-point); запроса передачи уже существующего или отсутствующего в базе данных маршрутизатора LSP (на участках сети point-to-point или broadcast).
  • DIS (Designated Intermediate System) - назначенная промежуточная система, используется для лавинной рассылки пакетов LSP от имени всех других маршрутизаторов данного сегмента

[править] Описание терминологии и особенностей маршрутизации в OSI

[править] Адресация CLNS

CLNS-адреса применяются ко всему устройству, а не к интерфейсу как IP-адреса.

 1 byte  1 byte           1-12 byte            6 byte    1 byte
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  AFI  |  IDI  |             DSP           | System ID |  SEL  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|-------1-------|   
|----------------------2--------------------|

1) Initial Domain Part
2) Area
  • NSAP (Network service access point)
  • NSEL (NSAP selector) — часть NSAP-адреса. Используется, чтобы различать службы передачи данных, работающих на одном маршрутизаторе (в IP сетях можно сопоставить порт TCP/UDP).
  • Если NSEL равна 0, то NSAP называется NET (network entity title)

Структура адреса NSAP:

  • IDP (Initial Domain Part):
    • AFI (Authority and format identifier)
    • IDI (Initial Domain Identifier)
  • DSP:
    • High-Order DSP
    • System ID - уникальный идентификатор маршрутизатора в сети. Рекомендуется, для удобства конфигурирования, сопоставлять этот идентификатор с ip адресами назначенными маршрутизатору. Для этого в каждом октете ip адреса добавляются нули если значение октета в десятичной системе < 100 (например ip адрес: 172.16.10.1 переводим в System ID: 172.016.010.001)
    • NSEL

Variable-length Area Address:

  • AFI (Authority and format identifier)
  • IDI (Initial Domain Identifier)
  • High-Order DSP

AFI:

  • 49 — Приватный диапазон.

[править] End System to Intermediate System (ES-IS)

Протокол ES-IS позволяет ES (хостам) и IS (маршрутизаторам) обнаружить друг друга и узнать о том как они соединены (о топологии). ES с помощью этого протокола узнают свои адреса сетевого уровня.

ES-IS выполняет такие функции:

  • Сообщает ES в какой зоне они находятся (prefix)
  • Создает отношения соседства между ES и IS
  • Создает соответствия между адресами канального и сетевого уровней

ES отправляют сообщения End System Hello (ESH) на well-known адреса, таким образом ES сообщают о своем присутствии IS. Маршрутизаторы слушают присутствуют ли в сети ESH сообщения, для того чтобы найти ES в сети. Маршрутизаторы включают информацию о ES в LSP.

Маршрутизаторы отправляют сообщения Intermediate System Hello (ISH) на well-known адреса, сообщая таким образом о своем присутствии ES. Хосты слушают ISH сообщения и случайным образом по ним выбирают IS, которому ES будет отправлять все свои пакеты. Когда ES нужно отправить пакет другому ES, он отправляет пакет одному из IS в непосредственно присоединенной сети.

Маршрутизаторы используют IS-IS Hello (IIH) для установления и поддерживания отношений соседства между IS.

В стеке TCP/IP функции аналогичные протоколу ES-IS выполняют протоколы ICMP, ARP, DHCP.

[править] Уровни маршрутизации OSI

[править] Маршрутизация уровня 0

Когда ES нужно отправить пакет другому ES, он отправляет пакет одному из IS в непосредственно присоединенной сети. Этот процесс называется маршрутизация уровня 0.

[править] IS-IS маршрутизация уровня 1

Маршрутизация внутри зоны IS-IS.

Каждая ES и IS находятся в определенной зоне.

IS может отправить сообщение redirect отправителю, если существует более близкий (более прямой маршрут) к пункту назначения.

[править] IS-IS маршрутизация уровня 2

Если destination находится в другой зоне, IS уровня 1 отправляет пакет ближайшей IS уровня 1-2, этот процесс называет маршрутизация уровня 2.

Маршрутизация между зонами.

[править] Маршрутизация уровня 3

Маршрутизация между различными доменами называется маршрутизация уровня 3. В IP-сетях за это отвечает протокол BGP, а в OSI — IDRP (Interdomain Routing Protocol).

Маршрутизация уровня 3 не поддерживается маршрутизаторами Cisco.

[править] Описание работы протокола

Маршрутизаторы могут быть уровня 1, уровня 2 или уровня 1-2:

  • Маршрутизаторы уровня 1 (как internal nonbackbone маршрутизаторы в OSPF) — знают маршруты в пределах зоны в которой они соединены;
  • Маршрутизаторы уровня 2 (как backbone маршрутизаторы в OSPF) — знают маршруты между зонами;
  • Маршрутизаторы уровня 1-2 (как ABR в OSPF) — знают маршруты и в пределах зоны в которой они соединены и между зонами. Это маршрутизаторы аналогичные ABR в OSPF.

Путь соединения маршрутизаторов уровня 2 и уровня 1-2 называется backbone.

Границы зон приходятся на каналы (links). Каждый маршрутизатор принадлежит только одной зоне. Соседние маршрутизаторы определяют в одной они зоне или в разных и устанавливают соответствующие отношения соседства: уровня 1, уровня 2 или обоих.

[править] Integrated IS-IS

Integrated IS-IS (или dual IS-IS) — это IS-IS для маршрутизации нескольких сетевых протоколов — IP и CLNS. Может использоваться для маршрутизации IP, CLNS или комбинации IP и CLNS.

Integrated IS-IS тегирует маршруты CLNS помещая информацию об IP сетях и подсетях.

Integrated IS-IS использует собственный PDU (protocol data unit) для передачи информации между маршрутизаторами (обновления не отправляются в IP-пакетах). Информация протокола IS-IS передается во фреймах канального уровня.

Даже когда IS-IS используется только для маршрутизации IP, для идентификации маршрутизаторов и построения LSDB, используется адресация CLNS.

[править] Этапы установления соседства (adjacency)

Выделяют 6 стадий установления соседства

  1. New - состояние когда процесс установления соседства только начинается. Маршрутизатор переходит в это состояние в момент загрузки или при настройке начальной конфигурации IS-IS.
  2. One-Way - IS-IS маршрутизатор переходит в это состояние после Hello PDU. Машрутизатор находится в этом состоянии пока не будет получен Hello PDU пакет содержащий адрес локального маршрутизатора в качестве соседа.
  3. Initializing - состояние в которое переходит маршрутизатор при получении Hello PDU пакета в котром указан его собственный локальный адрес в качестве соседа. Это состояние означает, что была установлена двунаправленная связь.
  4. Up - состояние полного функционирования отношений IS-IS. Это состояние означает, что были сформированы отношения соседства и произошла синхронизация баз данных маршрутизаторов.
  5. Down - состояние утерянного соседства. IS-IS маршрутизатор переходит в это состояние по одной из нескольких причин: несоответствие зоны (area), окончание таймаута удержания или ошибка аутентификации.
  6. Reject - состояние маршрутизатора после сбоя проверки подлинности. IS-IS маршрутизатор будет постоянно менять свое состояние между этим и состоянием Down.

[править] Сравнение IS-IS и OSPF

IS-IS и OSPF являются протоколами состояния каналов (link state protocols), и оба протокола используют алгоритм Дэйкстры для нахождения кратчайшего пути. Также оба протокола поддерживают сетевые маски переменной длины, могут применять мультикастовую рассылку для нахождения близлежащих роутеров, используя hello пакеты, и могут поддерживать аутентификацию при обновлении маршрутов.

В то время как OSPF изначально построен для маршрутизации IP адресов и сам работает как протокол 3 уровня на IP, IS-IS изначально является сетевым уровнем модели OSI. Широкое внедрение IP адресов способствовало росту популярности OSPF. IS-IS не использует IP адреса в качестве маршрутов. Он является нейтральным в отношении сетевых адресов, в то время OSPF был спроектирован для IPv4. Это позволяет с легкостью использовать IS-IS для IPv6. Для поддержки IPv6 сетей, OSPF был переписан в OSPF v3.

Маршрутизаторы IS-IS строят топологическое представление сети. Эта карта показывает подсети, которые IS-IS маршрутизатор может достигнуть, и путь с самой низкой стоимостью (самый короткий), используемый для перенаправления трафика.

Основное отличие OSPF и IS-IS заключается в том как они делят автономную систему на зоны и как осуществляется маршрутизация между зонами. Недостаток IS-IS в том, что маршрутизаторы 2го уровня могут общаться только с такими же маршрутизаторами, у 1го уровня – такая же ситуация. Для взаимодействия между маршрутизаторами 1го и 2го уровня и соответствующими зонами используются маршрутизаторы уровня 1-2. В OSPF зоны отграничиваются интерфейсами на маршрутизаторе, таким образом пограничный маршрутизатор (area border router, ABR) может находиться в нескольких зонах одновременно, эффективно создавая границы внутри себя. Тогда как границы IS-IS зон находятся между маршрутизаторами уровня 2 или уровня 1-2, что делает маршрутизатор IS-IS частью только одной зоны. Также IS-IS не поддерживает нулевую зону (магистральную область, через которую может пройти весь межобластной трафик). Логическим объяснением этого является то, что OSPF создает сеть с топологией звезда со многими зонами пересекающимися с нулевой, тогда как IS-IS создает логическую топологию с основным уровнем из маршрутизаторов 2го уровня, филиалов – маршрутизаторов уровня 1-2 и отдельных областей из маршрутизаторов уровня 1.

В протоколе OSPF больше расширений и дополнительных функций. Однако протокол IS-IS отправляет меньшее количество служебного трафика и может масштабироваться для больших сетей. Если взять одинаковое количество ресурсов, IS-IS сможет поддерживать большее количество маршрутизаторов в зоне нежели OSPF. Это способствует тому, что IS-IS используется у интернет-провайдеров.

[править] Типы пакетов IS-IS

[править] Формат заголовка пакета IS-IS Protocol Data Unit (PDU)

Все пакеты IS-IS PDU начинаются с одинокового заголовка 8 байт.

       0               1                 2               3    
 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Protocol ID  | Header Length |    Version    |   ID Length   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   PDU Type    |    Version    |   Reserved    |  Maximum Area |
|               |               |               |   Addresses   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Protocol ID (1 байт) - содержит константу 0x83 которая указывает на использование протокола IS-IS
  • Header Length (1 байт) - длинна IS-IS заголовков в байтах. Учитываются как стандартные IS-IS заголовки так и заголовки спицифичных PDU пакетов.
  • Version/Protocol ID Extension (1 байт) - содержит константу 0x01. Спецификация IS-IS определяет это поле как дополнительное расширение к полю Protocol ID
  • ID Length (1 байт) - содержит длинну поля System ID протокола IS-IS (по-умолчанию значение = 0x00, что означает стандартную длинну 6 байт). Поле было добавлено в спецификацию для обеспечения обратной совместимости протокола IS-IS на устройствах различных производителей.
  • PDU Type (1 байт) - тип пакета PDU. Первые три бита = 0, последующие могут принимать значения:
    1. Level 1 LAN Hello (тип 15)
    2. Level 2 LAN Hello (тип 16)
    3. Point-to-point Hello (тип 17)
    4. Level 1 LSP (тип 18)
    5. Level 2 LSP (тип 20)
    6. Level 1 CSNP (тип 24)
    7. Level 2 CSNP (тип 25)
    8. Level 1 PSNP (тип 26)
    9. Level 2 PSNP (тип 27)
  • Version (1 байт) - для текущей версии IS-IS всегда содержит константу 0x01
  • Reserved (1 байт) - зарезервированное поле, всегда устанавливается в 0x00
  • Maximum Area Addresses (1 байт) - по-умолчанию устанавливается в 0x00. Поле информирует сколько адресов зоны поддерживается маршрутизатором (значение 0x00 - не более трех адресов).

Подробная информаци о типе PDU пакета передается в рамках обычного заголовка. Эта информация кодируется специальным образом по трем параметрам: Type, Length, Value (чаще используется сокращение - TLV).

[править] Формат пакета IS-IS LAN Hello PDU

Выделяют два типа LAN Hello PDU пакетов:

  1. Level 1 LAN Hello - пакет для 1 уровня маршрутизации
  2. Level 2 LAN Hello - пакет для 2 уровня маршрутизации

Для мультикаст рассылки пакетов L1 LAN Hello PDU используется адрес: 01:80:c2:00:00:14 а для пакетов L2 адрес: 01:80:c2:00:00:15 Пакет IS-IS Hello PDU (broadcast соединений) представляет собой пакет размером больше 19 байт и содержит следующие поля:

       0               1                 2               3    
 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Circuit Type  |                   Source ID                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Source ID (continued)             |  Holding Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Holding Time |             Length            |    Priority   |  
|  (continued)  |                               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             LAN ID                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               LAN ID (continued)              |      TLVs     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        TLVs (continued)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Circuit Type (1 байт) - первые 6 бит установлены в 0. Остальные указывают на уровень зоны в рамках которой работает интерфейс: L1 (0x01), L2 (0x02), или L1/L2 (0x03). Значение 0x00 игнорируется.
  • Source ID (6 байт) - System ID маршрутизатора отправившего пакет.
  • Holding Time (2 байт) - таймаут завершения соседства с момента получения последнего Hello PDU
  • PDU Length (2 байт) - общий размер всего IS-IS Hello PDU. Обычно содержит значение: 1492 байт (0x05D4).
  • Priority (1 байт) - первый бит устанавливается в 0. Остальные используются для выбора DIS
  • LAN ID (7 байт) - идентификатор текущего DIS. Поле содержит 6-байтовый ID системы и 1-байт circuit ID для DIS
  • TLVs (размер не определен) - информация об отправляющем маршрутизаторе. Содержит: адрес зоны, ID соседа, данные аутентификации и интерфейс.

[править] формат пакета IS-IS Point-to-Point Hello PDU

Пакет Point-to-Point Hello PDU имеет следующую структуру:

       0               1                 2               3    
 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Circuit Type  |                   Source ID                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Source ID (continued)             |  Holding Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Holding Time |             Length            |   Circuit ID  |  
|  (continued)  |                               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             TLVs                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Circuit Type (1 байт) - первые 6 бит установлены в 0. Остальные указывают на уровень зоны в рамках которой работает интерфейс: L1 (0x01), L2 (0x02), или L1/L2 (0x03). Значение 0x00 игнорируется.
  • Source ID (6 байт) - System ID маршрутизатора отправившего пакет.
  • Holding Time (2 байт) - таймаут завершения сосет=дства с момента получения м=последнего Hello PDU
  • PDU Length (2 байт) - общий размер всего IS-IS Hello PDU. Обычно содержит значение: 1492 байт (0x05D4).
  • Circuit ID (1 байт) - идентификатор локального интерфейса маршрутизатора. Все P2P интерфейсы устанвливают значение: 0x01
  • TLVs (размер не определен) - информация об отправляющем маршрутизаторе. Содержит: адрес зоны, ID соседа, данные аутентификации и интерфейс.

[править] формат пакета IS-IS Complete Sequence Number PDU

Отправка пакетов CSNP производится переодически для поддержания актуальной базы данных на всех маршрутизаторах либо когда машрутизаторы устанавливают отношения соседства. Как и IS-IS LAN пакеты CSNP бываю двух типов:

  1. Level 1 CSNP - пакет для 1 уровня маршрутизации
  2. Level 2 CSNP - пакет для 2 уровня маршрутизации

Для мультикаст рассылки пакетов L1 используется адрес: 01:80:c2:00:00:14 а для L2 используется адрес: 01:80:c2:00:00:15. Пакет имеет размер более 25 байт со следующей структурой:

       0               1                 2               3    
 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |            Source ID          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Source ID (continued)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Source ID   |                 Start LSP ID                  |  
|  (continued)  |                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Start LSP ID (continued)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Start LSP ID |                   End LSP ID                  |  
|  (continued)  |                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      End LSP ID (continued)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  End LSP ID   |                      TLVs                     |  
|  (continued)  |                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Length (2 байт) - общая длинна пакета CSNP в байтах.
  • Source ID (7 байт) - это поле позволяет определить отправителя CSNP. Поле содержит 6-байтовый ID системы и 1-байт circuit ID (0x00) представляемого маршрутизатора.
  • Start LSP ID (8 байт) - это поле устанавливается на постоянное значение 0x0000.0000.0000.00-00. Оно обозначает наименьшее возможное значение LSP ID.
  • End LSP ID (8 байт) - это поле устанавливается на постоянное значение 0xFFFF.FFFF.FFFF.FF-FF. Оно определяет максимально возможное значение ID LSP.
  • TLVs (размер не определен) - это поле содержит краткую информацию базы данных с локального маршрутизатора.

Каждая запись в базе данных IS-IS маршрутизатора содержит LSP ID, порядковый номер, время жизни, и контрольную сумму. Сочетание этих параметров однозначно идентифицирует каждый LSP в сети. Когда маршрутизатор получает пакет CSNP, он сверяет запи в собственной базе данных с полученными и если каких либо записей нехватает (или они отличаются), маршрутизатор запросит конкретный LSP у своего соседа пакетом PSNP.

[править] формат пакета IS-IS Partial Sequence Number PDU

Отправка пакетов CSNP производится переодически для поддержания актуальной базы данных на всех маршрутизаторах либо когда машрутизаторы устанавливают отношения соседства. Как CSNP и IIH PDU пакеты PSNP бываю двух типов:

  1. Level 1 PSNP - пакет для 1 уровня маршрутизации
  2. Level 2 PSNP - пакет для 2 уровня маршрутизации

Для мультикаст рассылки пакетов L1 используется адрес: 01:80:c2:00:00:14 а для L2 используется адрес: 01:80:c2:00:00:15. Пакет имеет размер более 9 байт со следующей структурой:

       0               1                 2               3    
 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |            Source ID          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Source ID (continued)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Source ID   |                      TLVs                     |  
|  (continued)  |                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Length (2 байт) - общая длинна пакета PSNP в байтах.
  • Source ID (7 байт) - это поле позволяет определить отправителя CSNP. Поле содержит 6-байтовый ID системы и 1-байт circuit ID (0x00) представляемого маршрутизатора.
  • TLVs (размер не определен) - это поле содержит запрашиваемую информацию базы данных.

Когда маршрутизатор получает пакет CSNP и в результате проверки узнает что его база данных не актуальна, он выполняет отправку PSNP пакета для запроса нехватающей информации. Ответ на пакет PSNP последует от соседнего маршрутизатора в формате пакета Link-State PDU (LSP).

[править] формат пакета Link-State PDU

Пакет Link-State PDU (LSP) содержит информацию о маршрутизаторах в сети и о связях между их интерфейсами. Метрика и информация о IS-IS соседе также включена. Пакет имеет размер более 19 байт со следующей структурой:

       0               1                 2               3    
 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |       Remaining Lifetime      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             LSP ID                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       LSP ID (continued)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Sequence Number                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Checksum           |   Attributes  |     TLVs      |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Length (2 байт) - общая длинна пакета LSP в байтах.
  • Remaining Lifetime (2 байт) - это поле устанавливает время жизни LSP в течении которого каждый маршрутизатор считает этот LSP актуальным.
  • LSP ID (8 байт) - это поле однозначно определяет LSP по всей сети. Значение представляет собой комбинацию System ID (6 байт), circuit ID (1 байт), номер LSP.
  • Sequence Number (4 байт) - это поле указывает номер текущей версии LSP. Первоначальное число 0x01 увеличивается на единицу каждый раз, когда исходный маршрутизатор обновляет LSP.
  • Checksum (2 байт) - это поле содержит контрольную сумму полей PDU.
  • Attributes (1 байт) - это поле содержит информации о состоянии текущего маршрутизатора. Позиции битов поля означиют:
    • Bit 7 - раздел
    • Bit 6 - бит ошибки метрики
    • Bit 5 - бит счет метрики
    • Bit 4 - бит задержки метрики
    • Bit 3 - бит для метрики по умолчанию. Используется L2 маршрутизатором для анонсирования подключения к L1 области.
    • Bit 2 - бит перегрузки. Предупреждает другие IS-IS маршрутизаторы не использовать информацию, передаваемую в этом LSP.
    • Bits 0 and 1 - бит определяет роль маршрутизатора. L1 маршрутизатор устанавливает значение 0x01. Маршрутизатор L1/L2 и L2 устанавливает значение 0x03.
  • TLVs (размер не определен) - это поле содержит краткую информацию базы данных с локального маршрутизатора.

[править] Типы TLV (type/length/value)

  • TLV1 - Area address.
  • TLV2 - IS reachability.
  • TLV6 - IS neighbors.
  • TLV8 - Padding TLV.
  • 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.

[править] IS-IS в маршрутизаторах Cisco

[править] Базовая настройка IS-IS

dyn1 — уровень 1; dyn3 — уровень 1-2; dyn3 — уровень 2;
  1. Определить зоны, подготовить схему адресации (NET) для маршрутизаторов
  2. Включить IS-IS на маршрутизаторе
  3. Настроить NET
  4. Включить IS-IS на интерфейсах

Включить IS-IS на маршрутизаторе:

dyn3(config)# router isis
dyn3(config-router)#

По умолчанию маршрутизатор Cisco становится маршрутизатором уровня 1-2.

Настроить NET адрес для работы IS-IS:

dyn3(config-router)# net 10.0001.0000.0000.0003.00

Включить IS-IS на интерфейсе:

dyn3(config-if)#ip router isis

[править] Оптимизация IS-IS

Изменение уровня маршрутизатора:

dyn3(config-router)# is-type  <level-1 | level-1-2 | level-2-only>

Изменение уровня интерфейса:

dyn3(config-if)# isis circuit-type <level-1 | level-1-2 | level-2-only>

Изменение метрики IS-IS на интерфейсе(по умолчанию 10):

dyn3(config-if)# isis metric <metric> [delay-metric [expence-metric [error-metric]]] [level-1 | level-2]

Для разных уровней могут назначаться различные значения метрики.

Изменение метрики глобально на всех интерфейсах:

dyn3(config-router)# metric <metric>  [level-1 | level-2]

[править] Суммирование маршрутов

dyn3(config-router)# summary-address <address mask>  [level-1 | level-2  | level-1-2] [tag <tag-number>] [metric <metric-value>]

[править] Просмотр настроек IS-IS

Параметры и текущее состояние процессов маршрутизации:

dyn3#show ip protocols 
Routing Protocol is "isis"
  Invalid after 0 seconds, hold down 0, flushed after 0
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Redistributing: isis
  Address Summarization:
    None
  Maximum path: 4
  Routing for Networks:
    FastEthernet0/0
    FastEthernet2/0
  Routing Information Sources:
    Gateway         Distance      Last Update
    192.168.5.5          115      00:03:49
    192.168.4.5          115      00:14:49
    192.168.2.1          115      00:03:49
  Distance: (default is 115)

Таблица маршрутизации на dyn3:

dyn3#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet2/0
i L2 192.168.5.0/24 [115/20] via 192.168.4.5, FastEthernet2/0
i L1 192.168.1.0/24 [115/21] via 192.168.2.1, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet1/0

Таблица маршрутизации на dyn5:

dyn5#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/0
C    192.168.5.0/24 is directly connected, FastEthernet1/0
i L2 192.168.1.0/24 [115/31] via 192.168.4.3, FastEthernet0/0
i L2 192.168.2.0/24 [115/21] via 192.168.4.3, FastEthernet0/0

Информация о сети CLNS:

dyn3#show clns
Global CLNS Information:
  2 Interfaces Enabled for CLNS
  NET: 10.0001.0000.0000.0003.00
  Configuration Timer: 60, Default Holding Timer: 300, Packet Lifetime 64
  ERPDU's requested on locally generated packets
  Running IS-IS in IP-only mode (CLNS forwarding not allowed)

Информация о конкретном процессе IS-IS (по умолчанию процесс 0, если тег не задавался явно):

dyn3#show clns 0 protocol 

IS-IS Router: <Null Tag>
  System Id: 0000.0000.0003.00  IS-Type: level-1-2
  Manual area address(es): 
        10.0001
  Routing for area address(es): 
        10.0001
  Interfaces supported by IS-IS:
        FastEthernet2/0 - IP
        FastEthernet0/0 - IP
  Redistribute:
    static (on by default)
  Distance for L2 CLNS routes: 110
  RRR level: none
  Generate narrow metrics: level-1-2
  Accept narrow metrics:   level-1-2
  Generate wide metrics:   none
  Accept wide metrics:     none

CLNS-информация о интерфейсе:

dyn3#show clns int fa0/0  
FastEthernet0/0 is up, line protocol is up
  Checksums enabled, MTU 1497, Encapsulation SAP
  ERPDUs enabled, min. interval 10 msec.
  CLNS fast switching enabled
  CLNS SSE switching disabled
  DEC compatibility mode OFF for this interface
  Next ESH/ISH in 17 seconds
  Routing Protocol: IS-IS
    Circuit Type: level-1
    Interface number 0x0, local circuit ID 0x1
    Level-1 Metric: 11, Priority: 64, Circuit ID: dyn1.02
    DR ID: dyn1.02
    Level-1 IPv6 Metric: 10
    Number of active level-1 adjacencies: 1
    Next IS-IS LAN Level-1 Hello in 7 seconds

Показать соседей (ES и IS):

dyn3#show clns 0 neighbors 

System Id      Interface   SNPA                State  Holdtime  Type Protocol
dyn1           Fa0/0       c200.04b4.0010      Up     9         L1   IS-IS
dyn5           Fa2/0       0016.3e01.0401      Up     9         L2   IS-IS

Более подробная информация о соседях (например, адрес зоны соседа):

dyn3#show clns 0 neighbors detail 

System Id      Interface   SNPA                State  Holdtime  Type Protocol
dyn1           Fa0/0       c200.04b4.0010      Up     9         L1   IS-IS
  Area Address(es): 10.0001
  IP Address(es):  192.168.2.1*
  Uptime: 00:06:02
  NSF capable
dyn5           Fa2/0       0016.3e01.0401      Up     9         L2   IS-IS
  Area Address(es): 10.0002
  IP Address(es):  192.168.4.5*
  Uptime: 00:05:05
  NSF capable

Информация маршрутизации уровня 1 (system ID). Для отображения информации должна быть включена маршрутизация CLNS. Иначе вывод будет таким:

dyn3#show isis route

IS-IS not running in OSI mode (*) (only calculating IP routes)

(*) Use "show isis topology" command to display paths to all routers

Таблица маршрутизации IS-IS (зоны):

dyn3#show clns route
Codes: C - connected, S - static, d - DecnetIV
       I - ISO-IGRP,  i - IS-IS,  e - ES-IS
       B - BGP,       b - eBGP-neighbor

C  10.0001.0000.0000.0003.00 [1/0], Local IS-IS NET
C  10.0001 [2/0], Local IS-IS Area

Содержимое LSDB для IS-IS:

dyn3#show isis database 

IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
dyn1.00-00            0x0000000D   0xA3C2        759               0/0/0
dyn1.02-00            0x00000007   0x95B6        952               0/0/0
dyn3.00-00          * 0x00000016   0xB09C        520               1/0/0
IS-IS Level-2 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
dyn3.00-00          * 0x0000001A   0xB802        579               0/0/0
dyn5.00-00            0x00000009   0x11BD        576               0/0/0
dyn5.01-00            0x00000004   0x4C82        576               0/0/0

Кратчайшие пути IS-IS к destination:

dyn3#show isis topology 

IS-IS paths to level-1 routers
System Id            Metric     Next-Hop             Interface   SNPA
dyn1                 11         dyn1                 Fa0/0       c200.04b4.0010 
dyn3                 --

IS-IS paths to level-2 routers
System Id            Metric     Next-Hop             Interface   SNPA
dyn3                 --
dyn5                 10         dyn5                 Fa2/0       0016.3e01.0401 

[править] Конфигурационные файлы маршрутизаторов dyn1, dyn3, dyn5

Конфигурация dyn1:

dyn1#sh run
Building configuration...

Current configuration : 818 bytes
!
version 12.4
!
hostname dyn1
!
!
interface FastEthernet0/0
 ip address 192.168.1.1 255.255.255.0
 ip router isis
 duplex auto
 speed auto
!
interface FastEthernet1/0
 ip address 192.168.2.1 255.255.255.0
 ip router isis 
 duplex auto
 speed auto
 isis circuit-type level-1 
!
 router isis 
 net 10.0001.0000.0000.0001.00
 is-type level-1
!

Конфигурация dyn3:

dyn3#sh run
Building configuration...

Current configuration : 998 bytes
!
version 12.4
!
hostname dyn3
!         
!
interface FastEthernet0/0
 ip address 192.168.2.3 255.255.255.0
 ip router isis 
 duplex full
 isis circuit-type level-1
!
interface FastEthernet1/0
 ip address 192.168.3.3 255.255.255.0
 duplex full
!
interface FastEthernet2/0
 ip address 192.168.4.3 255.255.255.0
 ip router isis 
 duplex full
 isis circuit-type level-2-only
!
router isis 
 net 10.0001.0000.0000.0003.00
!

Конфигурация dyn5:

dyn5#sh run
Building configuration...

Current configuration : 818 bytes
!
version 12.4
!
hostname dyn5
!
!
interface FastEthernet0/0
 ip address 192.168.4.5 255.255.255.0
 ip router isis 
 duplex full
 isis circuit-type level-2-only
!
interface FastEthernet1/0
 ip address 192.168.5.5 255.255.255.0
 ip router isis 
 duplex full
!
router isis 
 net 10.0002.0000.0000.0005.00
 is-type level-2-only
!

[править] IS-IS в Quagga

[править] Конфигурационные файлы qua2, qua4

[править] Дополнительная информация



Источник — «http://xgu.ru/wiki/IS-IS»
На других языках