ћерион Ќетворкс

15 минут чтени€

¬ этой серии лекций продолжаетс€ рассмотрение распределенных плоскостей управлени€, добавл€€ к изучению еще три протокола маршрутизации. ƒва из них €вл€ютс€ протоколами состо€ни€ канала, а третий Ц единственный, широко распространенный протокол вектора пути, Border Gateway Protocol (BGP) v4.

¬ этих лекци€ мы уделим внимание тому, почему каждый из этих протоколов реализован именно так. ќчень легко увлечьс€ и запутатьс€ в изучении мельчайших деталей работы протоколов, но нам гораздо важнее помнить о проблемах, дл€ решени€ которых эти протоколы были разработаны, и о диапазоне возможных решений.  аждый изучаемый вами протокол будет представл€ть собой комбинацию умеренно ограниченного набора доступных решений: существует очень мало доступных новых решений. —уществуют различные комбинации решений, реализованных иногда уникальными способами дл€ решени€ конкретных наборов проблем.

»зуча€ эти принципы работы протокола, вы должны попытатьс€ выбрать общие решени€, которые они реализуют. «атем отразить эти решени€ обратно в набор проблем, которые должна решить люба€ распределенна€ плоскость управлени€, чтобы устранить проблемы в реальных сет€х.


 ратка€ истори€ OSPF и IS-IS

ѕротокол Intermediate System to Intermediate System (IS-IS или IS to IS) был разработан в 1978 году.

Open Shortest Path First (OSPF) изначально задумывалс€ как альтернатива IS-IS, предназначенна€ специально дл€ взаимодействи€ с сет€ми IPv4. ¬ 1989 году перва€ спецификаци€ OSPF была опубликована Internet Engineering Task Force, а OSPFv2, значительно улучшенна€ спецификаци€, была опубликована в 1998 году как RFC2328. OSPF, безусловно, был более широко используемым протоколом, причем ранние реализации IS-IS практически не примен€лись в реальном мире. Ѕыли некоторые аргументы за и против, и многие функции были Ђпозаимствованыї из одного протокола в другой (в обоих направлени€х).

¬ 1993 году компани€ Novell, в то врем€ крупный игрок в мире сетевых технологий, использовала протокол IS-IS как основу дл€ замены собственного протокола маршрутизации Netware. ѕротокол транспортного уровен€ Novell, Internet Packet Exchange (IPX), в то врем€ работал на большом количестве устройств, и возможность использовани€ одного протокола дл€ маршрутизации нескольких транспортных протоколов была решающим преимуществом на сетевом рынке (EIGRP, также может маршрутизировать IPX). Ётот протокол замены был основан на IS-IS. „тобы реализовать новый протокол Novell, многие производители просто переписали свои реализации IS-IS, значительно улучшив их в процессе. Ёто переписывание сделало IS-IS привлекательным дл€ крупных провайдеров »нтернет-услуг, поэтому, когда они отказались от протокола RIP, они часто переходили на IS-IS вместо OSPF.


Intermediate System to Intermediate System Protocol

