Начиная с Ubuntu 18.04 конфигурирование сети выполняется с помощью утилиты netplan. В других системах на базе deb, например, Debian, она может быть установлена командой:
apt install netplan
В данной статье рассмотрим принцип и примеры настройки сети с помощью netplan.
Немного о файле конфигурации
Настройка сети
Как применить настройки
Добавить маршрут
Объединение интерфейсов
Сетевой мост
Настройка vlans
Настройка WiFi
Несколько IP-адресов на одном интерфейсе
Удаление netplan
Решение возможных проблем
Файл для настройки сети находится в каталоге /etc/netplan/ . Имя файла может быть любым, на конце должно быть расширение yaml , например:
vi /etc/netplan/00-installer-config.yaml
* чаще всего, это файл 00-installer-config.yaml , 01-netcfg.yaml или 50-cloud-init.yaml .
YAML представляет из себя текстовый формат файла. Вложенные параметры должны иметь отступы табуляциями или пробелами, количество которых имеет важное значение (если поставить лишний пробел у одного из нескольких параметров, мы получим сообщение об ошибке «expected mapping»).
Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP.
Приводим файл к следующему виду:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
ens7:
dhcp4: false
addresses:
— 192.168.122.195/24
routes:
— to: default
via: 192.168.122.1
mtu: 1500
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
search: [ remontka.local ]
ens9:
dhcp4: false
addresses:
— 192.168.1.10/24
— 192.168.1.20/24
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
search: [ remontka.local, remontka.com ]
* где:
Для применения настроек необходимо запустить команду netplan. Ее синтаксис:
netplan <опции> <команда>
Для проверки нашего конфигурационного файла вводим:
netplan —debug generate
Для применения настроек вводим:
netplan apply
* данную команду мы вводим также для перечитывания настроек и перезапуска сети (вместо привычных restart и reload).
Статический маршрут задается для конкретного интерфейса, также в конфигурационном файле netplan, например:
network:
version: 2
renderer: networkd
ethernets:
ens9:
dhcp4: false
addresses: 192.168.1.10/24
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
routes:
— to: 192.168.0.0/24
via: 192.168.1.1
on-link: true
* в данном примере мы настроили маршрут для сетевого интерфейса ens9 . Данная настройка задается параметром routes :
С помощью bonds мы можем объединить интерфейсы с целью обеспечения отказоустойчивости и/или повышения пропускной способности.
Пример настройки:
network:
version: 2
renderer: networkd
ethernets:
ens2f0: {}
ens2f1: {}
bonds:
bond0:
dhcp4: false
interfaces:
— ens2f0
— ens2f1
parameters:
mode: active-backup
addresses:
— 192.168.122.195/24
gateway4: 192.168.122.1
mtu: 1500
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
* в данном примере мы объединяем физические интерфейсы ens2f0 и ens2f1 ; настройка parameters mode указываем на тип объединения — доступны варианты:
Сетевой мост позволяет пропускать сетевой трафик через другой сетевой адаптер. Это можно применить, например, для организации хоста виртуальных машин (для трансфера трафика к виртуальным машинам KVM через единственный сетевой интерфейс сервера).
Пример настройки:
network:
version: 2
renderer: networkd
ethernets:
ens2f0: {}
bridges:
br0:
macaddress: ce:ce:ce:45:45:45
interfaces:
— ens2f0
addresses:
— 192.168.1.15/24
gateway4:
nameservers:
addresses:
— 77.88.8.8
— 8.8.8.8
mtu: 1500
parameters:
stp: true
forward-delay: 4
dhcp4: false
dhcp6: false
* где:
Подробнее про настройку сетвого моста для KVM в инструкции Настройка KVM на Ubuntu Server .
Также мы можем настроить тегированный интерфейс vlan:
network:
version: 2
renderer: networkd
ethernets:
ens3: {}
vlans:
vlan5:
id: 5
link: ens3
dhcp4: false
addresses: [10.0.0.15/24]
gateway: 10.0.0.1
* в данном примере мы настроили интерфейс с тегом 5 на физическом адаптере ens3 .
Для подключения к беспроводной сети задаем следующие настройки:
network:
version: 2
renderer: networkd
wifis:
wlp2s0b1:
dhcp4: false
dhcp6: false
addresses:
— 192.168.2.10/24
routes:
— to: default
via: 192.168.2.1
nameservers:
addresses:
— 192.168.2.1
— 77.88.8.8
access-points:
«<имя WiFi сети (SSID)>»:
password: «wifi_password»
* где:
Если мы не знаем точное имя нашей WiFi сети, можно провести сканирование с помощью утилиты wireless-tools:
apt install wireless-tools
iwlist wlp2s0b1 scan | grep ESSID
* данная команда с помощью сетевого интерфейса wlp2s0b1 выполнит сканирование сетей и выведет список имен ( ESSID ).
Если система не подключается к WiFi переходим к возможному решению .
Если нужно задать несколько IP-адресов на одном сетевом адаптере, просто перечисляем их:
network:
version: 2
renderer: networkd
ethernets:
ens7:
dhcp4: false
addresses:
— 1.2.3.4/24
— 5.6.7.8/24
* в данном примере сетевому адаптеру ens7 будут назначены адреса 1.2.3.4 и 5.6.7.8 .
При желании, мы можем вернуть привычный принцип настройки сети. Для этого выполним несколько шагов.
1. Открываем настройку grub:
vi /etc/default/grub
2. Находим опцию GRUB_CMDLINE_LINUX и дописываем в нее параметр:
GRUB_CMDLINE_LINUX=»netcfg/do_not_use_netplan=true»
* если GRUB_CMDLINE_LINUX содержит другие настройки, то наш параметр добавляем через пробел.
3. Устанавливаем пакет ifupdown:
apt install ifupdown
4. Настраиваем сеть в файле:
vi /etc/network/interfaces
… например:
auto lo
iface lo inet loopback
auto ens5
iface ens5 inet dhcp
* в данном примере мы настраиваем сетевой интерфейс ens5 на автоматическое получение IP-адреса.
5. Применяем настройки загрузчика:
update-grub
И перезагружаем систему:
shutdown -r now
Ошибка появляется при проверке (generate) или применении (apply) настроек сети.
Причина: ошибка синтаксиса YAML.
Решение: внимательно смотрим на количество отступов, которое сделано для строки xxx. Количество пробелов должно точно соответствовать количеству в других строках. Если параметр вложенный, он также должен отделяться от родителя нужным количеством пробелов. Пример неправильной настройки:
network:
version: 2
renderer: networkd
* обратите внимание, что version имеет 4 пробела для отступа, а renderer — 2. Так как version и renderer равнозначные параметры для родителя network , они должны иметь одинаковое количество пробелов.
Компьютер не подключается к сети WiFi. Если ввести команду просмотра лога:
journalctl -xe
… то можно увидеть ошибку:
/sbin/wpa_supplicant: No such file or directory
Причина: система при настройке подключения к беспроводной сети пытается использовать утилиту wpa_supplicant , которой нет в системе.
Решение: устанавливаем wpa_supplicant:
apt install wpasupplicant
Перезапустим конфигурацию сети:
netplan apply
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…