Материал переведен. Ссылка на оригинал

В начале 2021 г. Namex IXP начала развертывание своей пиринговой платформы нового поколения — активной инфраструктуры, которая лежит в основе их сетевого взаимодействия. Новая платформа основана на архитектуре IP-фабрики с VXLAN в качестве overlay сети и BGP EVPN в качестве control plane протокола. Разработка этого проекта началась еще в марте 2020 года, основными техническими партнерами которого были Mellanox и Cumulus Networks (которые сейчас являются частью компании NVIDIA).

Прежде чем углубляться в детали, я приведу краткую историческую справку, которая поможет понять причины и способствующие факторы, приведшие к таким техническим решениям.

Масштабирование и сложность: эволюция пиринговой платформы

Проработав инженером технической поддержки Namex почти 20 лет, мне посчастливилось поучаствовать в разработке нескольких поколений основной пиринговой платформы. Далее последует краткое описание того, как происходила эта эволюция и предпосылки к ней. Но имейте ввиду: здесь описана лишь эволюция Namex, и не предполагается, что это путь каждой Internet Exchange во вселенной, но тем не менее он может отражать опыт других IXP, которые разрослись от небольшого ядра до пользовательских баз среднего размера.

В самой примитивной форме пиринговая платформа представляет собой инфраструктуру, которая обеспечивает L2 связанность между пользовательскими (CE) маршрутизаторами, в еще более простой форме: это коммутатор с виртуальными локальными сетями (VLAN)!

Ключевые особенности, являющиеся определяющими для технологий пиринговой платформы, можно резюмировать следующим образом:

  • Плотность портов: общее количество сетевых портов (портов коммутатора), которые могут быть предоставлены пользователям.

  • Технология портов: тип (т.е. скорость и среда передачи данных) портов, которые могут быть предоставлены пользователям.

  • Коммутационная способность: общая пропускная способность сети, которую поддерживает платформа.

  • Отказоустойчивость: способность платформы обеспечивать непрерывность обслуживания, даже когда некоторые ее части выходят из строя. Это подразумевает определенный уровень избыточности как железа, так и программных компонентов.

  • Обслуживаемость: простота использования, настройки и устранения неполадок платформы в целом.

Факторов, определяющих эволюцию, в основном два, и они взаимосвязаны: управление масштабом и связанной с ним сложностью. Подробнее мы обсудим это чуть позже.

Истоки: монолиты

Поначалу у нас были довольно громоздкие коммутаторы...

В начале 2000-х годов особого выбора коммутаторов не было и только одна архитектура подходила по всем главным критериям. Она представляла собой монолитный модульный коммутатор состоящий из корпуса, поддерживающего распределение питания, шины данных и нескольких линейных карт для решения некоторых задач, связанных с подключением.

Раньше пиринговые коммутаторы были большими и тяжелыми

Когда я только пришел в Namex, пиринговая платформа состояла из пары коммутаторов Cabletron SSR-8000, оснащенных в основном линейными картами FastEthernet и несколькими (оптоволоконными) картами GigabitEthernet. Плотность портов была достаточно скромной, но соответствовала размеру пользовательской базы. Отказоустойчивость и избыточность достигались в основном за счет наличия сразу двух устройств, поддерживающих две логически и физически разделенные пиринговые локальные сети. У пользователей была возможность подключаться к одной или обеим локальным сетям с разными IP-адресами. По сути, это была сеть звездообразной топологии, без необходимости управлять межкоммутаторными соединениями со всеми вытекающими петлевыми сложностями.

С ростом пользовательской базы естественным решением стало заменить каждое устройство на устройство побольше, в данном случае выбор пал на Enterasys Matrix N7 и Cisco Catalyst 6509-E, которые с некоторыми ограничениями позволяли нам использовать 10-гигабитный Ethernet.

Эта архитектура достигла своих пределов примерно через 5-6 лет эксплуатации. Прирост масштаба мог быть обеспечен только за счет использования более крупных и массивных коммутаторов, что также давало нежелательные побочные эффекты, например концентрация всех сетевых подключений в двух горячих точках, в то время как датацентр рос и абонентское оборудование заполняло все больше пространства.

Первым временным решением стало добавление третьего коммутатора (а именно, Cisco Catalyst 6506-E), который был добавлен к уже существующей паре для увеличения плотности портов. Так появилась необходимость в межкоммутаторных соединениях и, как следствие, в дополнительном управлении сложностью, что в конечном итоге привело к появлению платформ второго поколения.

Второе поколение: коммутационные матрицы (switching fabrics)

Армия небольших, хорошо скоординированных коммутаторов…

В 2012–2013 годах из-за постоянного роста потребительской базы и расширения площади датацентра технологический прорыв был просто неизбежен. Предыдущий опыт показал, что масштабироваться можно, добавляя новые устройства, а не увеличивая существующие. К тому же, в то время поставщики, движимые тенденциями к росту датацентров и виртуализации, начали предлагать модели коммутаторов, которые были меньше по размеру и с большей плотностью портов. Но в стремлении найти топологическую схему, которая бы одновременно была бы и отказоустойчивой и без петель (loop-free), добавление коммутаторов добавило головной боли в виде сложности сети.

