Материал переведен. Ссылка на оригинал
В начале 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, а всей платформой можно было управлять, как единым логическим коммутатором.
Внедрение коммутационной матрицы стало крупным прорывом в эволюции пиринговых платформ 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.
Основные особенности реализации 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, предлагаем узнать про специализацию.
Также всех желающих приглашаем на двухдневный онлайн-интенсив "Настройка небольшого офиса".