NetDev
Общее описание
NetDev - промышленная GNU/Linux-платформа, созданная на основе Sisyphus. Изначально разрабатывалась для софтроутеров (то есть, Linux-серверов, выполняющих функции высоконагруженного сетевого оборудования - например, опорных (core) и магистральных (border) маршрутизаторов), но также может применяться как на обычных серверах, так и в качестве встраиваемой ОС для промышленного оборудования.
Концепция
При разработке основное внимание уделяется стабильности работы и безопасности, эстетика и (в отдельных случаях) эргономика вторичны. Программные компоненты настраиваются или, при необходимости, модифицируются (например, пересобираются) с целью переноса обработки на максимально низкий уровень (из userspace в ядро - хорошо, из ядра в специализированное оборудование - еще лучше), минимизации установочных зависимостей (если X в принципе может работать без Y, пакет X ни при каких условиях не должен требовать установки пакета Y, иначе пакет X вообще не попадет в систему), обеспечения безопасных настроек по умолчанию или понижения привилегий.
Состояние
Весна 2019 года:
- доступен собственный репозитарий пакетов, сборка которых отличается от "офисного" Sisyphus
- начата опытная эксплуатация в сетях дружественных интернет-провайдеров (виртуализация, софтроутеры, почтовые серверы, web-хостинг, IP-телефония)
- опубликованы инструменты для полностью автоматической установки и обеспечения сетевой загрузки (пакет installworld в Sisyphus)
- начата работа над сборками для архитектур, отличных от x86_64
Поддержка сетевой установки
Основная идея: администратор может вообще не подходить к серверу (в датацентр его занесли грузчики, в стойку поставили и провода подключили техники, а дальше "оно само"). Реализация: PXE в native VLAN, загруженная по сети система получает адрес по DHCP и становится доступной по SSH, из нее выполняется установка с настройкой тегированных VLANов, а после загрузки установленной системы native VLAN вообще не используется (либо используется при необходимости загрузки rescue-системы).
Поддержка технологии SwitchDev
Система поддерживает работу с устройствами SwitchDev в объеме, предоставляемом ядром Linux (параметр CONFIG_NET_SWITCHDEV и далее по разделу). Тестирование производилось на коммутаторе Mellanox SN2100 - его удалось превратить в магистральный маршрутизатор, способный без особого труда обработать 10 full view IPv4 и IPv6.
Отбракованные компоненты
Этот раздел содержит список пакетов, в отношении которых было принято решение об их исключении из базовой системы (разумеется, администратор может их поставить на свое усмотрение, но система их не требует и по умолчанию они отсутствуют). Как правило, причинами для этого служили существенное снижение стабильности работы или возрастание стоимости эксплуатации.
- alternatives - "противоестественный интеллект", который только усложняет администрирование
- bridge-utils, ifplugd, ifrename, ipset, net-tools, vlan-utils - полностью заменены на iproute2
- etcnet, NetworkManager - заменены на специально разработанный rcnet
- grub, lilo - заменены на syslinux (extlinux локально, pxelinux для сетевой загрузки)
- systemd - снижает стабильность системы и заметно (на 10...15%) увеличивает стоимость эксплуатации
- udev - в подавляющем большинстве случаев достаточно ядерного CONFIG_DEVTMPFS
Отбракованные технологии
Для осуществления удаленного доступа к системе с целями администрирования или мониторинга было принято решение запретить использование заведомо ненадежных и недоверенных криптоалгоритмов:
- любых алгоритмов симметричного шифрования в режиме сцепления блоков (CBC)
- алгоритмов шифрования с открытым ключом DSA и ECDSA
- хеш-функций с размером слова состояния менее 256 битов