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

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

¬ 2013 году была опубликована верси€ OSPF дл€ маршрутизации IPv6. »звестный как OSPFv3, он был первоначально указан в RFC 2740, который позже был заменен на RFC 5340 и обновлен более поздними стандартами.


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

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

  • OSPF использует пол€ фиксированной длины дл€ упор€дочивани€ данных, а не TLV. Ёто экономит накладные расходы на перенос дополнительных метаданных в виде заголовков Type Length Value (TLV), снижает требовани€ к обработке, позвол€€ сопоставл€ть структуры данных фиксированного размера в пам€ти с пакетами по мере их приема с канала св€зи, и уменьшает размер данных OSPF на линии.
  • OSPF разбивает базу данных топологии на несколько типов данных, а не полагаетс€ на один LSP с TLV. Ёто означает, что каждый вид информации - доступность, топологи€ и т. д. - передаетс€ в уникальном формате пакета.

 аждый тип информации, которую OSPF может нести, переноситс€ в разном типе Link State Advertisement (LSA). ¬от некоторые из наиболее примечательных типов LSA:

  • “ип 1: код 0x2001, Router LSA
  • “ип 2: код 0x2002, Network LSA
  • “ип 3: код 0x2003, Inter-Area Prefix LSA
  • “ип 4: код 0x2004, Inter-Area Router LSA
  • “ип 5: код 0x4005, AS-external LSA
  • “ип 7: код 0x2007, Type-7 (NSSA) LSA

—уществует р€д других типов LSA, включа€ непрозрачные данные, членство в группе многоадресной рассылки и LSA с лавинной рассылкой (например, дл€ одного соседа, одного канала или одного домена лавинной рассылки).

 аждый маршрутизатор OSPF генерирует ровно один Router LSA (тип 1). Ётот LSA описывает любых соседей, примыкающих к объ€вл€емому маршрутизатору, а также любые подключенные достижимые пункты назначени€. —осто€ние каналов св€зи на этих соседей и пунктов назначени€ определ€етс€ из объ€влени€ соседей и пункта назначени€. Ќесмотр€ на фразу Ђсосто€ние каналаї, каналы не объ€вл€ютс€ как отдельна€ Ђвещьї (это часто вызывает путаницу). ≈сли Router LSA становитс€ слишком большим, чтобы поместитьс€ в один IP-пакет (из-за MTU канала), он будет разделен на несколько IP-фрагментов дл€ передачи от маршрутизатора к маршрутизатору.  аждый маршрутизатор повторно собирает весь Router LSA перед его локальной обработкой и лавинно рассылает весь Router LSA, если он измен€етс€.

OSPF также использует несколько разных типов пакетов - они не совпадают с типами LSA. —корее, их можно рассматривать как разные Ђслужбыї в OSPF или, возможно, как разные Ђномера портовї, выполн€емые поверх протокола User Datagram Protocol (UDP) или протокола Transmission Control Protocol (TCP).

  • Hello - это тип 1. ќни используютс€ дл€ обнаружени€ и сохранени€ соседей.
  • Database Descriptor (DBD) относитс€ к типу 2. ќни используютс€ дл€ описани€ таблицы локальной топологии.
  • Link State Request (LSR) относитс€ к типу 3. ќни используютс€ дл€ запроса определенных объ€влений состо€ни€ канала от соседнего маршрутизатора.
  • Link State Update (LSU) относитс€ к типу 4. ќни используютс€ дл€ передачи объ€влений состо€ни€ канала.
  • Link State Acknowledgment - это тип 5. Ёто просто список заголовков LSA. Ћюбой LSA, указанный в этом пакете, подтверждаетс€ как полученный передающим маршрутизатором.

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

¬ качестве протокола состо€ни€ канала OSPF должен гарантировать, что каждый маршрутизатор в пределах области (flooding domain) имеет одну и ту же базу данных дл€ расчета loop-free путей. Ћюбое изменение в базе данных общей топологии может привести к возникновению зацикливани€ маршрутизации, который будет длитьс€ до тех пор, пока существует изменение в базе данных общей топологии. “аким образом, одной из целей формировани€ соседей OSPF €вл€етс€ обеспечение надежной flooding рассылки информации о топологии через сеть. ¬тора€ причина формировани€ соседей OSPF - обнаружение топологии сети путем определени€ того, какие маршрутизаторы наход€тс€ р€дом с локальным маршрутизатором. Ќа рисунке 1 показан процесс формировани€ соседей OSPF.

–ис. 1 ‘ормирование соседей OSPF

