⚡ Ќовый онлайн курс по —етевым “ехнологи€м

до запуска осталось

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

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

ѕерва€ часть тут

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

  •  анал или граница, включа€ узлы или достижимые места назначени€, прикрепленные к этому каналу.
  • ”стройство или узел, включа€ узлы, каналы и доступные места назначени€, подключенные к этому устройству.

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

—пособ, которым информаци€ распростран€етс€ по сети, конечно, зависит от конструкции протокола, но обычно используютс€ три вида распространени€: поэтапное (hop-by-hop) распространение, лавинное (flooded) распространение и централизованное (centralized) хранилище некоторого вида.


Ћавинное (flooded) распространение.

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

Ќа рисунке 6 каждое устройство будет рассылать известную ему информацию ближайшим сосед€м, которые затем повторно рассылают информацию своим ближайшим соседу. Ќапример, A знает две специфические вещи о топологии сети: как достичь 2001: db8: 3e8: 100 :: / 64 и как достичь B. A передает эту информацию в B, который, в свою очередь, передает эту информацию в C.  аждое устройство в сети в конечном итоге получает копию всей доступной топологической информации; A, B и C имеют синхронизированные базы данных топологии (или таблицы).

Ќа рисунке 6 св€зь C с D показана как элемент в базе данных. Ќе все плоскости управлени€ будут включать эту информацию. ¬место этого C может просто включать подключение к диапазону адресов 2001: db8: 3e8: 102 :: / 64 (или подсети), который содержит адрес D.

ѕримечание. ¬ более крупных сет€х невозможно уместить все описание подключений устройства в один пакет размером с MTU, и дл€ обеспечени€ актуальности информации о подключении необходимо регул€рно задерживать врем€ ожидани€ и повторно загружать данные.
–ис. 6 Flooding между сетевыми устройствами

»нтересна€ проблема возникает в механизмах распространени€ Flooding рассылки, которые могут вызывать временные петли маршрутизации, называемые microloops. –исунок 7 демонстрирует эту ситуацию. Ќа рисунке 7, предположим, что канал [E, D] не работает. –ассмотрим следующую цепочку событий, включа€ примерное врем€ дл€ каждого событи€:

  • —тарт: A использует E, чтобы добратьс€ до D; C использует D, чтобы добратьс€ до E.
  • 100 мс: E и D обнаруживают сбой св€зи.
  • 500 мс: E и D рассылают информацию об изменении топологии на C и A.
  • 750 мс: C и A получают обновленную информацию о топологии.
  • 1000 мс: E и D пересчитывают свои лучшие пути; E выбирает A как лучший путь дл€ достижени€ D, D выбирает C как лучший путь дл€ достижени€ E.
  • 1,250 мс: лавинна€ рассылка A и C информации об изменении топологии на B.
  • 1400 мс: A и C пересчитывают свои лучшие пути; A выбирает B дл€ достижени€ D, C выбирает B дл€ достижени€ E.
  • 1500 мс: B получает обновленную информацию о топологии.
  • 2,000 мс: B пересчитывает свои лучшие пути; он выбирает C, чтобы достичь D, и A, чтобы достичь E.
–ис. 7 Microloops

’от€ врем€ и пор€док могут незначительно отличатьс€ в каждой конкретной сети, пор€док обнаружени€, объ€влени€ и повторных вычислений почти всегда будет следовать аналогичной схеме. ¬ этом примере между этапами 5 и 7 образуетс€ микропетл€; в течение 400 мс, A использует E дл€ достижени€ D, а E использует A дл€ достижени€ D. Ћюбой трафик, вход€щий в кольцо в A или D в течение времени между пересчетом E лучшего пути к D и пересчетом A лучшего пути к D будет петлей. ќдним из решений этой проблемы €вл€етс€ предварительное вычисление альтернативных вариантов без петель или удаленных альтернатив без петель.


Hop by Hop

ѕри поэтапном распределении каждое устройство вычисл€ет локальный лучший путь и отправл€ет только лучший путь своим сосед€м. –исунок 8 демонстрирует это.

Ќа рисунке 8 каждое устройство объ€вл€ет информацию о том, что может достигнуть каждого из своих соседей. D, например, объ€вл€ет о достижимости дл€ E, а B объ€вл€ет о доступности дл€ C, D и E дл€ A. »нтересно рассмотреть, что происходит, когда A объ€вл€ет о своей доступности дл€ E через канал на вершине сети.  ак только E получит эту информацию, у него будет два пути к B, например: один через D и один через A. “аким же образом у A будет два пути к B: один напр€мую к B, а другой через E. Ћюбой из алгоритмов кратчайшего пути, рассмотренные в предыдущих стать€х, могут определить, какой из этих путей использовать, но возможно ли формирование микропетель с помощью лавинного механизма распределени€?

