УВЕРТЮРА — ПАДЕНИЕ ЧЕРНОГО ЯСТРЕБА

…Нелсон уловил вспышку и выхлоп дыма от выстрела из гранатомета. Затем кумулятивная граната полетела вверх. Взрыв. Хвост вертолета дал трещину, и ротор перестал крутиться. Весь вертолет задрожал и начал вращаться вокруг своей оси. Сначала медленно, затем все быстрее и быстрее… наклонился после удара о край здания и, повернувшись, упал в переулок на бок…

Марк Боуден. Падение Черного Ястреба

Потом придумали много причин провала американской операции в Могадишо — недооценка противника, слабая разведка, шаблонность действий и т. д. Между тем все становится предельно ясно, если посмотреть на структуру командования и принятую на тот момент схему коммуникаций, составленную позже А. Беккером: отсутствие быстрой непосредственной связи между конвоем, вертолетами, рейнджерами и бойцами подразделения «Дельта» сводило на нет все усилия в быстро меняющейся ситуации — солдаты попадали под перекрестный огонь из-за мгновенно возведенных баррикад там, где, по мнению командования, никаких баррикад не было...

ПРОЛОГ: СНОВА И СНОВА…

Безумие — делать одно и то же снова и снова и каждый раз ожидать иного результата.

Альберт Эйнштейн

Так происходит почти всегда, когда сложившиеся и устаревшие системы и принципы пытаются применить к новым реалиям, для которых они нерелевантны. На мой взгляд, ситуация с современным «сетестроением» созвучна пословице «Пока гром не грянет, мужик не перекрестится». Часто компании не только не инвестируют в модификацию устаревших архитектур, но и новые сети строят так, как делали это много лет назад.

Конечно, свойственная человеку инерция заставляет верить в архитектурные принципы, которые в нас заложили 15 лет назад вместе со знанием того, как правильно считать маски. Но, учитывая тенденции роста трафика, особенно в ЦОД (по разным оценкам, облачный трафик вырастет от 3 до 12 раз в ближайшей перспективе), полное фиаско в большинстве новых, но построенных по-старому сетей наступит скоро. В таких чувствительных вопросах, как организация адекватной связи, имеет смысл постараться быть проактивным и сделать выводы ДО того, как случилась беда.

ТЕОРЕТИЧЕСКИЙ МИНИМУМ — НА ТРИ ТАКТА, НАЧАЛИ…

В чем наша разница — вместо того чтобы крикнуть «Что же вы, . ..., делаете?!», мы думаем: «Что же они, …., делают».

Михаил Жванецкий

Попытаемся быть проактивными и поговорим о современных подходах к построению сетей в центрах обработки данных, а именно о технологиях построения распределенных фабрик коммутации — Transparent Interconnect a Lot of Links (TRILL) и Shortest Path Bridging (SPB). Однако сначала рассмотрим базовые понятия и технологические основы.

По историческим причинам сложилось так, что на рынке появились две очень похожие технологии маршрутизации на втором (L2) уровне — TRILL и SPB, суть которых состоит в том, что на базе протокола состояния канала (в обоих случаях используется IS-IS) рассчитывается топология сети коммутации и затем на основе этих расчетов передается трафик L2 между сетевыми устройствами (nodes). Почему используется именно IS-IS, объясним чуть позже. Итак, TRILL и SPB имеет смысл использовать:

  1. при построении больших, плоских L2-фабрик коммутации, где преобладают «горизонтальные» коммуникации сервер — сервер, например, для кластеризации, облачных вычислений, поддержки vMotion и т. д.;
  2. с целью объединения нескольких площадок в один общий домен L2, особенно когда площадок больше трех;
  3. при реализации мультивендорных решений, когда, например, сетевое оборудование нескольких производителей нужно каким-то образом встроить в общую инфраструктуру.

В последнем случае использование технологий организации стека наподобие IRF затруднительно в силу ряда ограничений, тогда как TRILL и SPB являются стандартами и поэтому должны быть одинаково реализованы на оборудовании всех вендоров, заявляющих об их поддержке.

