NetDev: различия между версиями

Материал из ALT Linux Wiki
м (опечатка в ECDSA; lilo в отбраковку)
(актуализация, ссылка на загрузку тестовых образов флешек)
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
== Общее описание ==
== Общее описание ==
NetDev - промышленная GNU/Linux-платформа, созданная на основе [[Sisyphus]]. Изначально разрабатывалась для софтроутеров (то есть, Linux-серверов, выполняющих функции высоконагруженного сетевого оборудования - например, опорных (core) и магистральных (border) маршрутизаторов), но также может применяться как на обычных серверах, так и в качестве встраиваемой ОС для промышленного оборудования.
NetDev - промышленная GNU/Linux-платформа, созданная на основе [[Sisyphus]]. Изначально разрабатывалась для софтроутеров (то есть, Linux-серверов, выполняющих функции высоконагруженного сетевого оборудования - например, опорных (core) и магистральных (border) маршрутизаторов), но также может применяться как на обычных серверах, так и в качестве встраиваемой ОС для промышленного оборудования.


== Концепция ==
== Концепция ==
При разработке основное внимание уделяется стабильности работы и безопасности, эстетика и (в отдельных случаях) эргономика вторичны. Программные компоненты настраиваются или, при необходимости, модифицируются (например, пересобираются) с целью переноса обработки на максимально низкий уровень (из userspace в ядро - хорошо, из ядра в специализированное оборудование - еще лучше), минимизации установочных зависимостей (если X в принципе может работать без Y, пакет X ни при каких условиях не должен требовать установки пакета Y, иначе пакет X вообще не попадет в систему), обеспечения безопасных настроек по умолчанию или понижения привилегий.
При разработке основное внимание уделяется стабильности работы и безопасности, эстетика и (в отдельных случаях) эргономика вторичны. Программные компоненты настраиваются или, при необходимости, модифицируются (например, пересобираются) с целью переноса обработки на максимально низкий уровень (из userspace в ядро - хорошо, из ядра в специализированное оборудование - еще лучше), минимизации установочных зависимостей (если X в принципе может работать без Y, пакет X ни при каких условиях не должен требовать установки пакета Y, иначе пакет X вообще не попадет в систему), обеспечения безопасных настроек по умолчанию или понижения привилегий.


== Состояние ==
== Состояние ==
Начало 2018 года - нерегулярные экспериментальные выпуски установочных ONIE-образов с базовой платформой. Реализованы: 802.1q VLAN, VLAN renumbering, 802.3ad LACP, STP, маршрутизация (протоколы IPv4 и IPv6, OSPF, BGP, VRF-lite. Доступ для администрирования - через консоль (в том числе на последовательном порте) или по протоколу SSH.
Весна 2020 года:
* доступен собственный репозитарий пакетов, сборка которых отличается от "офисного" Sisyphus
* начата опытная эксплуатация в сетях дружественных интернет-провайдеров (виртуализация, софтроутеры, почтовые серверы, web-хостинг, IP-телефония)
* опубликованы инструменты для полностью автоматической установки и обеспечения сетевой загрузки (пакет installworld в Sisyphus)
* проект получил название Diogenes - как нетрудно догадаться, в честь основателя философского направления цинизма... ну, который еще был в каждую бочку затычкой :-)
* по адресу http://ftp.altlinux.org/pub/projects/diogenes/boot/ эпизодически выкладываются образы загрузочных флешек (должны работать при загрузке через BIOS, EFI и, с минимальной ручной настройкой, PXE). Не пугайтесь, если обнаружите в <tt>~root/.ssh/authorized_keys</tt> ключи сборщика - их туда кладет <tt>postinstall(8)</tt>, логика работы которого еще будет неоднократно меняться.
* начата работа над сборками для архитектур, отличных от x86_64 (прежде всего ARM64).


== Поддержка сетевой установки ==
Основная идея: администратор может вообще не подходить к серверу (в датацентр его занесли грузчики, в стойку поставили и провода подключили техники, а дальше "оно само").
Реализация: PXE в native VLAN, загруженная по сети система получает адрес по DHCP и становится доступной по SSH, из нее выполняется установка с настройкой тегированных VLANов, а после загрузки установленной системы native VLAN вообще не используется (либо используется при необходимости загрузки rescue-системы).


