Собрать DIY-коммутатор — примеры любительских проектов
В одном из предыдущих материалов мы уже рассказывали про самый маленький open source коммутатор, который собрала команда американских школьников, участвовавших в соревнованиях по робототехнике. Сегодня мы решили продолжить тему и рассказать о других подобных проектах. Многие инженеры собирают компактные свитчи в качестве хобби, желая разобраться в их устройстве, поэтому DIY-коммутаторов становится больше.
Фотография: Thomas Jensen / Unsplash.com
Кастомный Linux-свитч
Разработчик Мартин Браам из Нидерландов решил изучить устройство коммутаторов. По его мнению, лучшим способом сделать это, было собрать собственный свитч. Для своего проекта инженер выбрал достаточно известный Realtek RTL8367S с пятью разъёмами RJ-45 и двумя разъёмами для подключения к CPU. Настройка прошла не без сложностей. В документации были описаны несколько способов, но не было информации о том, как заставить устройство работать в роли «глупого» коммутатора. По итогу инженер использовал метод перебора и просто перепаивал контакты в различных комбинациях.
Следующим этапом стала работа с Ethernet. Инженер отрисовал тестовую схему, но позже в неё пришлось внести изменения. Он забыл включить в неё конденсатор между трансформатором и землей. Чтобы исправить проблему, инженер решил просто обрезать заземляющие контакты трансформатора и убрать замыкание.
В вопросе подключения к Linux, Браам выбрал плату PINE64 A64-LTS, потому что она имела удачное расположение портов и поддерживала деревья устройств. Он пересобрал ядро для платы, так как в стандартной конфигурации необходимые ему модули были деактивированы (в частности, CONFIG_NET_SWITCHDEV, CONFIG_NET_DSA_TAG_RTL8_4, CONFIG_NET_DSA_REALTEK и другие), а также модифицировал дерево устройств.
Коммутатор Браама привлек внимание резидентов Hacker News. Участники сообщества с интересом встретили проект и предложили несколько улучшений. Например, один инженер озвучил мнение, что можно было использовать маршрутизатор с поддержкой OpenWRT, который предлагает интерфейс для настройки VLAN и других опций.
От «глупого» к управляемому коммутатору
Похожий проект реализовал инженер Йерун Домбург. Он решил модернизировать домашнюю сеть: заменить кабели и проапгрейдить коммутатор TP-Link TL-SG1005D и превратить его в управляемый. В устройстве был установлен Realtek RTL8366SB, способный поддерживать такие функции, как VLAN и зеркалирование портов (port mirroring). Домбург доработал прошивку, которая позволила настроить коммутатор через интерфейс I2C (Inter-Integrated Circuit) с помощью микроконтроллера AVR. После чего инженер добавил к RTL8366SB 8-битный микроконтроллер ATMega88, используя технику dead-bug монтажа, когда компоненты паяются друг к другу напрямую.
RTL8366SB использует нестандартную реализацию протокола I2C, поэтому инженеру потребовалось разработать специализированный драйвер. Он должен был учитывать особенности чипа, такие как дополнительные тактовые циклы и нестандартные последовательности чтения/записи. В процессе разработки интерфейса для настройки VLAN Йерун Домбург столкнулся ещё с одной проблемой. Когда он впервые считал все регистры устройства, ни одно из полученных значений не совпадало с описанием в документации. Оказалось, что она была написана для RTL8366, но ему повезло найти код, реализующий Linux-драйвер для чипа с аналогичным набором регистров. Исходный код проекта доступен по GPLv3 (ссылка для скачивания архива на сайте разработчика).
Другие открытые разработки
Существуют и другие примеры open source коммутаторов — в частности, SatCat5. Он разработан для маломощных аппаратов, например, устройств интернета вещей. SatCat5 поддерживает различные протоколы связи, включая стандартный Ethernet, I2C, SPI и UART. Такое разнообразие позволяет интегрировать в единую сеть устройства с различными интерфейсами, что особенно важно в условиях ограниченных ресурсов. Энергопотребление SatCat5 составляет всего 0,2–0,7 Вт. Коммутатор поддерживает PTP (Precision Time Protocol), который важен для многих научных и промышленных приложений. Для описания аппаратной части используется язык VHDL, поэтому SatCat5 можно адаптировать под разные FPGA-платформы.
Фотография: Patrick Turner / Unsplash.com
Пример другого open source проекта — Open vSwitch (OVS), который распространяется под лицензией Apache 2.0. Этот многофункциональный виртуальный коммутатор спроектирован для управления сетевой инфраструктурой в виртуализированных средах. Коммутатор поддерживает работу с магистральными портами, способными передавать трафик нескольких VLAN, а также с портами доступа, ограниченными одной VLAN.
Высокая производительность достигается за счет оптимизации под сетевые интерфейсы с аппаратным ускорением (DPDK). Гибкость OVS позволяет интегрировать его с различными технологиями виртуализации на базе Linux. Например, с KVM — встроенной в ядро Linux системой виртуализации, и Xen-гипервизором, обеспечивающим параллельную работу нескольких операционных систем на одном устройстве. Центральный компонент Open vSwitch — демон ovs-vswitchd, реализующий основную функциональность. За управление конфигурацией отвечает легковесный сервер базы данных ovsdb-server. OVS позволяет строить программно-определяемые сети (SDN), так как поддерживает протокол OpenFlow для централизованного управления трафиком и маршрутизацией. Это — одна из причин, по которой OVS находит применение в дата-центрах. Часто OVS интегрируется с инструментами для построения облачной инфраструктуры, такими как OpenStack и Kuberenetes. Также свитч часто применяют в SDN-решениях.
Что еще почитать в нашем блоге на Хабре и не только:
Миниатюрный коммутатор с открытым исходным кодом. Группа школьников из Нью-Гэмпшира сконструировала компактное сетевое устройство под названием mrxSwitch. Обсудим, каким образом проект, изначально задуманный для состязаний по подводной робототехнике, эволюционировал в общедоступный продукт. Также посмотрим на мнения и схожие разработки вроде SwitchBlox и PE-505.
Больше, чем Quagga — пакет для маршрутизации FRRouting. Обсудили возможности пакета, мнения, отличия от предшественника Quagga и альтернативы — BIRD и ExaBGP. Показываем, что у FRRouting под капотом — в частности, архитектуру с набором демонов под каждый протокол.
Построить топологию и проверить отказоустойчивость — подборка open source решений для эмуляции сетей. Рассмотрели несколько сетевых эмуляторов и симуляторов — Containerlab, Mininet, Kathará, IMUNES и другие. Обсудили их возможности и области применения.
В копилку уязвимостей BGP — как устроена атака Kirin. Наш обзорный материал, в котором мы рассказываем про новую атаку на BGP протокол, направленную на перегрузку маршрутизаторов. Она использует тысячи подключений, что позволяет злоумышленникам обойти традиционные механизмы защиты. В качестве противодействия инженеры APNIC рекомендуют администраторам следить за размерами таблиц маршрутизации и настраивать ограничения по числу префиксов.
Когда мобильная сеть недоступна: зачем запускают звонки через интернет. Рассматриваем пять основных подходов к настройке звонков по Wi-Fi (от UMA до OTT), а также предлагаем обсудить перспективы технологии. Еще говорим о том, почему она привлекает операторов связи и частный бизнес. Спойлер: она позволяет расширить зону покрытия собственной и привлекать клиентов в местах с проблемным доступом (например, в поездах).
Выявление уязвимостей в сети оператора. Тематический вебинар, посвященный ключевым угрозам, с которыми сталкиваются операторы связи, и методам их эффективного решения. В одном из докладов Артём Терещенко, эксперт из VAS Experts, рассказал о том, как QoE-метрики помогают обнаруживать сетевые аномалии и отслеживать качество работы сети в реальном времени.