Ubuntu je izvanredan operativni sistem. Dugo nisam radio sa Ubuntu serverom i nije bilo smisla ažurirati svoj Desktop sa stabilne verzije. I nedavno sam se susreo s novim izdanjem Ubuntu servera 18.04, bilo mi je neverovatno kada sam shvatio koliko sam zaostao i da ne mogu postaviti mrežu jer je stari način podešavanja mrežnih interfejsa putem uređivanja datoteke /etc/network/interfaces nestao. A šta je to što je došlo umesto njega? Nešto strašno i na prvi pogled potpuno nerazumljivo, upoznajte «Netplan».
Da budem iskren, isprva nisam mogao da razumem o čemu se radi i »zašto je to potrebno, jer je sve bilo toliko zgodno«, ali nakon što sam stekao malo prakse, shvatio sam da ima svoj šarm. I tako, dosta lirskih opisa, šta je Netplan? To je nova alatka za podešavanje mreže u Ubuntu, barem «u drugim distribucijama nisam viđao nešto slično». Suštinska prednost Netplana je da se konfiguracija piše u jeziku , da da, niste se zabrekli, YAML, programeri su odlučili da idu u korak s vremenom (i koliko god ga hvalili, ja i dalje smatram da je to strašan jezik). Glavni nedostatak ovog jezika je što je vrlo osetljiv na razmake, hajde da razmotrimo konfiguraciju na primeru.
Konfiguracione datoteke se nalaze na putu /etc/netplan/nazivdatoteke.yaml, između svake sekcije treba imati + 2 razmaka.
1) Standardna zaglavlja izgledaju ovako:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noHajde da razmotrimo šta smo sada uradili:
- network: — to je sekcija koja označava početak konfiguracije.
- renderer: networkd — ovde navodimo mrežnog menadžera koji ćemo koristiti, to je ili networkd ili NetworkManager.
- version: 2 — ovde, koliko sam shvatio, verzija YAML-a.
- ethernets: — ova sekcija označava da ćemo konfigurirati ethernet protokol.
- enps0f0: — ovde navodimo koji mrežni adapter ćemo konfigurirati.
- dhcp4:no — onemogućavamo DHCP v4, a za v6 DHCP6 odgovarajuće.
2) Pokušajmo da dodelimo IP adrese:
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.8Ovde smo definisali MAC, IPv4, gateway i DNS server. Uočite da, ako nam je potrebno više od jedne IP adrese, treba da ih navodimo zarezom sa obaveznim razmakom nakon svakog.
3) A šta ako nam je potrebna ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds: — блок, поясняющий наладку bonding-a.
- bond0: — произвольное имя интерфейса.
- interfaces: — набор интерфейсов, объединяемых в bonding, »как было указано ранее, если параметров несколько, описываем их в квадратных скобках".
- parameters: — описываем блок настройки параметров.
- mode: — указываем режим, по которому будет работать bonding.
- mii-monitor-interval: — задаем интервал мониторинга в 1 секунду.
Внутри блока с именем bonding-а также можно настроить такие параметры, как 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]
Вот наша сеть готова к эксплуатации; все оказалось не так страшно, как казалось вначале, а код вышел очень красивым и читабельным. P.S. спасибо, что по netplan есть великолепный мануал по ссылке. .
Izvor: habr.com
