Ubuntu приголомшлива операційна система, давно не працював з Ubuntu server, а оновлювати свій Desktop зі стабільною версією не було сенсу. І ось нещодавно довелося зіткнутися зі свіженьким релізом Ubuntu server 18.04, моєму подиву не було межі, коли я зрозумів, що я нескінченно відстав від життя і не можу налаштувати мережу т.к. /interfaces канула в лепту. А що ж прийшло їй на зміну? Що жахливе і на перший погляд зовсім не зрозуміле, зустрічайте «Netplan».
Файли конфігурації знаходяться на шляху /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 v4, для 6 v6 dhcp6 відповідно
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) А якщо нам потрібен
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 ітд.
Ми додали резервування для нашої мережі, тепер залишилося лише повісити
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: - Вказуємо що прописувати маршрути завжди при піднятті лінка.
Зверніть увагу на те, як я розставляю прогалини, в мові 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]
Ось наша мережа і готова до експлуатації, все виявилося не так страшно, як здалося спочатку і код вийшов дуже красивий і читабельний. PC дякую що по netplan є відмінний мануал за посиланням
Джерело: habr.com