Найти в Дзене

Управление сетевыми настройками в Linux

Последние годы Linux проделал большой путь унификации, во многом благодаря systemd. Теперь вам не нужно вспоминать приемы работы со службами и автозагрузкой в том или ином дистрибутиве. Все везде делается одинаково. Чего не скажешь о сетевых настройках. Причем, если в графической среде стандартом де-факто давно используется NetworkManager, то в серверном варианте наблюдается полный разброд и шатание. Debian использует службу networking, которая управляет сетевой конфигурацией через ifupdown, надо сказать – порядком устаревший. RHEL и производные полагаются на службу network, использующую скрипты ifup и ifdown. В принципе то же самое, что и в Debian, только все по-другому. Arch и основанное на нем семейство использует netctl собственной разработки, а если вы решите освоить ALT, то познакомитесь с еще одной системой – Etcnet. Ну и Ubuntu тоже не остался в стороне со своим netplan. От такого разнообразия разбегаются глаза и становится довольно тоскливо. Если вы редко работаете с тем

Управление сетевыми настройками в Linux

Последние годы Linux проделал большой путь унификации, во многом благодаря systemd. Теперь вам не нужно вспоминать приемы работы со службами и автозагрузкой в том или ином дистрибутиве. Все везде делается одинаково.

Чего не скажешь о сетевых настройках. Причем, если в графической среде стандартом де-факто давно используется NetworkManager, то в серверном варианте наблюдается полный разброд и шатание.

Debian использует службу networking, которая управляет сетевой конфигурацией через ifupdown, надо сказать – порядком устаревший.

RHEL и производные полагаются на службу network, использующую скрипты ifup и ifdown. В принципе то же самое, что и в Debian, только все по-другому.

Arch и основанное на нем семейство использует netctl собственной разработки, а если вы решите освоить ALT, то познакомитесь с еще одной системой – Etcnet.

Ну и Ubuntu тоже не остался в стороне со своим netplan.

От такого разнообразия разбегаются глаза и становится довольно тоскливо. Если вы редко работаете с тем или иным дистрибутивом, то для управления сетью вам придется заглядывать в справку.

Тем не менее есть инструмент, который позволяет унифицировать работу с сетью, но по какой-то причине до сих пор не пользуется широкой популярностью.

Это systemd-networkd, как и весь systemd он очень прост и также строится на основе юнитов соответствующего типа.

В простейшем случае нам достаточно создать юнит с типом network и внести в него следующее содержимое:

[Match]

Name=ens33

[Network]

Address=10.8.8.100/24

Gateway=10.8.8.1

DNS=10.8.8.1

Однако, несмотря на простоту, systemd-networkd достаточно мощный сетевой менеджер и позволяет управлять как проводными, так и беспроводными соединениями, мостами, маршрутизацией и многим другим.

При этом его основной плюс – унификация, он будет работать везде, где есть systemd.

И в целом никто не мешает перейти на systemd-networkd уже сейчас, не дожидаясь пока его завезут из коробки в ваш любимый дистрибутив.

Почему? Потому что это наиболее универсально и перспективно. Вам не нужно учить разные сетевые менеджеры, достаточно просто знать systemd-networkd.

Также отдельно хотелось бы отметить netplan от Ubuntu. Это не самостоятельный сетевой менеджер, а фронтенд, поддерживающий systemd-networkd и NetworkManager.

Netplan позволяет абстрагироваться от конкретного сетевого менеджера и описывать сети декларативно в формате YAML, после чего уже сам netplan сформирует конфигурацию для используемого сетевого менеджера.

Это удобно, прежде всего переносимостью, а также возможностью расширения практически для любого дистрибутива и любого сетевого менеджера.

Кроме того, у netplan есть интересные возможности, например, проверить сетевые настройки перед их применением. Если что-то пошло не так, то вы не потеряете сетевой доступ к узлу, так как все изменения будут автоматически откачены обратно.

Поэтому, глядя на существующий зоопарк технологий мы бы обратили внимание прежде всего на systemd-networkd – он есть везде, где есть systemd, прост, понятен и отлично работает.

В перспективе, конечно, хотелось бы видеть единый унифицированный фронтенд по образу netplan, который бы позволял описывать сети в едином формате и применять их без оглядки на используемый менеджер.

Как и snap, netplan давно уже вышел за рамки мира Ubuntu и доступен практически в любом дистрибутиве, однако широкого распространения не имеет.