–ассмотрим:

  1. E выбирает путь через A, чтобы добратьс€ до B.
  2.  анал [A, B] не работает.
  3. A обнаруживает этот сбой и переключаетс€ на путь через E.
  4. «атем A объ€вл€ет этот новый путь к E.
  5. E получает информацию об измененной топологии и вычисл€ет новый лучший путь через D.
–ис. 8 ѕоэтапное распределение

¬ промежутке между шагами 3 и 5 ј будет указывать на ≈ как на свой лучший путь к ¬, в то врем€ как ≈ будет указывать на ј как на свой лучший путь к ¬Чмикропетл€. Ѕольшинство распределительных систем hop-by-hop решают эту проблему с помощью split horizon или poison reverse.

ќпределены они следующим образом:

  1. ѕравило split horizon гласит: устройство не должно объ€вл€ть о доступности к пункту назначени€, который он использует дл€ достижени€ пункта назначени€.
  2. ѕравило poison reverse гласит: устройство должно объ€вл€ть пункты назначени€ по отношению к соседнему устройству, которое оно использует, чтобы достичь пункта назначени€ с бесконечной метрикой.

≈сли разделение горизонта (split horizon) реализованный на рисунке 8, E не будет объ€вл€ть о достижимости дл€ B, поскольку он использует путь через A дл€ достижени€ B. ¬ качестве альтернативы E может отравить путь к B через A, что приведет к тому, что A не будет иметь пути через E к B.


÷ентрализованное ’ранилище.

¬ централизованной системе каждое сетевое устройство сообщает информацию об изменени€х топологии и достижимости контроллеру или, скорее, некоторому набору автономных служб и устройств, действующих в качестве контроллера. ¬ то врем€ как централизаци€ часто вызывает идею единого устройства (или виртуального устройства), которому передаетс€ вс€ информаци€ и который передает правильную информацию дл€ пересылки всем устройствам обработки пакетов в сети, это чрезмерное упрощение того, что на самом деле означает централизованна€ плоскость управлени€. –исунок 9 демонстрирует это.

–ис. 9 »зменени€ топологии и централизованные плоскости управлени€

Ќа рисунке 9, когда канл между D и F не работает:

  1. D и F сообщают об изменении топологии контроллеру Y.
  2. Y пересылает эту информацию другому контроллеру X.
  3. Y вычисл€ет лучший путь к каждому месту назначени€ без канала [D, F] и отправл€ет его каждому затронутому устройству в сети.
  4.  аждое устройство устанавливает эту новую информацию о пересылке в свою локальную таблицу.

 онкретный пример шага 3 - Y вычисл€ет следующий лучший путь к E без канала [D, F] и отправл€ет его D дл€ установки в его локальной таблице пересылки. ћогут ли микропетли образовыватьс€ в централизованной плоскости управлени€?

  • Ѕазы данных в X и Y должны быть синхронизированы, чтобы оба контроллера вычисл€ли одинаковые пути без петель в сети
  • —инхронизаци€ этих баз данных повлечет за собой те же проблемы и (возможно) использование тех же решений, что и решени€, обсуждавшиес€ до сих пор в этой статье.
  • ѕодключенным устройствам потребуетс€ некоторое врем€, чтобы обнаружить изменение топологии и сообщить об этом контроллеру.
  •  онтроллеру потребуетс€ некоторое врем€, чтобы вычислить новые пути без петель.
  •  онтроллеру потребуетс€ некоторое врем€, чтобы уведомить затронутые устройства о новых пут€х без петель в сети.

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


ѕлоскости сегментировани€ и управлени€.

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

–ис. 10 »нформаци€ о доступности сегментов

¬ сети на рисунке 10 предположим, что оба контроллера, X и Y, имеют информацию о топологии дл€ всех узлов (устройств) и ребер (каналов) в сети. ќднако дл€ масштабировани€ размера сети доступные места назначени€ были разделены на два контроллера. —уществует множество возможных схем сегментировани€ - все, что может разделить базу данных (или таблицу) на части примерно одинакового размера, будет работать. „асто используетс€ хеш, так как хеши можно быстро изменить на каждом устройстве, где хранитс€ сегмент, чтобы сбалансировать размеры сегментов.