== Поддержка технологии SwitchDev ==
== Поддержка технологии SwitchDev ==
Система поддерживает работу с устройствами SwitchDev в объеме, предоставляемом ядром Linux (параметр CONFIG_NET_SWITCHDEV и далее по разделу). Тестирование производилось на коммутаторе [https://mellanox.com Mellanox] SN2100, который после установки и настройки пакета [http://bird.network.cz BIRD] удалось превратить в полноценный маршрутизатор.
Система поддерживает работу с устройствами SwitchDev в объеме, предоставляемом ядром Linux (параметр CONFIG_NET_SWITCHDEV и далее по разделу). Тестирование производилось на коммутаторе [https://mellanox.com Mellanox] SN2100 - его удалось превратить в магистральный маршрутизатор, способный без особого труда обработать 10 full view IPv4 и IPv6.


== Поддержка ONIE ==
Протестирована автоматизированная сборка образов ONIE (Open Network Install Environment) для установки системы на сетевое оборудование. К сожалению, единственным таким устройством у нас в настоящий момент является упомянутый чуть выше SN2100.


== Отбракованные компоненты ==
== Отбракованные компоненты ==
Этот раздел содержит список пакетов, в отношении которых было принято решение о запрете их включения в систему. Как правило, причинами для этого служили существенное снижение стабильности работы или возрастание стоимости эксплуатации.
Этот раздел содержит список пакетов, в отношении которых было принято решение об их исключении из базовой системы (разумеется, администратор может их поставить на свое усмотрение, но система их не требует и по умолчанию они отсутствуют). Как правило, причинами для этого служили существенное снижение стабильности работы или возрастание стоимости эксплуатации.
* alternatives
* alternatives - "противоестественный интеллект", который только усложняет администрирование
* bridge-utils, ifplugd, ifrename, ipset, net-tools, vlan-utils - полностью заменены на iproute2
* bridge-utils, ifplugd, ifrename, ipset, net-tools, vlan-utils - полностью заменены на iproute2
* devmapper - содержит ошибки, приводящие к потере данных
* etcnet, NetworkManager - заменены на специально разработанный rcnet
* etcnet, NetworkManager - заменены на специально разработанный rcnet
* grub, lilo - заменены на syslinux (extlinux)
* grub, lilo - заменены на syslinux (extlinux локально, pxelinux для сетевой загрузки)
* systemd
* systemd - снижает стабильность системы и заметно (на 10...15%) увеличивает стоимость эксплуатации
* udev - для современных ядер (4.* на момент написания этого текста) этот костыль не нужен вообще
* udev - в подавляющем большинстве случаев достаточно ядерного CONFIG_DEVTMPFS
 


== Отбракованные технологии ==
== Отбракованные технологии ==
Для осуществления удаленного доступа к системе с целями администрирования или мониторинга было принято решение запретить использование заведомо ненадежных и недоверенных криптоалгоритмов:
Для осуществления удаленного доступа к системе с целями администрирования или мониторинга было принято решение запретить использование заведомо ненадежных и недоверенных криптоалгоритмов:
* любых алгоритмов симметричного шифрования в режиме сцепления блоков (CBC);
* любых алгоритмов симметричного шифрования в режиме сцепления блоков (CBC)
* алгоритмов шифрования с открытым ключом DSA и ECDSA;
* алгоритмов шифрования с открытым ключом DSA и ECDSA
* хеш-функций с размером слова состояния менее 256 битов.
* хеш-функций с размером слова состояния менее 256 битов


[[Категория:Планы]]
[[Категория:Планы]]

Текущая версия от 15:26, 28 апреля 2020

Общее описание

NetDev - промышленная GNU/Linux-платформа, созданная на основе Sisyphus. Изначально разрабатывалась для софтроутеров (то есть, Linux-серверов, выполняющих функции высоконагруженного сетевого оборудования - например, опорных (core) и магистральных (border) маршрутизаторов), но также может применяться как на обычных серверах, так и в качестве встраиваемой ОС для промышленного оборудования.

Концепция

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

Состояние

Весна 2020 года:

  • доступен собственный репозитарий пакетов, сборка которых отличается от "офисного" Sisyphus
  • начата опытная эксплуатация в сетях дружественных интернет-провайдеров (виртуализация, софтроутеры, почтовые серверы, web-хостинг, IP-телефония)
  • опубликованы инструменты для полностью автоматической установки и обеспечения сетевой загрузки (пакет installworld в Sisyphus)
  • проект получил название Diogenes - как нетрудно догадаться, в честь основателя философского направления цинизма... ну, который еще был в каждую бочку затычкой :-)
  • по адресу http://ftp.altlinux.org/pub/projects/diogenes/boot/ эпизодически выкладываются образы загрузочных флешек (должны работать при загрузке через BIOS, EFI и, с минимальной ручной настройкой, PXE). Не пугайтесь, если обнаружите в ~root/.ssh/authorized_keys ключи сборщика - их туда кладет postinstall(8), логика работы которого еще будет неоднократно меняться.
  • начата работа над сборками для архитектур, отличных от x86_64 (прежде всего ARM64).

Поддержка сетевой установки

Основная идея: администратор может вообще не подходить к серверу (в датацентр его занесли грузчики, в стойку поставили и провода подключили техники, а дальше "оно само"). Реализация: PXE в native VLAN, загруженная по сети система получает адрес по DHCP и становится доступной по SSH, из нее выполняется установка с настройкой тегированных VLANов, а после загрузки установленной системы native VLAN вообще не используется (либо используется при необходимости загрузки rescue-системы).

Поддержка технологии SwitchDev

Система поддерживает работу с устройствами SwitchDev в объеме, предоставляемом ядром Linux (параметр CONFIG_NET_SWITCHDEV и далее по разделу). Тестирование производилось на коммутаторе Mellanox SN2100 - его удалось превратить в магистральный маршрутизатор, способный без особого труда обработать 10 full view IPv4 и IPv6.

Поддержка ONIE

Протестирована автоматизированная сборка образов ONIE (Open Network Install Environment) для установки системы на сетевое оборудование. К сожалению, единственным таким устройством у нас в настоящий момент является упомянутый чуть выше SN2100.

Отбракованные компоненты

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

  • 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 битов