Если сравнивать TRILL и SPB с другими технологиями, обеспечивающими в ЦОД связанность на втором уровне, то кратко суммировать эти различия можно следующим образом (см. Таблицу 1). Защиту от петель обеспечивают и традиционные технологии, в частности STP, но сходимость TRILL/SPB в случае сбоев на порядок лучше, чем в традиционных сетях, а эффективность использования доступных каналов связи (балансировка нагрузки) достигается в TRILL/SPB естественно и просто (в отличие от той же STP). Еще раз напомню, поскольку это очень важно, что TRILL и SPB — это стандартизированные протоколы, и их использование позволяет реализовать мультивендорные решения.

Таблица 1. Сравнение технологий.
Таблица 1. Сравнение технологий.

 

Обе технологии имеют определенные различия (см. Таблицу 2):

  • Поддержка множественных путей предусматривается в обоих протоколах.
  • Масштабируемость — TRILL поддерживает 4 тыс. VLAN, однако уже опубликован RFC, в котором описан механизм поддержки 16 млн VLAN; в SPB уже поддерживается до 16 млн VLAN. По размеру сети TRILL сегодня масштабируются до примерно 100 устройств (имеется в виду Routing Bridge), SPB потенциально может объединять до 1000 устройств.
  • У TRILL свой формат кадра, а SPB использует стандартный кадр MAC-in-MAC (стандарт IEEE 802.1ah).
  • В контрольной плоскости оба протокола используют IS-IS, однако TRILL пока не поддерживает четкую привязку VLAN к сервису, что затрудняет «растягивание» сервиса между устройствами.
  • Оба протокола обладают достаточно быстрой сходимостью — около 100 мс.
  • В SPB пути симметричные, в TRILL такое бывает не всегда.
  • Для многоадресной передачи в TRILL используются унифицированные деревья (не больше пяти-шести на домен), а в SPB дерево рассчитывается для каждого входного узла (ingress node), что эффективнее в плане распределения трафика, но затратнее с точки зрения вычислений.
  • В отличие от SPB, текущий вариант ОАМ в TRILL не поддерживается.
Таблица 2. Сравнение TRILL и SPB.
Таблица 2. Сравнение TRILL и SPB.

SPB MAC-IN-MAC — С РАССТАНОВКОЙ

Теперь подробнее поговорим о каждом протоколе, и начнем с SPB. Что же такое SPB и как эта технология работает? SPB Mac-in-Mac (SPBM) позволяет осуществлять множественную маршрутизацию (multipath routing) в смешанных сетях Ethernet на основе топологии, рассчитанной протоколом IS-IS, причем на каждом коммутаторе вычисляется свое собственное дерево Shortest Path Tree, а трафик инкапсулируется коммутатором в стандартные кадры MAC-in-MAC в соответствии со стандартом IEEE 802.1ah PBB (см. Рисунок 1).

Рисунок 1. Формат кадра IEEE 802.1ah PBB.
Рисунок 1. Формат кадра IEEE 802.1ah PBB.

 

Каждый Backbone Edge Bridge (BEB) при помощи IS-IS с дополнительным TLV (Type Length Value) анонсирует новые сервисы в виде I-SID (своего рода идентификатор сервиса) и B-MAC (Backbone MAC) всегда, когда на коммутаторе активируется новый сервис (другими словами, создается новый экземпляр виртуального сервиса — Virtual Service Instance, VSI — c назначенной ему VLAN). Эта информация разносится с помощью IS-IS, и про новую точку предоставления сервиса «узнают» остальные коммутаторы сети.

Посмотрим, как происходит передача трафика в SPB и как, в частности, обрабатывается широковещательный трафик (broadcast). На Рисунке 2 представлена схема стенда.

Рисунок 2. Передача широковещательного трафика.
Рисунок 2. Передача широковещательного трафика.

 

Предположим, виртуальная машина А должна отправить трафик виртуальной машине В. Машина А посылает запрос ARP на адрес машины B. Коммутатор В20 видит этот пакет, инкапсулирует его с указанием B-MAC, B-VLAN, I-SID и отправляет через свое дерево Shortest Path Tree на другие мосты BEB с тем же самым I-SID. Коммутатор В1 полученный кадр уже не разбирает и в соответствии со своей локальной таблицей SPBM FIB отправляет его на коммутатор В31. В31 разбирает кадр и рассылает его на интерфейсы, подключенные к данному сервису (VSI). Таким образом запрос ARP доходит до виртуальной машины В.

 

Рисунок 3. Передача целевого трафика.
Рисунок 3. Передача целевого трафика. 

 