¬ этом случае предположим, что схема сегментировани€ немного проще: это диапазон IP-адресов. ¬ частности, на рисунке представлены два диапазона IP-адресов: 2001: db8: 3e8: 100 :: / 60, который содержит от 100 :: / 64 до 10f :: / 64; и 2001: db8: 3e8: 110 :: / 60, который содержит от 110 :: / 64 до 11f :: / 64.  аждый из этих диапазонов адресов разделен на один контроллер; X будет содержать информацию о 2001: db8: 3e8: 100 :: / 60, а Y будет содержать информацию о 2001: db8: 3e8: 110 :: / 64. Ќе имеет значени€, где эти доступные пункты назначени€ подключены к сети. Ќапример, информаци€ о том, что 2001: db8: 3e8: 102 :: / 64 подключен к F, будет хранитьс€ в контроллере X, а информаци€ о том, что 2001: db8: 3e8: 110 :: / 64 подключен к A, будет хранитьс€ на контроллере Y. „тобы получить информацию о доступности дл€ 2001: db8: 3e8: 102 :: / 64, Y потребуетс€ получить информацию о том, где этот пункт назначени€ соединен с X. Ёто будет менее эффективно с точки зрени€ вычислени€ кратчайших путей, но он будет более эффективным с точки зрени€ хранени€ информации, необходимой дл€ вычислени€ кратчайших путей. ‘актически, возможно, если информаци€ хранитс€ правильно (а не тривиальным способом, используемым в этом примере), чтобы несколько устройств вычислили разные части кратчайшего пути, а затем обменивались только результирующим деревом друг с другом. Ёто распредел€ет не только хранилище, но и обработку.

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


—огласованность, доступность и возможность разделени€.

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

≈сть: теорема CAP.

¬ 2000 году Ёрик Ѕрюер, занима€сь как теоретическими, так и практическими исследовани€ми, постулировал, что распределенна€ база данных обладает трем€ качествами: —огласованностью, ƒоступностью и устойчивость к разделению (Consistency, Accessibility Partition tolerance-CAP). ћежду этими трем€ качествами всегда есть компромисс, так что вы можете выбрать два из трех в любой структуре системы. Ёта гипотеза, позже доказанна€ математически, теперь известна как теорема CAP. Ёти три термина определ€ютс€ как:

  • —огласованность:  аждый считыватель видит согласованное представление содержимого базы данных. ≈сли какое-то устройство — записывает данные в базу данных за несколько мгновений до того, как два других устройства, ј и ¬, прочитают данные из базы данных, оба считывател€ получат одну и ту же информацию. ƒругими словами, нет никакой задержки между записью базы данных и тем, что оба считывател€, ј и ¬, могут прочитать только что записанную информацию.
  • ƒоступность: каждый считыватель имеет доступ к базе данных при необходимости (почти в реальном времени). ќтвет на чтение может быть отложен, но каждое чтение будет получать ответ. ƒругими словами, каждый считыватель всегда имеет доступ к базе данных. Ќе существует времени, в течение которого считыватель получил бы ответ Ђсейчас вы не можете запросить эту базу данныхї.
  • ”стойчивость к разделению: возможность копировани€ или разделени€ базы данных на несколько устройств.

ѕроще изучить теорему CAP в небольшой сети. ƒл€ этого используетс€ рисунок 11.

ѕредположим, что A содержит единственную копию базы данных, к которой должны иметь доступ как C, так и D. ѕредположим, что C записывает некоторую информацию в базу данных, а затем сразу же после, C и D считывают одну и ту же информацию. ≈динственна€ обработка, котора€ должна быть, чтобы убедитьс€, что C и D получают одну и ту же информацию, - это A. “еперь реплицируйте базу данных, чтобы была копи€ на E и еще одна копи€ на F. “еперь предположим, что K записывает в реплику на E, а L читает из реплики на F. „то же будет?

–ис. 11 »ллюстраци€ теоремы CAP
  • F может вернуть текущее значение, даже если это не то же самое значение, что только что записал  . Ёто означает, что база данных возвращает непоследовательный ответ, поэтому согласованность была принесена в жертву разделению базы данных.
  • ≈сли две базы данных синхронизированы, ответ, конечно, в конечном итоге одинаковым, но потребуетс€ некоторое врем€, чтобы упаковать изменение (упор€дочить данные), передать его в F и интегрировать изменение в локальную копию F. F может заблокировать базу данных или определенную часть базы данных, пока выполн€етс€ синхронизаци€. ¬ этом случае, когда L читает данные, он может получить ответ, что запись заблокирована. ¬ этом случае доступность тер€етс€, но сохран€етс€ согласованность и разбиение базы данных.
  • ≈сли две базы данных объединены, то согласованность и доступность могут быть сохранены за счет разделени€.

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

 ак это применимо к плоскости управлени€? ¬ распределенной плоскости управлени€ база данных, из которой плоскость управлени€ черпает информацию дл€ расчета путей без петель, разделена по всей сети.  роме того, база данных доступна дл€ чтени€ локально в любое врем€ дл€ расчета путей без петель. ”читыва€ разделение и доступность, необходимые дл€ распределенной базы данных, используемой в плоскости управлени€, следует ожидать, что непротиворечивость пострадает - и это действительно так, что приводит к микропетл€м во врем€ конвергенции. ÷ентрализованна€ плоскость управлени€ не Ђрешаетї эту проблему. ÷ентрализованна€ плоскость управлени€, работающа€ на одном устройстве, всегда будет согласованной, но не всегда будет доступной, а отсутствие разделени€ будет представл€ть проблему дл€ устойчивости сети.


>