Linux настройка сети netplan

Настройка сети в Linux с помощью netplan

Обновлено

Обновлено: 16.02.2023 Опубликовано: 31.10.2019

Начиная с Ubuntu 18.04 конфигурирование сети выполняется с помощью утилиты netplan. В других системах на базе deb, например, Debian, она может быть установлена командой:

Конфигурационный файл

Файл для настройки сети находится в каталоге /etc/netplan/. Имя файла может быть любым, на конце должно быть расширение yaml, например:

* чаще всего, это файл 50-cloud-init.yaml или 01-netcfg.yaml. YAML представляет из себя текстовый формат файла. Вложенные параметры должны иметь отступы табуляциями или пробелами, количество которых имеет важное значение (если поставить лишний пробел у одного из нескольких параметров, мы получим сообщение об ошибке «expected mapping»).

Простая настройка сети

Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP. Приводим файл к следующему виду:

network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
ens7:
dhcp4: no
addresses: [192.168.122.195/24]
routes:
#- to: 0.0.0.0/0
— to: default
via: 192.168.122.1
mtu: 1500
nameservers:
addresses: [8.8.8.8, 77.88.8.8]
search: [ dmosk.local ]
ens9:
dhcp4: no
addresses: [192.168.1.10/24, 192.168.1.20/24]
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
search: [ dmosk.local, dmosk.ru ]

  • version — версия YAML. На момент обновления статьи, была 2.
  • renderer — менеджер сети (networkd или NetworkManager).
  • ethernets — настройка сетевых адаптеров ethernet.
  • ens3, ens7, ens9 — настройки для соответствующих сетевых адаптеров. В данном примере мы настраиваем 3 сетевых адаптера.
  • dhcp4 — будет ли получать сетевой адаптер IP-адрес автоматически. Возможны варианты yes/true — получать адрес автоматически; no/false — адрес должен быть назначен вручную.
  • addresses — задает IP-адреса через запятую.
  • routes — настройка маршрутов. Для шлюза по умолчанию используем опцию и значение to: default. Ранее использовалась директива gateway4, но теперь она считается устаревшей (при применении настройки с ней система вернет предупреждение gateway4 has been deprecated, use default routes instead). Также обратите внимание на вариант с 0.0.0.0 — в более ранних версиях системы вариат с default выдаст ошибку, и нужно использовать конфигурацию с четыремя нулями.
  • mtu — при желании, можно задать значение MTU.
  • nameservers — настройка серверов имен (DNS).
  • nameservers addresses — указываем серверы DNS. Обратите внимание на разный формат записи для ens7 и ens9. Приемлемы оба варианта.
  • nameservers search — дописывает окончание домена, если мы обращаемся к узлу сети только по его имени. Стоит обратить внимание, что мы можем указать несколько доменов через запятую.
Читайте также:  Какую версию linux ubuntu

Применение настроек

Для применения настроек необходимо запустить команду netplan. Ее синтаксис:

Для проверки нашего конфигурационного файла вводим:

Источник

Netplan и как его правильно приготовить

Ubuntu потрясающая операционная система, давно не работал с Ubuntu server, а обновлять свой Desktop со стабильной версии не было смысла. И вот не давно пришлось столкнутся со свеженьким релизом Ubuntu server 18.04, моему удивлению не было предела. Когда я понял что я бесконечно отстал от жизни и не могу настроить сеть, т.к старая добрая система настройки сетевых интерфейсов по средствам редактирования файла /etc/network/interfaces канула в Лету. А что же пришло ей на смену? Что-то ужасное и на первый взгляд совершенно не понятное, встречайте «Netplan».

Признаться честно, сначала я не мог понять в чем дело и »зачем это нужно, ведь все было так удобно», но получив немного практики понял, что в нем есть свой шарм. И так хватит лирики продолжим. Что же такое Netplan — это новая утилита для настройки сети в Ubuntu, по крайне мере «в других дистрибутивах я не встречал подобного». Существенное отличие Netplan является то, что конфигурация пишется на языке YAML, да да вы не ослышались YAML, разработчики решили идти в ногу со временем (и как бы много не расхваливали его я все-таки считаю его ужасным языком). Основной минус этого языка в том что он очень чувствителен к пробелам, давайте же рассмотрим конфиг на примере.

Файлы конфигурации находятся по пути /etc/netplan/имяфайла.yaml, между каждым блоком когда должно быть + 2 пробела.

1) Стандартная шапка выглядит так:

network: version: 2 renderer: networkd ethernets: enp3s0f0: dhcp4:no

Давайте рассмотрим что мы сейчас сделали:

  • network: — это блок начало конфигурации.
  • renderer: networkd — здесь мы указываем сетевой менеджер который будем использовать, это либо networkd либо NetworkManager
  • version: 2 — тут, как я понял, версия YAML.
  • ethernets: — этот блок говорит о том, что будем конфигурировать ethernet протокол.
  • enps0f0: — указываем какой сетевой адаптер будем конфигурировать.
  • dhcp4:no — отключаем DHCP IPv4, для IPv6, dhcp6 соответственно
 enp3s0f0: dhcp4:no macaddress: bb:11:13:ab:ff:32 addresses: [10.10.10.2/24, 10.10.10.3/24] gateway4: 10.10.10.1 nameservers: addresses: 8.8.8.8

Здесь мы задали мак, ipv4, шлюз и dns сервер. Заметьте, что если нам нужно больше одного ip адреса, то мы пишем их через запятую с обязательным пробелом после.

 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 сек.
Читайте также:  Linux dns nslookup ты

Мы добавили резервирование для нашей сети, теперь осталось только повесить 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: — указываем что прописывать маршруты всегда при поднятии линка.

Вот мы описали сетевые интерфейсы, создали 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 vlans: 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] 

Вот наша сеть и готова к эксплуатации. Все оказалось не так страшно, как показалось вначале и код получился очень красивый и читабельный.
P.S спасибо что по netplan есть отличный мануал по ссылке https://netplan.io/.

Источник

Оцените статью
Adblock
detector