- PVSM.RU - https://www.pvsm.ru -
Ubuntu потрясающая операционная система, давно не работал с Ubuntu server а обновлять свой Desktop со стабильной версии не было смысла. И вот не давно пришлось столкнутся со свеженьким релизом Ubuntu server 18.04, моему удивлению не было предела, когда я понял что я бесконечно отстал от жизни и не могу настроить сеть т.к старая добрая система настройки сетевых интерфейсов по средствам редактирования файла /etc/network/interfaces канула в лепту. А что же пришло ей на смену? что то ужасное и на первый взгляд совершенно не понятное, встречайте «Netplan».
Признаться честно, сначала я не мог понять в чем дело и ''зачем это нужно, ведь все было так удобно", но получив немного практики понял что в нем есть свой шарм. И так хватит лирики продолжим, что же такое Netplan это новая утилита для настройки сети в Ubuntu, по крайне мере «в других дистрибутивах я не встречал подобного». Существенной отличие Netplan является то что конфигурация пишется на языке YAML [1], да да вы не ослышались YAML, разработчики решили идти в ногу со временем (и как бы много не расхваливали его я все-таки считаю его ужасным языком). Основной минус этого языка в том что он очень чувствителен к пробелам, давайте же рассмотрим конфиг на примере.
Файлы конфигурации находятся по пути /etc/netplan/имяфайла.yaml, между каждым блоком когда должно быть + 2 пробела.
1) Стандартная шапка выглядит так:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:no
Давайте рассмотрим что мы сейчас сделали:
2) Попробуем назначить ip адреса:
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 адреса то мы пишем их через запятую с обязательным пробелом после.
3)А что если нам нужен bonding [2]?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
Внутри блока с именем bond-а также можно конфигурировать такие параметры как addresses,gateway4,routes итд.
Мы добавили резервирование для нашей сети, теперь осталось только повесить vlan [3] и настройку можно считать оконченной.
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
Обратите внимание на то как я расставляю пробелы, в языке 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.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.C спасибо что по netplan есть отличный мануал по ссылке https://netplan.io/ [4].
Автор: рыцарь со стволом
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/nix/293862
Ссылки в тексте:
[1] YAML: https://ru.wikipedia.org/wiki/YAML
[2] bonding: https://en.wikipedia.org/wiki/Channel_bonding
[3] vlan: https://ru.wikipedia.org/wiki/VLAN
[4] https://netplan.io/: https://netplan.io/
[5] Источник: http://habrahabr.ru/sandbox/123935/
Нажмите здесь для печати.