Настройка сети в Ubuntu Server 18.04 [Netplan]

Настройка сети на Ubuntu Server 18.04 через файл конфигурации Netplan. Три варианта конфигураций: получение настроек по DHCPуказание статического IP-адреса и конфигурацию для двух сетевых интерфейсов.

Настраивать сеть будем c помощью утилиты Netplan.

[Netplan — впервые появилась в Ubuntu 17.10 для облегчения управления сетевыми настройками. Netplan хранит параметры сетевых интерфейсов в формате YAML, конфигурация в формате YAML в свою очередь поддерживается  сетевыми рендерами NetworkManager и systemd-networkd, нам предоставляется возможность выбрать, какой из рендеров использовать в качестве основного сетевого демона системы.]

Для того чтобы посмотреть все сетевые интерфейсы введите команду ifconfig -a.(Рис.1)

ifconfig -a
Просматриваем все сетевые интерфейсы.
Рис.1 — Просматриваем все сетевые интерфейсы.

Видим интерфейс «ens160» с IP-адресом — 192.168.3.16. Если у вас другое название интерфейса, то в конфигурациях не забудьте поменять его.

Прописывать конфигурацию интерфейсов будем в файле /etc/netplan/50-cloud-init.yaml, с помощью редактора nano, файл может называться по разному у разных пользователей, но сразу же после установки файл с расширением .yaml в этой папке один. Поэтому для того чтобы приступить к редактированию файла лучше воспользоваться универсальной командой.(Рис.2)

sudo nano /etc/netplan/*.yaml
Приступаем к редактированию файла *.yaml
Рис.2 — Приступаем к редактированию файла *.yaml

ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ не «TAB»! В конфигурациях представленных в этой статье количество пробелов правильное, считайте количество, иначе работать не будет.

Если вы поставите отступы клавишей «TAB», то на этапе проверки конфигурации на ошибки, вылезет ошибка — » Error while loading /etc/netplan/50-cloud-init.yaml, aborting. / Ошибка при загрузке «.
Если же вы решите написать всё в столбик без отступов, получите ошибку — » An error occured: the configuration could not be generated / Произошла ошибка: конфигурация не может быть сгенерирована «.

Самые распространенные параметры в файле /etc/netplan/*.yaml

Для начала разберемся какие самые распространенные параметры в этом файле могут быть.

network:
renderer: networkd — Выбор сетевого рендера. Выбран networkd
ethernets: — Блок с настройками сетевых интерфейсов.
ens160: — Имя первого сетевого интерфейса.
addresses: [192.168.3.13/24] — Статический IP-адрес сетевого интерфейса/Маска сети. На данный момент указан IPv4, можно также через запятую указать  IPv6(пишется в кавычках) — [192.168.3.13/24,“2001:1::1/64”] 
gateway4: 192.168.3.1 — Указание основного шлюза для IPv4.
gateway6: «2001:4::1»— Указание основного шлюза для IPv6.(пишется в кавычках)
dhcp4: yes/no — или true/false — включить/выключить получение сетевых настроек по DHCP для IPv4.
dhcp6: yes/no — или true/false — включить/выключить получение сетевых настроек по DHCP для IPv6.
macaddress: 52.54.00.6d.3c.59 — указание MAC-адреса.
nameservers:  — Блок с настройками DNS.
addresses: [8.8.8.8,8.8.4.4] — IP-адреса DNS-серверов, можно несколько через запятую.
ens192: — Имя второго сетевого интерфейса.
addresses: [10.1.0.5/24]
version: 2

Настройка сети на Ubuntu Server 18.04

Настройка динамического IP-адреса [по DHCP]

Так как при установке мы получили IP-адрес по DHCP, следовательно конфигурация рабочая.(Рис.3)

Конфигурация для получения IP-адреса по DHCP (эта настройка идет по умолчанию):

network:
  ethernets:
    ens160:
      addresses: []
      dhcp4: true
  version: 2
Конфигурация для получения IP-адреса по DHCP.
Рис.3 — Конфигурация для получения IP-адреса по DHCP.

Настройка статического IP-адреса [Указание настроек вручную]

Конфигурация для указания настроек сети вручную.(Рис.4)

network:
  renderer: networkd
  ethernets:
    ens160:
      addresses: [192.168.3.13/24]
      gateway4: 192.168.3.1
      dhcp4: no
      dhcp6: no
      nameservers:
       addresses: [8.8.8.8,8.8.4.4]
  version: 2
Конфигурация для указания настроек сети вручную.
Рис.4 — Конфигурация для указания настроек сети вручную.

Пример конфигурации для двух интерфейсов

Конфигурация для указания настроек сети для двух интерфейсов «ens160» и «ens192».(Рис.5)

network:
    renderer: networkd
    ethernets:
        ens160:
            addresses: []
            dhcp4: true
        ens192:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.1.220/24]
            gateway4: 192.168.1.1
            nameservers:
             addresses: [8.8.8.8,8.8.4.4]
    version: 2
Пример конфигурации двух интерфейсов.
Рис.5 — Пример конфигурации двух интерфейсов.

Применение изменений в конфигурации сети и проверка

После настройки необходимо проверить конфигурацию на наличие ошибок и применим изменения.(Рис.6)

sudo netplan try

Если ошибок нет, то вы получите сообщение: «Вы хотите сохранить эти настройки?» Нажмите ENTER (обычно настройки применяются сразу, но все же рекомендуется выполнить команду apply).

Проверяем конфигурацию на ошибки. Применяем конфигурацию.
Рис.6 — Проверяем конфигурацию на ошибки. Применяем конфигурацию.
sudo netplan apply

Проверим вступили ли изменения в силу:

ifconfig
Применяем изменения и проверяем вступили ли они в силу.
Рис.7 — Применяем изменения и проверяем вступили ли они в силу.

Проверим доступен ли внешний ресурс (интернет).(Рис.8)

ping ya.ru
Проверяем доступен ли внешний ресурс
Рис.8 — Проверяем доступен ли внешний ресурс.

Всё отлично IP-адрес поменялся, сеть настроена, доступ в интернет есть!

Оригинал статьи