¬ протоколе Intermediate System to Intermediate System (IS-IS) маршрутизатор называетс€ Intermediate System (ѕромежуточной системой (IS), а хост- End System ( онечной системой (ES). ќригинальный дизайн набора состо€л в том, чтобы каждое устройство, а не интерфейс, имело один адрес. —лужбы и интерфейсы на устройстве будут иметь точку доступа к сетевым службам (Network Service Access Point - NSAP), используемую дл€ направлени€ трафика к определенной службе или интерфейсу. “аким образом, с точки зрени€ IP, IS-IS изначально был разработан в рамках парадигмы маршрутизации хоста. ѕромежуточные и конечные системы св€зываютс€ непосредственно с помощью протокола End System to Intermediate System (ES-IS), позвол€ющего IS-IS обнаруживать службы, доступные в любой подключенной конечной системе, а также сопоставл€ть адреса нижних интерфейсов с адресами устройств более высокого уровн€.

≈ще один интересный аспект дизайна IS-IS - он работает на канальном уровне. –азработчикам протокола не имело большого смысла запускать плоскость управлени€ дл€ обеспечени€ доступности транспортной системы через саму транспортную систему. ћаршрутизаторы не будут пересылать пакеты IS-IS, поскольку они параллельны IP в стеке протоколов и передаютс€ по локальным адресам св€зи.  огда была разработана IS-IS, скорость большинства каналов была очень низкой, поэтому дополнительна€ инкапсул€ци€ также считалась расточительной.  аналы св€зи также довольно часто выходили из стро€, тер€€ и искажа€ пакеты. —ледовательно, протокол был разработан, чтобы противосто€ть ошибкам при передаче и потере пакетов.


јдресаци€ OSI

ѕоскольку IS-IS был разработан дл€ другого набора транспортных протоколов, он не использует адреса Internet Protocol (IP) дл€ идентификации устройств. ¬место этого он использует адрес взаимодействи€ открытых систем (Open Systems Interconnect - OSI) дл€ идентификации как промежуточных, так и конечных систем. —хема адресации OSI несколько сложна, включа€ идентификаторы дл€ органа, распредел€ющего адресное пространство, идентификатор домена, состо€щий из двух частей, идентификатор области, системный идентификатор и селектор услуг (N-селектор). ћногие из этих частей адреса OSI имеют переменную длину, что еще больше затрудн€ет понимание системы. ќднако в мире IP используютс€ только три части этого адресного пространства.

  • Authority Format Identifier (AFI), Initial Domain Identifier (IDI), High-Order Domain Specific Part (HO-DSP) и область, где все обрабатываетс€ как одно поле.
  • —истемный идентификатор по-прежнему рассматриваетс€ как системный идентификатор.
  • N Selector, или NSAP, обычно игнорируетс€ (хот€ есть идентификатор интерфейса, который похож на NSAP, используемый в некоторых конкретных ситуаци€х).

“аким образом, промежуточные системные адреса обычно принимают форму, показанную на рисунке 1.

Ќа рисунке 1:

  • “очка разделени€ между системным идентификатором и остальной частью адреса находитс€ в шестом октете или если отсчитать двенадцать шестнадцатеричных цифр с правой стороны. ¬се, что находитс€ слева от шестого октета, считаетс€ частью адреса области.
  • ≈сли N-селектор включен, это один октет или две шестнадцатеричные цифры справа от идентификатора системы. Ќапример, если дл€ адреса A был включен N-селектор, это могло бы быть 49.0011.2222.0000.0000.000A.00.
  • ≈сли в адрес включен N-селектор, вам нужно пропустить N-селектор при подсчете более шести октетов, чтобы найти начало адреса области.
  • A и B наход€тс€ в одном домене flooding рассылки, потому что у них одни и те же цифры от седьмого октета до крайнего левого октета в адресе.
  • C и D наход€тс€ в одном flooding domain.
  • A и D представл€ют разные системы, хот€ их системный идентификатор одинаков. ќднако така€ адресаци€ может сбивать с толку и поэтому не используетс€ в реальных развертывани€х IS-IS (по крайней мере, вдумчивыми системными администраторами).
–ис. 1 ќбзор схемы адресации OSI, используемой в IS-IS

¬ы посчитать эту схему адресации более сложной, чем IP, даже если вы регул€рно работаете с IS-IS в качестве протокола маршрутизации. ќднако есть большое преимущество в использовании схемы адресации, отличной от той, котора€ используетс€ на транспортном уровне в сети. √ораздо проще различать типы устройств в сети и гораздо проще отделить узлы от адресатов, если продумать алгоритм ƒейкстры по кратчайшему пути (SPF).


ћаршаллинг данных в IS-IS

IS-IS использует довольно интересный механизм дл€ маршалинга данных дл€ передачи между промежуточными системами.  ажда€ IS генерирует три вида пакетов:

  • Hello-пакеты
  • ѕакеты с пор€дковыми номерами (PSNP и CSNP)
  • ќдиночный пакет состо€ни€ канала (Link State Packet - LSP)

≈диный LSP содержит всю информацию о самой IS, любых доступных промежуточных системах и любых доступных адресатах, подключенных к IS. Ётот единственный LSP форматируетс€ в Type Length Vectors (TLV), которые содержат различные биты информации. Ќекоторые из наиболее распространенных TLV включают следующее:

  • “ипы 2 и 22: достижимость к другой промежуточной системе
  • “ипы 128, 135 и 235: достижимость до пункта назначени€ IPv4
  • “ипы 236 и 237: достижимость к адресату IPv6

—уществует несколько типов, потому что, IS-IS изначально поддерживал 6-битные метрики (большинство процессоров на момент по€влени€ протокола могли хранить только 8 бит за раз, и два бита были Ђукраденыї из размера пол€, чтобы нести информацию о том, был ли маршрут внутренним или внешним, а также другую информацию). —о временем, по мере увеличени€ скорости св€зи, были введены различные другие метрические длины, включа€ 24 - и 32-битные метрики, дл€ поддержки широких метрик.

ќдиночный LSP, несущий всю информацию о доступности IS, IPv4 и IPv6, а также, возможно, теги MPLS и другую информацию, не поместитс€ в один пакет MTU. ƒл€ фактической отправки информации по сети IS-IS разбивает LSP на фрагменты.  аждый фрагмент рассматриваетс€ как отдельный объект в процессе лавинной рассылки. ≈сли измен€етс€ один фрагмент, лавинной рассылкой по сети распростран€етс€ только измененный фрагмент, а не весь LSP. Ѕлагодар€ этой схеме IS-IS очень эффективен при лавинной рассылке информации о новой топологии и достижимости без использовани€ полосы пропускани€, превышающей минимальную требуемую.


ќбнаружение соседей и топологии

’от€ IS-IS изначально был разработан, чтобы узнать о доступности сети через протокол ES-IS, когда IS-IS используетс€ дл€ маршрутизации IP, он Ђдействует так же, как протоколы IPї, и узнает о достижимых местах назначени€ через локальную конфигурацию каждого из них. устройства и путем перераспределени€ из других протоколов маршрутизации. —ледовательно, IS-IS - это проактивный протокол, который изучает и объ€вл€ет достижимость без ожидани€ пакетов, которые будут переданы и переадресованы через сеть.

‘ормирование соседей в IS-IS довольно просто. –исунок 2 иллюстрирует этот процесс.

Ќа рисунке 2:

  1. IS A передает приветствие в сторону B. Ёто приветствие содержит список соседей, от которых получен сигнал, который будет пустым. Ќастройку времени удержани€ (hold time) B следует использовать дл€ A, и добавл€етс€ к максимальному блоку передачи (MTU) локального интерфейса дл€ канала св€зи. ѕакеты приветстви€ дополн€ютс€ только до завершени€ процесса формировани€ смежности. Ќе каждый пакет приветстви€ дополн€етс€ MTU канала.
  2. IS B передает приветствие к A. Ёто приветствие содержит список соседей, от которых получен ответ, который будет включать A. Ќастройку времени удержани€ A следует использовать дл€ B. ƒобавл€етс€ к MTU локального интерфейса.
  3. ѕоскольку A находитс€ в списке Ђслышимых соседейї B, A рассмотрит B и перейдет к следующему этапу формировани€ соседей.
  4.  ак только A включил B в список Ђуслышанных соседейї хот€ бы в одно приветствие, B рассмотрит A и перейдет к следующему этапу формировани€ соседа.
  5. B отправит полный список всех записей, которые он имеет в своей таблице локальной топологии (B описывает LSP, которые он имеет в своей локальной базе данных). Ётот список отправл€етс€ в Complete Sequence Number Packet (CSNP).
  6. A проверит свою локальную таблицу топологии, сравнив ее с полным списком, отправленным B. Ћюбые записи в таблице топологии (LSP), которых он не имеет, он будет запрашивать у B с использованием Partial Sequence Number Packet (PSNP).
  7.  огда B получает PSNP, он устанавливает флаг Send Route Message (SRM) дл€ любой записи в его локальной таблице топологии (LSP), запрошенной A.
  8. ѕозже процесс лавинной рассылки будет проходить по таблице локальной топологии в поисках записей с установленным флагом SRM. ќн заполнит эти записи, синхронизиру€ базы данных в A и B.
ѕримечание. ќписанный здесь процесс включает изменени€, внесенные в RFC5303, который определ€ет трехстороннее рукопожатие, и дополнение приветстви€, которое было добавлено в большинство реализаций примерно в 2005 году.
–ис. 2 IS-IS процесс формировани€ соседей

”становка флага SRM отмечает информацию дл€ лавинной рассылки, но как на самом деле происходит лавинна€ рассылка?


Ќадежна€ лавинна€ рассылка.

ƒл€ правильной работы алгоритма SPF ƒейкстры (или любого другого алгоритма SPF) кажда€ IS в flooding domain должна совместно использовать синхронизированную базу данных. Ћюба€ несогласованность в базе данных между двум€ промежуточными системами открывает возможность зацикливани€ маршрутизации.  ак IS-IS гарантирует, что подключенные промежуточные системы имеют синхронизированные базы данных? ¬ этой лекции описываетс€ процесс создани€ point-to-point каналов. ƒалее будут описаны модификации, внесенные в процесс flooding domain по каналам с множественным доступом (например, Ethernet).

IS-IS полагаетс€ на р€д полей в заголовке LSP, чтобы гарантировать, что две промежуточные системы имеют синхронизированные базы данных. –исунок 3 иллюстрирует эти пол€.

–ис. 3 ѕол€ заголовка IS-IS LSP

Ќа рисунке 3:

  • ƒлина пакета (packet length) содержит общую длину пакета в октетах. Ќапример, если это поле содержит значение 15 , длина пакета составл€ет 15 октетов. ѕоле длины пакета составл€ет 2 октета, поэтому оно может описывать пакет длиной до 65 536 октетов - больше, чем даже самые большие MTU канала.
  • ѕоле оставшегос€ времени жизни (remaining lifetime) также составл€ет два октета и содержит количество секунд, в течение которых этот LSP действителен. Ёто вынуждает периодически обновл€ть информацию, передаваемую в LSP, что €вл€етс€ важным соображением дл€ старых технологий передачи, где биты могут быть инвертированы, пакеты могут быть усечены или информаци€, передаваема€ по каналу св€зи, может быть повреждена. ѕреимущество таймера, который ведет обратный отсчет, а не на увеличение, состоит в том, что кажда€ IS в сети может определ€ть, как долго ее информаци€ должна оставатьс€ действительной независимо от каждой другой IS. Ќедостаток в том, что нет четкого способа отключить описанный функционал. ќднако 65 536 секунд - это большое врем€ - 1092 минуты, или около 18 часов. ѕовторна€ загрузка каждого фрагмента LSP в сети примерно каждые 18 часов создает очень небольшую нагрузку на работу сети.
  • LSP ID описывает сам LSP. ‘актически, это поле описывает фрагмент, поскольку оно содержит идентификатор исходной системы, идентификатор псевдоузла (функцию этого идентификатора рассмотрим позже) и номер LSP, или, скорее, номер фрагмента LSP. »нформаци€, содержаща€с€ в одном фрагменте LSP, рассматриваетс€ как Ђодин блокї во всей сети. ќтдельный фрагмент LSP никогда не Ђрефрагментируетс€ї какой-либо другой IS. Ёто поле обычно составл€ет 8 октетов.
  • ѕор€дковый номер (Sequence Number) описывает версию этого LSP. ѕор€дковый номер гарантирует, что кажда€ IS в сети имеет одинаковую информацию в своей локальной копии таблицы топологии. Ёто также гарантирует, что злоумышленник (или Ђкрива€ї реализаци€) не сможет воспроизвести старую информацию дл€ замены новой.
  •  онтрольна€ сумма (Checksum) гарантирует, что информаци€, передаваема€ во фрагменте LSP, не была изменена во врем€ передачи.

Ћавинна€ рассылка описана на рисунке 4.

–ис. 4 IS-IS лавинна€ (flooding) рассылка

Ќа рисунке 4:

  1. ј подключен к 2001: db8: 3e8: 100 :: / 64. A создает новый фрагмент, описывающий этот новый достижимый пункт назначени€.
  2. A устанавливает флаг SRM на этом фрагменте в сторону B.
  3. ѕроцесс лавинной рассылки в какой-то момент (обычно это вопрос миллисекунд) проверит таблицу топологии и перезальет все записи с установленным флагом SRM.
  4.  ак только нова€ запись будет помещена в свою таблицу топологии, B создаст CSNP, описывающий всю свою базу данных, и отправит его в A.
  5. ѕолучив этот CSNP, A удал€ет свой флаг SRM в направлении B.
  6. B провер€ет контрольную сумму и сравнивает полученный фрагмент с существующими запис€ми в своей таблице топологии. ѕоскольку нет другой записи, соответствующей этой системе и идентификатору фрагмента, он поместит новый фрагмент в свою таблицу локальной топологии. ”читыва€, что это новый фрагмент, B инициирует процесс лавинной рассылки по направлению к C.

ј как насчет удалени€ информации? ≈сть три способа удалить информацию из системы IS-IS flooding:

  • »сход€ща€ IS может создать новый фрагмент без соответствующей информации и с более высоким пор€дковым номером.
  • ≈сли весь фрагмент больше не содержит какой-либо действительной информации, исход€ща€ IS может заполнить фрагмент с оставшимс€ временем жизни (lifetime) равным 0 секунд. Ёто приводит к тому, что кажда€ IS в домене лавинной рассылки повторно загружает фрагмент zero age и удал€ет его из рассмотрени€ дл€ будущих вычислений SPF.
  • ≈сли таймер lifetime во фрагменте истекает в любой IS, фрагмент заполн€етс€ лавинной рассылкой с zero age оставшегос€ времени жизни.  ажда€ IS, получающа€ этот фрагмент с zero age, провер€ет, что это сама€ последн€€ копи€ фрагмента (на основе пор€дкового номера), устанавливает оставшеес€ врем€ жизни дл€ своей локальной копии фрагмента на ноль секунд и повторно загружает фрагмент. Ёто называетс€ удалением фрагмента из сети.

 огда IS отправл€ет CNSP в ответ на полученный фрагмент, она фактически провер€ет всю базу данных, а не только один полученный фрагмент.  аждый раз, когда фрагмент лавинно рассылаетс€ по сети, вс€ база данных провер€етс€ между каждой парой промежуточных систем.


ѕодведение итогов об IS-IS

IS-IS можно описать как:

  • »спользование лавинной рассылки дл€ синхронизации базы данных в каждой промежуточной системе в flooding domain (протокол состо€ни€ канала).
  • –асчет loop-free -путей с использованием алгоритма SPF ƒейкстры.
  • »зучение доступных пунктов назначени€ через конфигурацию и локальную информацию (проактивный протокол).
  • ѕроверка двусторонней св€зи при формировании соседей путем переноса списка Ђзамеченных соседейї в своих пакетах приветстви€.
  • ”даление информации из домена лавинной рассылки с помощью комбинации пор€дковых номеров и полей оставшегос€ времени жизни (lifetime) в каждом фрагменте.
  • ѕроверка MTU каждой линии св€зи путем заполнени€ первоначально обмененных пакетов приветстви€.
  • ѕроверка правильности информации в синхронизированной базе данных с помощью контрольных сумм, периодического перезапуска и описаний базы данных, которыми обмениваютс€ промежуточные системы.

IS-IS - это широко распространенный протокол маршрутизации, который доказал свою работоспособность в широком диапазоне сетевых топологий и эксплуатационных требований.


—кидки 50% в Merion Academy

¬ыбрать курс