На Рисунке 3 показано, как передается целевой (одноадресный) трафик (Unicast). МАС-адрес А уже известен, и В отправляет трафик машине А на определенный VSI. Коммутатор В31 инкапсулирует этот трафик с соответствующими данному сервису I-SID, B-VLAN и B-MAC и передает его по своему дереву SPT. В31 направляет кадр на В1 согласно локальной таблице SPBM. В1, основываясь на своей таблице SPBM, передает кадр на B20. B20 знает MAC-адрес машины А, разбирает кадр и направляет его на локальный хост А. При этом пути для одно- и многоадресного трафика в SPB симметричны.

Так передается трафик в сети SPB.

TRILL — ALLEGRO MODERATO

Теперь сравним механизмы работы TRILL и SPB. Но вначале немного теории. Основным устройством в сети TRILL является так называемый маршрутизирующий мост (Routing Bridge, RB), который выполняет все основные сетевые функции. Как и в случае с SPB, вместо Spanning Tree на нем выполняется протокол IS-IS, который рассчитывает сетевую топологию. При этом коммутаторы с поддержкой TRILL совместимы с коммутаторами, оснащенными традиционными сетевыми интерфейсами. Устройство с TRILL воспринимает старые коммутаторы просто как соединение между двумя маршрутизирующими мостами.

Рисунок 4. Формат пакета TRILL.
Рисунок 4. Формат пакета TRILL.

 

На Рисунке 4 приведены форматы пакетов TRILL. Они отличаются от пакетов SPB. Принципиальное отличие заключается в отсутствии поля для I-SID, идентифицирующего сервис, то есть в пакете TRILL не передается информация о сервисе, для которого этот трафик предназначен. В остальном форматы пакетов TRILL и SPB похожи, только между внешним и внутренним тегами добавляется еще один заголовок с EtherType = TRILL, в котором отдельно выделяются имена входного (ingress) и выходного (egress) коммутаторов TRILL.

Как же сеть TRILL передает трафик (см. Рисунок 5)? Допустим, хосту S1 необходимо отправить пакет на хост D1. S1 формирует пакет с MAC-адресом получателя D1 и VLAN 10 и отправляет его на Routing Bridge 1. Routing Bridge 1 определяет, что MAC-адрес D1 находится за Routing Bridge 3, а затем выясняет, что RB3 доступен через RB2, а RB2 — через порт 2 по такому-то MAC-адресу. Он формирует пакет с внешним MAC-адресом RB2, опорной виртуальной сетью VLAN 200 и отправляет трафик с новым заголовком на RB2. RB2 разбирает внешний заголовок, просматривает таблицы и определяет порт, MAC-адрес и внешнюю VLAN, на которых для RB2 доступен RB3. Затем RB2 «пересобирает» внешний заголовок пакета TRILL (заметьте, номер опорной VLAN поменялся на 300) и отправляет пакет на RB3 через соответствующий порт (в данном случае порт 4). Пакет доходит до RB3, который определяет, что этот MAC-адрес D1 находится за локальным интерфейсом RB3 и, удалив внешний заголовок, передает пакет на хост D1. Так одноадресный трафик передается по домену TRILL. При этом, трафик передается через один транзитный узел за другим (hop-by-hop) и внешний заголовок «пересобирается» на каждом коммутаторе заново.

Рисунок 5. Передача трафика в TRILL.
Рисунок 5. Передача трафика в TRILL.

 

Два слова о возможных типах портов. В TRILL, как и в обычной сети, выделяются три разновидности портов: порт доступа, к которому подключаются все оконечные устройства, магистральный (trunk) порт, через который проходит опорный (backbone) трафик, и гибридный — для связи домена TRILL с традиционными сегментами сети. Какие пакеты передаются через эти порты TRILL, показано на Рисунке 6.

Рисунок 6. Типы портов в TRILL.
Рисунок 6. Типы портов в TRILL.

 

Как видим, контрольные пакеты передаются по всем типам соединений. Пакеты данных без инкапсуляции TRILL — только через порты доступа и гибридные порты, но не магистральные. И наоборот, пакеты с инкапсуляцией TRILL — только через магистральные и гибридные порты, но не порты доступа.

