[devel] подсистема настройки сети в дистрибутивах

Alexey V. Vissarionov gremlin на altlinux.org
Пт Апр 19 07:52:37 MSK 2024


Good ${greeting_time}!

On 2024-04-18 18:04:24 +0300, Alexey Shabalin wrote:

 >>> - в рабочей станции и других дистрибутивах с GUI используют
 >>> NetworkManager
 >>> - в сервере есть попытка перехода на systemd-networkd (почему
 >>> поытка - ниже :). etcnet оставлен как запасной вариант.
 >> Все это - решения для рабочих станций. Ну, еще в совсем простых
 >> сетях можно для локальных серверов как-то что-то наколхозить.
 > На самом деле все сложное в сетях должно делаться на сетевом
 > оборудовании.

А у этого сетевого оборудования внутри волшебство происходит?

Не говоря уж о том, что по-настоящему большие сети используют
роут-серверы. А, наоборот, совсем маленькие - одиночные серверы,
на которых вообще все: и пара внешних каналов (с балансировкой
между ними), и несколько локальных сетей (как минимум проводную
сеть и WiFi сейчас принято разделять), и почта, и телефония, и
файлохранилище. И из сетевого оборудования у них - только свитчи.

 > А на сервера или рабочие станции сеть должна подаваться в
 > максимально простом виде. Для надежности.

Если не пытаться работать с ядерным сетевым стеком, как с демоном
в userspace, его надежность превосходит, например, надежность
дисковой подсистемы.

 > В "сложном" виде (bonding, тэгированные vlan) сеть подается
 > на хосты виртуализации или програмные маршрутизаторы.

Хосты виртуализации по определению выполняют функции софтроутеров.

А еще серверы умеют не только подключаться к существующим сетям,
но и создавать их.

 > Netplan умеет типовые простые и сложные сети. Понятно, что
 > можно найти особенный случай, который не поддерживается. Его
 > тоже можно решить pre и post хуками, запуская скрипты.

И вся красивая модель управления сетевым стеком через managed
configuration идет коту под хвост :-)

Я через эти грабли еще лет 15 назад прошел. И нашел рабочее
решение, которое с большой вероятностью (могу уточнить днем)
работает до сих пор.

 >> Конфигурация сети - это не демон, для нее reload|restart
 >> хоть и возможны технически, но особого смысла в абсолютном
 >> большинстве случаев не имеют.
 > У нас разные клиенты :) Кто-то настраивает сеть через
 > web-интерфейс PVE, и не ожидает, что нажав кнопку Apply
 > потеряет доступ к хосту. А теряет потому, что network
 > reload на самом деле restart.

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

 >>> Предложение: Давайте рассмотрим вариант использовать в
 >>> дистрибутивах netplan [...]
 >>> умеет настраивать bond, bridge, vlan,
 >> VLAN? Вот прямо с перенумерацией и QinQ?
 > да, networkd умеет, в том числе и 802.1ad

Даже любопытно посмотреть, как оно с нетривиальными случаями
перенумерации справится.

 >>> openvswitch, wireguard, wifi, тунели. Вроде все что нам
 >>> обычно нужно.
 >> Как насчет хотя бы VRF? :-)
 > Да. Смотри
 > https://github.com/canonical/netplan/blob/main/examples/vrf.yaml

Так это ж совсем примитив... Ладно, будем считать, что хотя бы
про ip rule оно знает.

 >>> Если перерабатывать alterator-eth, то может сразу на
 >>> использование netplan, который умеет генерировать настройки
 >>> для NM и networkd?
 >>> PS: я не призываю удалять etcnet из сизифа. Я говорю о
 >>> дистрибутивах, которые по факту уходят от использования etcnet.
 >> Для десктопов оно избыточно (еще больше, чем NM), для серверов
 >> малопригодно... что остается-то, ноутбуки?
 > А мне кажется пригодно для для всех трех случаев.

Вот-вот, "кажется". А я говорю (особенно про серверы) на основании
опыта промышленной эксплуатации. В том числе с обеспечением SLA.


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


Подробная информация о списке рассылки Devel