К счастью, в то время поставщики выводили на рынок несколько технологий, которые попадали в категорию так называемых коммутационных матриц (switching fabrics): эти механизмы позволяли соединять коммутаторы несколькими путями без необходимости напрямую управлять протоколами предотвращения образования петель, таким как STP.

Выбор пал на Brocade (ныне приобретенная Extreme Networks) с ее технологией коммутации виртуальных кластеров (Virtual Cluster Switching), поддерживаемой протоколом TRILL, которая используется в коммутаторах серии VDX. Эта технология позволила нам спроектировать сеть, состоящую из шести узлов, связанных между собой mesh-сетью 2x10G каналов. Узлы включали пару коммутаторов Brocade VDX-8770 (с меньшим, более компактным модульным корпусом) и четыре легких top-of-rack коммутатора  Brocade VDX-6740. О всей топологии (петлях!) и вопросах балансировки трафика автомагически позаботился внутренний протокол TRILL, а всей платформой можно было управлять, как единым логическим коммутатором.

Первоначальное архитектурное предложение Brocade для платформы второго поколения Namex

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

  • Масштабирование за счет увеличения количества узлов.

  • Освобождение от излишней сложности с помощью прозрачного (TRILL) протокола управления.

  • Внедрение некоторого подобия Spine-Leaf архитектуры (в данном случае — не чистого варианта архитектуры).

  • Сокращение занимаемой площади и энергопотребления (и расходов) с помощью более компактных и эффективных устройств.

В целом, коммутатор Brocade VCS показал себя как правильное решение и доказал свою эффективность, отказоустойчивость и стабильность, до сих пор работая безупречно (поскольку он все еще находится в продакшене до полного развертывания новой платформы). С появлением потребности в 100 Гбит/с выявились присущие ему ограничения, поскольку платформа VDX имела ограниченную поддержку 100-гигабитного Ethernet в виде 4-портовых линейных карт с устаревшими портами CFP2, исключительно на корпусе серии 8770.

Это подтолкнуло нас к последнему рывку в создании платформ следующего поколения...

Новое поколение: IP-фабрики (IP fabrics)

Старый добрый IP и BGP пришли на помощь...

Коммутационные матрицы проложили дорогу для развития другого подхода к проектированию больших межсетевых L2 платформ, но в то же время производители постепенно отказывались от технологий коммутационных матриц в пользу IP-фабрик и overlay сетей. Примерно в 2017/2018 годах, когда стала нависать потребность в подключении 100-гигабитного Ethernet, потребовался новый эволюционный скачок.

Рекомендации по проектированию новой платформы в целом основывались на предыдущем опыте:

  • Масштабируемость за счет добавления узлов в сочетании с чистой leaf-spine архитектурой.

  • В основном прозрачный протокол управления.

  • Поддержка более высокой пропускной способности (40G/100G) и плотности портов.

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

Более того, чтобы спроектировать по настоящему перспективную архитектуру, которая могла бы удержаться на рынке хотя бы 10 лет (по крайней мере, в своих концептуальных основах), внимание было направлено на полное разделение между аппаратной платформой (узлами) и уровнем программного управления (сетевой операционной системой), что привело нас к концепции открытых сетей (open networking).

Все эти факторы в конечном итоге привели к выбору NVIDIA Mellanox в качестве поставщика оборудования вместе с NVIDIA Cumulus Linux в качестве сетевой ОС в сочетании с разработанной нами от начала и до конца платформой конфигурации на основе Ansible.

Платформа состоит из двух spine узлов Mellanox SN2700 (32 порта по 100G) с четырьмя узлами Mellanox SN2100 (16 портов по 100G) и четырех Mellanox SN241048 (48 портов по 10G + 8 портов по 100G). Каждый leaf узел связан с помощью 2x100G каналов с любым spine узлом, таким образом на выходе от любого leaf узла получая шину в 400G.

 

Базовая архитектура платформы нового поколения Namex 

Основные особенности реализации IP-фабрики на базе VXLAN и BGP/EVPN:

  • Все узлы должным образом сообщаются между собой, как L3 устройства (маршрутизаторы).

  • Пользовательский трафик коммутируется на узле локально, но маршрутизируется по мере прохода между различными узлами.

  • Пользовательский трафик, входящий в leaf узел и направляющийся в удаленный leaf узел, упаковывается в UDP пакеты, а затем маршрутизируется между узлами.

  • Тоннели устанавливаются между любыми leaf узлами, которые обеспечивают упаковку и перенаправление L3 в фреймы L2.

  • Протокол BGP служит для обмена информации о достижимости MAC-адреса между узлами, с помощью дополнительного семейства «evpn» адресов.

  • BGP ECMP (Equal Cost Multipath) используются для балансировки трафика по нескольким путям между leaf узлами

В двух словах, использование IP в качестве базового протокола «фабрики» в сочетании с протоколом BGP для динамичного управления путями данных обеспечивает стабильность и простоту использования, тем самым окончательно преодолевая проблемы сложности mesh сетей L2. Более подробно мы углубимся в технические детали в следующей части.

Материал переведен. Ссылка на оригинал


Материал подготовлен в рамках курса "Network engineer". Если вас интересует развитие в работе с сетями с нуля до Pro, предлагаем узнать про специализацию.

Также всех желающих приглашаем на двухдневный онлайн-интенсив "Настройка небольшого офиса".