Как упомянуто выше, в качестве протокола контрольной плоскости и в TRILL, и в SPB используется IS-IS. Он выбран потому, что, в отличие от других протоколов, работает на канальном уровне (link), а также достаточно быстро сходится и поддерживает гибкое добавление новых TLV. При этом TRILL определяет новые TLV в IS-IS для передачи топологической информации о сети — VLAN ID, псевдонимы (Nickname), за которыми эти VLAN расположены, и т. д.

Кроме того, как и в традиционных сетях, на основе приоритета мостов выбирается выделенный маршрутизирующий мост (Designated Routing Bridge). При равенстве приоритетов в качестве дополнительных критериев выбора используется MAC-адрес, порт или SystemID. После этого для каждой VLAN выбирается так называемый назначенный транспортный агент VLAN (Appointed VLAN Forwarder, AVF) — RB. Наконец, определяется VLAN для контрольного трафика TRILL, задается Circuit ID для LSP и затем распространяются CSNP. При этом Designated RB является Appointed VLAN Forwarder для все открытых на нем VLAN, а для остальных RB AVF назначаются в соответствии с SystemID, где в процессе выбора побеждает RB с наибольшим SystemID.

Что касается загрузки каналов, то TRILL поддерживает балансировку на основе ECMP. Для передачи многоадресного/широковещательного/неизвестного/одноадресного трафика используются деревья. В принципе, чтобы сеть работала нормально, достаточно одного дерева, но в целях балансировки нагрузки деревьев может быть несколько. Для данного корня дерево вычисляется на основе информации о соединениях между коммутаторами. Чтобы «договориться» о количестве деревьев и параметрах их расчета, коммутаторы обмениваются соответствующей информацией в LSP.

ПРАКТИКУМ — В ТЕМПЕ ALLEGRO

При проектировании сети TRILL возникает много принципиальных вопросов:

  • Как присоединить сеть TRILL L2 к шлюзу L3?
  • Как трафик попадет в L2-сеть TRILL/SPB?
  • Как осуществляется серверный доступ в TRILL RB или SPB BEB?
  • Как унаследованный коммутатор L2 станет функционировать в связке с TRILL RB или SPB BEB?
  • Будет ли использоваться VRRP? Если да, то каким образом?
  • Как применять IRF?
  • Каковы требования к HA?

Для ответа на эти вопросы лучше рассматривать конкретные реализации SPB/TRILL. На Рисунке 7 приведена типичная схема сети TRILL на базе оборудования HP Networking.

Рисунок 7. Типичная схема сети TRILL.
Рисунок 7. Типичная схема сети TRILL.

 

12900-е собирают при помощи технологии IRF в стек, который устанавливается в ядро сети, на них же можно запустить и L3. В качестве коммутаторов доступа используются устройства серии 5900, причем в данном случае LAGG не понадобится, так как за множественные пути L2 отвечает TRILL, хотя LAGG позволяет сократить количество путей и весь домен будет сходиться быстрее за счет упрощения общей топологии сети.

Таблица 3. Поддержка TRILL/SPB в оборудовании HP Networking.
Таблица 3. Поддержка TRILL/SPB в оборудовании HP Networking.

 

В Таблице 3 приведено оборудование HP Networking, которое уже поддерживает TRILL и SPB, и на его базе можно реализовать полнофункциональные решения. Из больших коммутаторов TRILL поддерживают устройства серий 10500, 11900 и 12900; из коммутаторов поменьше, уровня ToR или ядра серверной, — серии 7900 и 5900. SPB поддерживается на всех перечисленных линейках, кроме 10500.

Один из ключевых вопросов, возникающий при проектировании TRILL/SPB, состоит в организации разгрузки L3 Offload — точки, в которой трафик L2 превращается в L3. Возможны три варианта реализации L3 Offload:

  • организация внешней петли на устройстве;
  • разгрузка внутри коммутатора на микросхеме, например на 11900;
  • использование Multitenant Device Context (MDC).

Первый способ — подключить внешнюю петлю и назначить TRILL Appointed Port, подсоединенный к интерфейсу L3. Чтобы не возникло петли L2 на порту доступа, используется VLAN Mapping и включается защита от образования петель (loopback protection). Такой вариант может быть настроен для большого количества разных VLAN. Важный момент, на который следует обратить внимание при настройке, — порт доступа не должен нести обе VLAN (и Source VLAN, и Translated VLAN), иначе это может привести к формированию петли L2.

Другой способ заключается в использовании внутреннего межсоединения, реализованного на базе ASIC. Фактически это позволяет добиться тех же результатов, что и организация внешней петли. К сожалению, данная опция доступна не на всех моделях коммутаторов, поддерживающих TRILL/SPB.

