Все конфигурационные файлы Netplan находятся в папке /etc/netplan/. Во время запуска службы, она преобразовывает свою конфигурацию в конфигурацию той службы, которая будет управлять сетью и помещает её в каталог /run/.
Синтаксис конфигурации Netplan
Новичкам синтаксис конфигурационного файла Netplan может показаться запутанным, но разобраться в нём вполне можно. Он чем-то напоминает JSON, но не имеет таких жёстких ограничений:
поле0:
поле1: значение
поле2:
— элемент1
— элемент2
— элемент3
Имя поля и его значение разделяется двоеточием. В качестве значения поля можно передавать не только текстовое или числовое значение, но и другое поле, несколько полей или список значений. При передаче списка каждый новый элемент списка должен начинаться с дефиса. Табуляции использовать нельзя. Отступы используются для указания структуры. Например, из примера видно, что поле1 и поле2 относятся к полю0. Это всё, что касается общего синтаксиса, теперь про Netplan:
network:
version: 2
renderer: программа_бэкенд
вид_интерфейса:
имя_интерфейса:
параметр: значение
Первые две строчки конфигурации стандартны. Первая указывает, что мы будем иметь дело с сетью, а вторая указывает версию стандарта конфигурации, которая будет использоваться. Их лучше не трогать.
- renderer — указывает программу, для которой будут преобразоваться ваши настройки. На данный момент поддерживаются только network-manager и systemd-networkd;
- вид_интерфейса — вид сетевых интерфейсов, которые вы будете настраивать в этой секции. Они делятся на физические: ethernets (проводные), wifis (беспроводные) и виртуальные: vlans , bonds, bridges.
- имя_интерфейса — имя сетевого интерфейса в системе, например enp3s0 или eth0;
- параметры — настройки, с помощью которых указывается, как нужно подключаться к сети.
Параметры Netplan
Мы разобрались с основным синтаксисом, далее разберём команды, с помощью которых мы будем настраивать сеть:
- renderer — программа для обработки конфигурации;
- dhcp4 — получение IPv4 адреса по DHCP;
- dhcp6 — получение IPv6 адреса по DHCP;
- dhcp-identifier — если передать значение «mac», то будет использоваться MAC-адрес в качестве идентификатора DHCP;
- addresses — добавляет статические адреса к интерфейсу, можно несколько;
- gateway4 — указывает шлюз IPv4;
- gateway6 — указывает шлюз IPv6;
- nameservers — указывает DNS-серверы;
- macaddress — устанавливает новый MAC-адрес;
- routes — позволяет настроить маршруты таблицы маршрутизации;
- routing-policy — дополнительная настройка маршрутов, для IP или подсети;
- access-points — список точек доступа для Wi-Fi;
- password — пароль для точки доступа Wi-Fi;
- mode — режим работы сетевой карты Wi-Fi.
Команды Netplan
Синтаксис самой команды netplan очень прост:
netplan опции команда
В качестве команды можно передать одну из команд:
- try — попробовать применить конфигурацию с возможностью отмены;
- apply — применить конфигурацию;
- generate — проверка текущей конфигурации и запись на диск;
- config — записать текущую конфигурацию сети в YAML.
Как настроить сеть Netplan
Сначала необходимо посмотреть, как называются сетевые интерфейсы в вашей системе. Для этого можно просто изучить содержимое папки /sys/class/net:
ls /sys/class/net
У меня есть только Wi-Fi-карта — wlp, у вас же может быть ещё и проводной интерфейс enp. Или устройства могут называться по старому — wlan и eth. Всё зависит от системы.
Настройка динамического IP в Netplan
Для настройки динамического IP- адреса для интерфейса enp3s0 создадим новый конфигурационный файл 02-networkd.yaml. Самая простая настройка Netplan для получения IP по DHCP будет выглядеть вот так:
vi /etc/netplan/02-networkd.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: yes
В качестве программы для обработки конфигурации мы используем Networkd, далее мы указываем наш сетевой интерфейс и включаем получение IPv4 адреса по DHCP. Все остальные параметры тоже подтянутся по DHCP. Или мы можем вручную настроить DNS для этого интерфейса:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: yes
nameservers:
addresses:
— 95.167.167.95
Теперь осталось проверить эту конфигурацию. Для этого выполните:
netplan generate
Если ошибок нет, программа ничего не выведет и запишет вашу конфигурацию на диск. Если есть ошибки, утилита о них сообщит.
Настройка статического IP в Netplan
Статический IP-адрес в Netplan настроить немного сложнее. Поскольку здесь нам нужно будет задать не только непосредственно сам адрес, но и кучу других параметров, которые система раньше получала по DHCP. Нам надо указать шлюз для доступа в интернет и DNS-серверы. Модифицируем тот же конфигурационный файл:
vi /etc/netplan/02-networkd.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
addresses: [ 192.168.1.10/24 ]
gateway4: 192.168.1.254
nameservers:
addresses: [ 95.167.167.95, 95.167.167.96 ]
Рассмотрим подробнее, что за что отвечает в этом конфигурационном файле.
- dhcp4 — отключаем получение IP адреса по DHCP;
- addresses — параметр ожидает список IP-адресов, которые нужно присвоить нашей сетевой карте, у нас только один адрес, однако, передавать его надо тоже в формате списка, иначе будет ошибка. В конце адреса указывается префикс маски — /24, который отвечает маске сети 255.255.255.0. Вы можете указать и другую маску, но только с помощью префикса, отдельного параметра для этого нет.
- gateway4 — задаёт адрес роутера, через который наш компьютер сможет получить доступ в интернет;
Остальное вы знаете. Списки можно оформлять не только с помощью черточек, для каждого пункта с новой строки, но и с помощью квадратных скобок, тогда элементы записываются в одну строку через запятую.
Настройка Wi-Fi через Netplan
Кроме проводного подключения, система конфигурации Netplan умеет управлять подключением к Wi-Fi. Это отличная новость, учитывая, насколько сложно всё это раньше настраивалось, если не было NetworkManager. Правда, для работы Wi-Fi через Networkd надо, чтобы в системе был установлен пакет wpasupplicant. Например, у нас есть точка доступа AccessPoint с паролем 12345678? и мы хотим к ней подключаться. Тогда настройка Netplan будет выглядеть так:
network:
version: 2
renderer: networkd
wifis:
wlp3s0b1:
dhcp4: yes
dhcp6: no
nameservers:
addresses: [ 95.167.167.95, 95.167.167.96 ]
access-points:
«AccessPoint»:
password: «12345678»
Здесь мы указываем, что надо получить IP и другие параметры по DHCP, устанавливаем DNS-сервер вручную, хотя это не обязательно, а затем добавляем точку доступа и пароль к ней.
Применение конфигурации netplan
Естественно, что после смены настроек в конфигурационном файле ничего не меняется. Сначала нужно проверить конфигурационный файл на ошибки и создать файлы конфигурации программы-обработчика. Для этого выполните:
netplan generate
Если вы хотите видеть более подробную информацию, используйте опцию —debug:
netplan —debug generate
Если есть ошибки, их надо исправить, если нет, применяем конфигурацию с помощью команды:
netplan —debug apply
Если вы меняли программу-обработчик, например с NetworkManager на networkd, то надо ещё перезапустить компьютер. После этого сеть будет работать на новой конфигурации.