Как настроить статический IP адрес и бонд на интерфейсе Ubuntu Server 18.04

Метод настройки сетевого интерфейса, к которому так привыкли поклонники 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]

По материалам


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix © Все права защищены 2023

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!