Третий способ — организовать L3 Offload на отдельном устройстве, выделенном для терминирования L3, либо делать это в отдельном контексте MDC того же коммутатора.

ПРИМЕРЫ СЕТИ НА БАЗЕ HP NETWORKING — PRESTO

В завершение поговорим о том, как настроить работающую сеть, где используется оборудование HP Networking. Начнем с SPB. На Рисунке 8 приведена схема тестовой сети с SPB.

Ядро сети SPB с опорными мостами магистрали (Backbone Core Bridge, ВСВ) представляет собой объединенные в стек IRF коммутаторы серии 12504, к которым подключены граничные устройства сети SPB (Backbone Edge Bridge, BEB). В качестве BEB данной сети выступают коммутаторы серии 5900, а также стек из двух устройств серии 12504 (на схеме 12504-1-С).

Таблица 4. Общие особенности конфигураций SPB и VPLS.
Таблица 4. Общие особенности конфигураций SPB и VPLS.

 

Если присмотреться к конфигурации внимательно, можно увидеть, что конфигурации SPB и VPLS похожи (см. Таблицу 4).

Рисунок 8. Схема тестовой сети SPB.
Рисунок 8. Схема тестовой сети SPB.

 

В завершение приведем результаты тестирования разных вариантов отказа в схеме, представленной на Рисунке 8 (см. Таблицу 5).

Таблица 5. Результаты тестирования SPB.
Таблица 5. Результаты тестирования SPB.

 

Дальше поговорим о TRILL. На Рисунке 9 приведена схема стенда TRILL.

Рисунок 9. Схема стенда TRILL.
Рисунок 9. Схема стенда TRILL.

 

В качестве TRILL Spine в этой сети используются коммутаторы 5900, 11900 и 12900, объединенные в IRF, а 12900 еще и разделены на контексты. Периферийные коммутаторы — серии 5900. При этом Spine 1, 2 и 3 находятся в одной области OSPF Area; отношения смежности OSPF (OSPF Adjacency) устанавливаются через канал L3 или интерфейсы VLAN между RB Spine и между каждым RB Spine и ядром L3. Балансировка нагрузки на основе VRRP используется для равномерного распределения трафика из сети TRILL наружу, BGP ECMP балансирует трафик из внешних сетей в домен TRILL.

В Таблице 6 приведены результаты тестов отказа разных узлов сети TRILL.

Таблица 6. Результаты тестирования TRILL.
Таблица 6. Результаты тестирования TRILL.

 

Общие выводы по результатам тестирования TRILL/SPB можно кратко суммировать следующими тезисами:

  • Балансировка нагрузки
  1. Трафик локальных сетей от разных клиентов может быть распределен между несколькими путями с равной стоимостью.
  2. Множественные маршруты L2 и L3 могут функционировать одновременно.
  • Комбинирование IRF и SPB/TRILL
  1. Оптимальный дизайн фабрики L2 и лучшая масштабируемость.
  • Высокая доступность
  1. Сходимость менее 1 с (или близко к ней) в большинстве сценариев сбоя.
  2. Нужно обращать внимание на использование GR.
  • Высокая производительность
  1. Каналы активный/активный на всей фабрике L2.

ЭПИЛОГ — ADAGIO…

Мир, вероятно, спасти уже не удастся, но отдельного человека — всегда можно.

И. Бродский. Нобелевская лекция

Провал американской операции в Сомали имел большой резонанс. После того как по телевидению показали растерзанный труп солдата, который торжествующие сомалийцы волокли по улице, история, живо напомнившая американцам Вьетнам, получила общенациональный резонанс. Общественное давление заставило администрацию Билла Клинтона вывести войска из Сомали, а министра обороны США — подать в отставку.

Недоступность одного ЦОД вряд ли будет иметь столь же катастрофические последствия, как падение одного Черного Ястреба. Однако, поскольку современные войны перемещаются в онлайн, уже в недалеком будущем можно ожидать, что масштабы проблем будут сопоставимы. И тогда вопросы о том, как организована связь между подразделениями спецслужб США в Могадишо и как связаны между собой вычислительные мощности в ЦОД, станут примерно равноценными.

Денис Сереченко — менеджер по развитию бизнеса HP Networking.