====== Network: Ubuntu и Netplan ======
Вся документация тут: [[https://netplan.io/|https://netplan.io]]
С версии 17.10 используется новая утилита настройки сетевых интерфейсов - netplan
Она позволяет настроить сетевой интерфейс с использованием синтаксиса YAML.
Файлы конфигурации хранятся в папке /etc/netplan/*.yaml
ВНИМАНИЕ! Это YAML! Отступы слева в конфигурациях обязательно должны быть и поставлены они должны быть пробелами!
Если ставить отступы TAB'ами, то на этапе проверки конфигурации вылезет ошибка «Error while loading /etc/netplan/50-cloud-init.yaml, aborting»
Если написать всё в столбик без отступов, получим ошибку «An error occured: the configuration could not be generated»
===== Базовый конфиг =====
network:
    ethernets:
   ens160:
            addresses: [192.168.1.10/24]
            gateway4: 192.168.1.1
            nameservers:
              addresses: [192.168.1.2, 192.168.1.3]
            dhcp4: no
            dhcp6: no
            routes:
            - to: 10.10.10.0/24
              via: 10.10.10.1
    version: 2
===== Применение и тестирование конфигурации =====
Протестировать конфигурацию (во избежании дальней поездки):
sudo netplan try
Применить конфигурацию:
sudo netplan apply
===== Bonding =====
bonds:
    bond0:
   dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters:
        mode: 802.3ad
        mii-monitor-interval: 1
  * bonds — блок поясняющий что мы будем настраивать bonding
  * bond0 — произвольное имя интерфейса
  * interfaces — набор интерфейсов собираемых в bonding (если параметров несколько описываем их в квадратных скобках)
  * parameters — описываем блок настройки параметров
  * mode — указываем мод по которому будет работать bonding
  * mii-monitor-interval — задаем интервал мониторинга 1 сек
Внутри блока с именем bond-а также можно конфигурировать такие параметры как addresses, gateway4, routes и тд.
===== VLAN =====
vlans:
    vlan10:
   id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      gateway: 10.10.10.1
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true
  * vlans — объявляем блок настройки vlan
  * vlan10 — произвольное имя vlan интерфейса
  * id — тег нашего vlan
  * link — интерфейс через который vlan будет доступен
  * routes — объявляем блок описания маршрутов
  * — to — задаем адрес/подсеть до которой необходим маршрут
  * via — указываем шлюз через которой будет доступна наша подсеть
  * on-link — указываем что прописывать маршруты всегда при поднятии линка
===== Полный конфиг =====
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.2/24]
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true
  vlan20:
    id: 20
    link: bond0
    dhcp4: no
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]