Ќа рисунке 1:

  1. B отправл€ет пакет приветстви€ к A.
  2. ѕоскольку приветствие B содержит пустой список видимых соседей, A переводит B в состо€ние инициализации и добавл€ет B в список видимых соседей.
  3. A передает приветствие B в списке видимых соседей.
  4. B получает приветствие от A и отправл€ет приветствие с A в списке видимых соседей.
  5. A получает это приветствие. ѕоскольку сам A находитс€ в списке соседей, A помещает B в двустороннее состо€ние. Ёто означает, что A проверил наличие двусторонней св€зи между собой и B.
  6. ≈сли по этой линии избираютс€ DR и BDR, то выборы происход€т после шага 5.  ак только выборы завершены, DR и BDR перевод€тс€ в состо€ние exstart. ¬о врем€ этого состо€ни€ ведущий и ведомый выбираютс€ дл€ обмена DBDS и LSA. ѕо сути, мастер управл€ет потоком DBDS и LSA между новыми соседними маршрутизаторами. —оседние маршрутизаторы на канале point-to-point технически переход€т непосредственно в состо€ние full state в этой точке.
  7. B переведен в состо€ние обмена.
  8. A отправл€ет B набор DBD с описанием своей базы данных. B отправл€ет набор DBD с описанием своей базы данных в A.
  9. A отправл€ет запрос состо€ни€ канала B дл€ каждого LSA, описанного B, и A не имеет его копии в своей локальной таблице топологии.
  10. B отправл€ет LSA дл€ каждого запроса Link State (LS) от A.
  11. 11.  ак только базы данных синхронизируютс€, B переводитс€ в full state.

ѕроцесс формировани€ соседей OSPF провер€ет MTU на обоих концах линии св€зи, передава€ MTU исход€щего интерфейса в hello сообщении. ≈сли два hello-пакета не совпадают по размеру MTU, два маршрутизатора OSPF не образуют смежности.


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

OSPF должен не только гарантировать завершение первоначального обмена информацией о топологии, но также гарантировать, что текущие изменени€ в топологии сети будут переданы на каждый маршрутизатор во flooding domain. Ќа рисунке 2 показан заголовок LSA OSPF. »зучение этого заголовка поможет нам пон€ть, как OSPF надежно массово рассылает информацию о топологии и доступности через сеть.

–ис. 2 «аголовок OSPF LSA

