Метод настройки сетевого интерфейса, к которому так привыкли поклонники Ubuntu, ушел в прошлое… Файл /etc/network/interfaces теперь не используется. На смену ему пришел netplan.
Перейдем в директорию /etc/netplan
# cd /etc/netplan
Узнаем имя нашего интерфейса:
# ip a
2: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether c8:5b:76:38:0e:da brd ff:ff:ff:ff:ff:ff
В директории должны быть два файла: 50-cloud-init.yaml и 01-netcfg.yaml. Если последнего нет, создадим его. Откроем конфигурационный файл:
# vim 01-netcfg.yaml
Внутрь поместим конфигурацию:
network: version: 2 renderer: networkd ethernets: enp3s0f0: dhcp4:no macaddress: c8:5b:76:38:0e:da addresses: [10.10.10.2/24, 10.10.10.3/24] gateway4: 10.10.10.1 nameservers: addresses: 8.8.8.8
Мы получили классический вариант настройки статического IP адреса на интерфейсе. Чтобы назначить 2 IP адреса на один интерфейс, секция addresses должна выглядеть так:
addresses: [10.10.10.1/24, 10.10.10.2/24]
А что если нужно агрегировать линки? Сделаем бонд!
bonds: bond0: dhcp4: no interfaces: [enp3s0f0, enp3s0f1] parameters: mode: 802.3ad mii-monitor-interval: 1
bonds: — блок поясняющий что мы будем настраивать bonding.
bond0: — произвольное имя интерфейса.
interfaces: — набор интерфейсов собираемых в bond-динг, ”как оговаривалось ранее если параметров несколько описываем их в квадратных скобках”.
parameters: — описываем блок настройки параметров
mode: — указываем мод по которому будет работать bonding.
mii-monitor-interval: — задаем интервал мониторинга 1 сек.
Внутри блока с именем bond-а также можно конфигурировать такие параметры как addresses, gateway4, routes и т.д.
Теперь можно прописать VLAN’ы
vlans: vlan10: id: 10 link: bond0 dhcp4: no addresses: [10.10.10.1/24] gateway: 10.10.10.254 routes: - to: 10.10.10.1/24 via: 10.10.10.254 on-link: true
vlans: — объявляем блок настройки vlan.
vlan10: — произвольное имя vlan интерфейса.
id: — тег нашего vlan.
link: — интерфейс через который vlan будет доступен.
routes: — объявляем блок описания маршрутов.
— to: — задаем адрес/подсеть до которой необходим маршрут.
via: — указываем шлюз через которой будет доступна наша подсеть.
on-link: — указываем что прописывать маршруты всегда при поднятии линка.
Обратите внимание на то как я расставляю пробелы, в языке YAML это очень важно.
Вот мы описали сетевые интерфейсы, создали bonding, и даже добавили vlan-ы. Давайте применим наш конфиг, команда netplan apply проверит наш конфиг на наличие ошибок и применит его в случае успеха. Далее конфиг будет сам подниматься при перезагрузке системы.
Собрав все предыдущие блоки кода, вот что у нас получилось:
network: version: 2 renderer: networkd ethernets: enp3s0f0: dhcp4: no ensp3s0f1: dhcp4: no bonds: bond0: dhcp4: no interfaces: [enp3s0f0, enp3s0f1] parameters: mode: 802.3ad mii-monitor-interval: 1 vlan10: id: 10 link: bond0 dhcp4: no addresses: [10.10.10.1/24] routes: - to: 10.10.10.1/24 via: 10.10.10.254 on-link: true vlan20: id: 20 link: bond0 dhcp4: no addresses: [10.10.11.1/24] gateway: 10.10.11.254 nameserver: addresses: [8.8.8.8]