Ubuntu je úžasný operační systém, dlouho jsem nepracoval s Ubuntu serverem a aktualizovat svůj Desktop ze stabilní verze nemělo smysl. A tak jsem nedávno narazil na čerstvý release Ubuntu server 18.04, moje překvapení bylo bezmezným, když jsem pochopil, že jsem nekonečně pozadu a nemohu nastavit síť, protože starý dobrý systém konfigurace síťových rozhraní prostřednictvím úpravy souboru /etc/network/interfaces už neexistuje. Co přišlo místo něj? něco strašného a na první pohled zcela nepochopitelného, vítejte v "Netplan".
Musím přiznat, že zpočátku jsem nemohl pochopit, o co jde a "proč je to potřeba, vždyť to bylo tak pohodlné", ale po získání trochu praxe jsem pochopil, že v tom je své kouzlo. A tak dost lyriky, pokračujme, co to Netplan vlastně je? Je to nová utilita pro konfiguraci sítě v Ubuntu, alespoň "v jiných distribucích jsem něco podobného nepotkal." Podstatný rozdíl Netplan je, že konfigurace se píše pomocí jazyka , ano, slyšíte správně, YAML, vývojáři se rozhodli jít s dobou (a jak moc ho chválím, stejně ho považuji za strašný jazyk). Hlavní nevýhodou tohoto jazyka je, že je velmi citlivý na mezery, pojďme se podívat na konfiguraci na příkladu.
Konfigurační soubory se nacházejí v cestě /etc/netplan/nazevsouboru.yaml, mezi každým blokem by měly být + 2 mezery.
1) Standardní hlavička vypadá takto:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noPodívejme se, co jsme udělali:
- network: — to je blok začátku konfigurace.
- renderer: networkd — zde uvádíme síťového správce, kterého budeme používat, a to buď networkd nebo NetworkManager.
- version: 2 — tady, jak jsem pochopil, je verze YAML.
- ethernets: — tento blok říká, že budeme konfigurovat ethernetový protokol.
- enps0f0: — uvádíme, které síťové rozhraní budeme konfigurovat.
- dhcp4:no — vypínáme DHCP v4, pro v6 dhcp6 odpovídajícím způsobem.
2) Zkusme přiřadit IP adresy:
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.8Zde jsme nastavili MAC, IPv4, bránu a DNS server. Všimněte si, že pokud potřebujeme více než jednu IP adresu, píšeme je čárkou s povinnou mezerou za každou.
3) A co když potřebujeme ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds: — blok, který vysvětluje, co budeme nastavovat v bonding.
- bond0: — libovolný název rozhraní.
- interfaces: — soubor rozhraní shromážděných v bondingu, "jak bylo zmíněno dříve, pokud je více parametrů, popisujeme je v hranatých závorkách".
- parameters: — popisujeme blok nastavení parametrů.
- mode: — uvádíme mód, podle kterého bude bonding fungovat.
- mii-monitor-interval: — nastavujeme interval monitorování na 1 sekundu.
V rámci bloku s názvem bond- lze také nakonfigurovat parametry jako addresses, gateway4, routes atd.
Přidali jsme zálohování pro naší síť, teď už jen zbývá zavěsit a nastavení lze považovat za dokončené.
vlans:
vlan10:
id: 10
link: bond0
dhcp4: ne
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: — vyhlašujeme blok nastavení vlan.
- vlan10: — libovolný název vlan rozhraní.
- id: — tag našeho vlan.
- link: — rozhraní, přes které bude vlan dostupná.
- routes: — vyhlašujeme blok popisu tras.
- — to: — uvádíme adresu/podsíť, pro kterou je nutná trasa.
- via: — uvádíme bránu, přes kterou bude naše podsíť dostupná.
- on-link: — uvádíme, že se trasy mají vždy zadávat při aktivaci linku.
Všimněte si, jak rozmisťuji mezery, v jazyce YAML je to velmi důležité.
Popisali jsme síťová rozhraní, vytvořili bonding a dokonce přidali vlany. Pojďme aplikovat naši konfiguraci, příkaz netplan apply zkontroluje naši konfiguraci na chyby a v případě úspěchu ji aplikuje. Dále se konfigurace sama aktivuje při restartu systému.
Sestavili jsme všechny předchozí bloky kódu, tady je, co jsme vytvořili:
síť:
verze: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: ne
ensp3s0f1:
dhcp4: ne
bonds:
bond0:
dhcp4: ne
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
vlan10:
id: 10
link: bond0
dhcp4: ne
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: ne
addresses: [10.10.11.2/24]
gateway: 10.10.11.1
nameserver:
addresses: [8.8.8.8]
Naše síť je nyní připravena k použití, všechno se ukázalo být mnohem jednodušší, než se zdálo zpočátku, a kód je velmi krásný a čitelný. P.C děkuji, že na netplan je skvělý manuál na odkazu .
Zdroj: habr.com