Ќа рисунке 2:

  • LS Age - это (примерно) количество секунд с момента создани€ Link State Advertisement. Ёто число идет увеличиваетс€, а не уменьшаетс€.  огда LS Age достигает значени€ MAXAGE (на любом маршрутизаторе, а не только на исходном маршрутизаторе), маршрутизатор увеличивает пор€дковый номер на 1, устанавливает дл€ LS Age максимальное число и повторно загружает LSA по всей сети. Ёто позвол€ет удалить старую информацию о топологии и доступности, котора€ не обновл€лась некоторое врем€. ћаршрутизатор, который инициирует какой-либо конкретный LSA, обновит свои LSA за некоторое количество секунд до того, как это поле LSA Age достигнет максимума- это интервал обновлени€ LS.
  • Link State Identifier - это уникальный идентификатор, присвоенный исходным маршрутизатором дл€ описани€ этого LSA. ќбычно это адрес канала или какой-либо адрес локального уровн€ канала (например, Ethernet Media Access Control (MAC-адрес).
  • Advertising Router - это идентификатор маршрутизатора-отправител€. ≈го часто путают с IP-адресом, поскольку он часто €вл€етс€ производным от локально настроенного IP-адреса, но это не IP-адрес.
  • Link State Sequence Number указывает версию LSA.  ак правило, более высокие числа означают более новые версии, хот€ существуют более ранние версии OSPF, в которых используетс€ круговое числовое пространство, а не абсолютно увеличивающеес€. –еализации, которые используют абсолютно увеличивающеес€ числовое пространство, перезапускают процесс OSPF, если достигнут конец числового пространства.
  • Link State Checksum - это контрольна€ сумма, вычисл€ема€ дл€ LSA, используема€ дл€ обнаружени€ ошибок при передаче или хранении информации.

–исунок 3 используетс€ дл€ изучени€ процесса flooding рассылки.

Ќа рисунке 3:

  1. Ћини€ св€зи на 2001: db8: 3e8: 100 :: / 64 настроена, запущена, подключена и т. д.
  2. A перестраивает свой Router LSA (тип 1), чтобы включить эту новую информацию о доступности, упаковывает его в LSU (который может быть фрагментирован при размещении в IP-пакеты) и лавинно рассылает его B.
  3. B получает это LSA и подтверждает его получение подтверждением состо€ни€ канала (link state acknowledgment). A повторно отправит LSA, если B не подтвердит его достаточно быстро.
  4. “еперь B проверит свою таблицу топологии, чтобы определить, €вл€етс€ ли этот LSA новым или копией уже имеющегос€. B определ€ет это в первую очередь путем изучени€ пор€дкового номера, включенного в сам LSA. ≈сли это новый (или обновленный) LSA, B инициирует тот же процесс дл€ лавинной рассылки измененного LSA в C.

ѕодведение итогов об OSPF

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

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

OSPF широко используетс€ в малых и крупных сет€х, включа€ розничную торговлю, поставщиков услуг, финансовые и многие другие предпри€ти€.


ќбщие элементы OSPF и IS-IS

¬ предыдущих лекци€х были рассмотрены аспекты, отличающие OSPF и IS-IS друг от друга. ќднако есть р€д вещей, которые OSPF и IS-IS реализовали достаточно схожими способами, чтобы рассматривать их решени€ как простые варианты.   ним относ€тс€ обработка каналов с множественным доступом, концепци€ Shortest Path Tree и способ way two-way.


 аналы с множественным доступом

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

–ассмотрим рисунок 3 дл€ понимани€.

–ис.3 —еть с множественным доступом дл€ объ€снени€ работы IS-IS

ќдин из вариантов, который протокол может использовать при работе по каналу с множественным доступом, - это просто сформировать смежности, как это обычно происходит по каналу Ђточка-точкаї (point-to-point). Ќапример, на рисунке 3:

  • A может образовывать смежность с B, C и D.
  • B может образовывать смежность с A, C и D.
  • C может образовывать смежность с A, B и D.
  • D может образовывать смежность с A, B и C

≈сли используетс€ этот шаблон формировани€ смежности, когда A получает новый фрагмент LSP (IS-IS) или LSA (OSPF) от некоторого маршрутизатора, не подключенного к совместно используемому каналу:

  • A передаст новый фрагмент или LSA по отдельности B, C и D.
  •  огда B получает фрагмент или LSA, он передаст новый фрагмент или LSA в C и D отдельно.
  •  огда C получает фрагмент или LSA, он передает новый фрагмент или LSA D.

”читыва€ передачу каждого фрагмента или LSA, а также следующий CSNP или подтверждение, чтобы гарантировать синхронизацию локальной базы данных на каждом маршрутизаторе, большое количество пакетов должно пересекать совместно используемый канал, чтобы гарантировать синхронизацию базы данных каждого устройства. „тобы уменьшить переполнение каналов множественного доступа, IS-IS и OSPF выбирают одно устройство, которое отвечает за обеспечение того, чтобы каждое устройство, подключенное к каналу, имело синхронизированную базу данных. Ќа рисунке 3 дл€ IS-IS:

  • ќдно устройство выбрано дл€ управлени€ лавинной рассылкой по каналу. ¬ IS-IS это устройство называетс€ выделенной промежуточной системой (Designated Intermediate System - DIS).
  •  аждое устройство с новой информацией о состо€нии канала отправл€ет фрагмент на адрес многоадресной рассылки, чтобы каждое устройство в общем канале получило его. Ќи одно из устройств, подключенных к каналу, не отправл€ет никаких подтверждений при получении обновленного фрагмента.
  • DIS регул€рно отправл€ет копию своего CSNP на один и тот же адрес многоадресной рассылки, поэтому каждое устройство в канале множественного доступа получает его копию.
  • ≈сли какое-либо устройство на общем канале обнаружит, что в нем отсутствует какой-то конкретный фрагмент, на основе описани€ базы данных DIS в CSNP, оно отправит PSNP в канал, запрашива€ недостающую информацию.
  • ≈сли какое-либо устройство в общем канале обнаружит, что у него есть информаци€, которой нет у DIS, на основе описани€ базы данных DIS в CSNP, оно перенаправит недостающий фрагмент в канал.

“аким образом, нова€ информаци€ о состо€нии канала передаетс€ по линии минимальное количество раз. Ќа рисунке 3 дл€ OSPF:

  • ƒл€ управлени€ лавинной рассылкой по каналу выбираетс€ одно устройство, называемое назначенным маршрутизатором (Designated Router - DR). “акже выбираетс€ резервное устройство, называемое резервным назначенным маршрутизатором (Backup Designated Router - BDR).
  •  аждое устройство с новой информацией о состо€нии канала пересылает ее на специальный адрес многоадресной рассылки, контролируемый DR и BDR (маршрутизаторами, работающими только как DR).
  • DR получает этот LSA, провер€ет его, чтобы определить, содержит ли он новую информацию, а затем повторно загружает его на многоадресный адрес, который прослушивают все маршрутизаторы OSPF на канале (все маршрутизаторы SPF).

ќднако выбор DIS или DR не вли€ет только на лавинную передачу информации по каналу множественного доступа. Ёто также вли€ет на способ вычислени€ SPF через канал. –исунок 4 показывает это.

–ис. 4 –асчет DIS, DR и SPF

Ќа рисунке 4 A выбран в качестве DIS или DR дл€ схемы множественного доступа. A не только гарантирует, что каждое устройство в канале имеет синхронизированную базу данных, но также создает псевдоузел или p-узел и объ€вл€ет его, как если бы это было реальное устройство, подключенное к сети.  аждый из маршрутизаторов, подключенных к совместно используемому каналу, объ€вл€ет о возможности подключени€ к p-узлу, а не к каждой из других подключенных систем.

¬ IS-IS A создает LSP дл€ p-узла. Ётот p-узел объ€вл€ет канал с нулевой стоимостью обратно каждому устройству, подключенному к каналу множественного доступа. ¬ OSPF A создает Network LSA (тип 2).

Ѕез этого p-узла сеть выгл€дит как full mesh (полна€ сетка) дл€ других промежуточных систем в домене лавинной рассылки, как показано в левой части рисунка 4. — p-узлом сеть выгл€дит как hub-and-spoke с p-узлом в качестве концентратора.  аждое устройство объ€вл€ет канал на p-узел, при этом стоимость канала устанавливаетс€ равной стоимости локального интерфейса дл€ совместно используемого канала. ¬ свою очередь p-узел возвращает канал с нулевой стоимостью обратно на каждое устройство, подключенное к общему каналу. Ёто снижает сложность вычислени€ SPF дл€ крупномасштабных каналов с множественным доступом.

 онцептуализаци€ св€зей, узлов и достижимости в протоколах состо€ний каналов

ќдин сбивающий с толку аспект протоколов состо€ни€ каналов - это то, как узлы, каналы и достижимость взаимодействуют друг с другом. –ассмотрим рисунок 5.

–ис. 5  онцептуализаци€ св€зей, узлов и достижимости в протоколах состо€ний каналов

» в OSPF, и в IS-IS узлы и каналы используютс€ как Shortest Path Tree, как показано более темными сплошными лини€ми. ѕунктирные линии показывают, как информаци€ о доступности прикрепл€етс€ к каждому узлу.  аждый узел, подключенный к конкретному достижимому пункту назначени€, объ€вл€ет пункт назначени€ - не только один из двух узлов, подключенных к каналу точка-точка, но и оба. ѕочему так?

ќсновна€ причина в том, что это просто самое простое решение дл€ объ€влени€ доступных мест назначени€. ≈сли вы хотите создать протокол маршрутизации, который объ€вл€л бы каждое достижимое назначение только как подключенное к одному устройству, вам нужно было бы найти способ выбрать, какое из подключенных устройств должно объ€вл€ть достижимое назначение.  роме того, если выбранное устройство выйдет из стро€, то какое-то другое устройство должно вз€ть на себ€ объ€вление достижимого пункта назначени€, что может зан€ть врем€ и негативно повли€ть на конвергенцию. Ќаконец, позвол€€ каждому устройству объ€вл€ть о доступности дл€ всех подключенных пунктов назначени€, вы фактически можете найти кратчайший путь к каждому пункту назначени€.


ѕроверка двустороннего подключени€ в SPF

ƒвусторонн€€ св€зь €вл€етс€ проблемой дл€ плоскостей управлени€ в двух разных местах: между соседними устройствами и при вычислении путей без петель через сеть. » IS-IS, и OSPF также обеспечивают двустороннюю св€зь при вычислении путей без петель.

—ущественным элементом €вл€етс€ проверка обратной св€зи.

–исунок 6 используетс€ дл€ демонстрации этого.

–ис. 6 ¬ ¬ычисление обратной св€зи дл€ проверки двусторонней св€зи

Ќа рисунке 6 направление каждого звена обозначено стрелкой (или набором стрелок). —в€зь [A,B] €вл€етс€ однонаправленной по отношению к A. ќстальные св€зи €вл€ютс€ двусторонними (двунаправленными). ѕри вычислении SPF D будет делать следующее:

  • ѕри обработке информации о состо€нии св€зи C обратите внимание, что C утверждает, что он подключен к B. D найдет информацию о состо€нии св€зи B и проверит, чтобы убедитьс€, что B также утверждает, что он подключен к C. ¬ этом случае B действительно утверждает, что подключен к C, поэтому D будет использовать канал [B, C].
  • ѕри обработке информации о состо€нии св€зи B обратите внимание, что B утверждает, что он подключен к A. ќднако, изуча€ информацию о состо€нии св€зи A, D не может найти никакой информации от A, утверждающего, что он подключен к B. »з-за этого D не будет использовать канал [A, B].

Ёта проверка обычно выполн€етс€ либо до того, как лини€ св€зи будет перемещена в TENT, либо до того, как лини€ св€зи будет перемещена из TENT в PATH.


—кидки 50% в Merion Academy

¬ыбрать курс