Netplan je nástroj vyvinutý společností Canonical, která stojí za Ubuntu. Poskytuje abstrakci konfigurace sítě přes aktuálně podporované dva „základní“ systémy (nebo „renderer“ v terminologii Netplan):networkd a NetworkManager . Pomocí Netplanu se fyzické i virtuální síťové rozhraní konfiguruje pomocí yaml soubory, které jsou přeloženy do konfigurací kompatibilních s vybraným backendem.
Na Ubuntu 20.04 Netplan nahrazuje tradiční metodu konfigurace síťových rozhraní pomocí /etc/network/interfaces
soubor; jeho cílem je usnadnit a centralizovat věci (starý způsob konfigurace rozhraní lze stále používat:podívejte se na náš článek o tom, jak přepnout zpět síť do /etc/network/interfaces na Ubuntu 20.04 Focal Fossa Linux). V tomto článku se seznámíme se základními principy nástroje a jen jako příklad, jak jej můžeme použít ke konfiguraci statické adresy IPv4 pro síťové rozhraní.
V tomto tutoriálu se to naučíte :
- Základní struktura konfiguračních souborů yaml používaných Netplanem
- Jak vytvořit jednoduché pravidlo pro přiřazení statické adresy IP síťovému rozhraní
- Jak použít konfigurace pomocí generovat , zkuste a použít dílčí příkazy
Kurz konfigurace sítě Netplan pro začátečníky
Použité softwarové požadavky a konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Ubuntu 20.04 (Focal Fossa) |
Software | Netplan (ve výchozím nastavení nainstalován) |
Jiné | Kořenová oprávnění k úpravě konfiguračních souborů |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo command$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Konfigurační soubory Netplan
Existují tři umístění, kam lze umístit konfigurační soubory Netplan; v pořadí podle priority jsou:
/run/netplan
/etc/netplan
/lib/netplan
Uvnitř každého z těchto adresářů jsou konfigurace vytvořeny pomocí souborů s příponou .yaml rozšíření, které jsou zpracovány lexikograficky pořadí, bez ohledu na adresář, ve kterém se nacházejí.
Priorita adresáře má roli pouze v případě, že existují soubory se stejným názvem:v těchto případech je analyzován pouze soubor obsažený v adresáři s vyšší prioritou.
Pokud je logická nebo skalární parametr je definován ve více než jednom konfiguračním souboru, převezme hodnotu definovanou v posledním souboru, který je analyzován; pokud jsou hodnoty sekvence , místo toho jsou zřetězeny.
Uživatelé by měli své konfigurace umístit do /etc/netplan
adresář; ve výchozím nastavení je jediným souborem na nově nainstalovaném systému Ubuntu 20.04 /etc/netplan/01-network-manager-all.yaml
. V další části uvidíme pokyny, které obsahuje, a jaký je jejich význam.
Soubor /etc/netplan/01-network-manage-all.yaml
Jediný existující konfigurační soubor /etc/netplan/
adresář na čerstvě nainstalovaném systému Ubuntu 20.04 je 01-network-manage-all.yaml
. Pojďme se podívat na jeho obsah:
# Nechte NetworkManager spravovat všechna zařízení v této systémové síti:verze:2 renderer:NetworkManager
Jak naznačuje komentář v souboru, konfigurace je určena k nastavení všech síťových rozhraní v systému, která mají být spravována NetworkManager
renderer. Můžeme pozorovat, že direktivy jsou uvnitř hlavního uzlu, network
, odsazeny . Protože máme co do činění se soubory yaml, je odsazení zásadní.
Další dvě klíčová slova, která můžeme v souboru najít, jsou version
a renderer
:první určuje používanou verzi syntaxe, druhé pak systémový backend (síťové vs NetworkManager ).
V další části tohoto tutoriálu vytvoříme trochu složitější příklad konfigurace a použijeme jej k přiřazení statické adresy IPv4 síťovému rozhraní.
Příklad konfigurace – nastavení statické adresy IPv4
Konfigurační soubor, který jsme viděli výše, je docela základní; zkusme něco trochu složitějšího a uvidíme, jak můžeme nakonfigurovat statickou adresu IPv4 pomocí Netplan.
První věc, kterou musíme udělat, je vytvořit nový konfigurační soubor, který bude analyzován po výchozím souboru:nazvěme ho /etc/netplan/02-static-ip.yaml
. Uvnitř souboru vytvoříme pravidlo, které bude odpovídat síťovým rozhraním, která chceme nastavit:úkol můžeme provést pomocí match
sloka.
Uvnitř match
sekce, můžeme vybrat řadu fyzických rozhraní na základě hodnoty zadaných vlastností. Aby bylo možné nastavení použít, musí všechny vlastnosti odpovídat pravidlu.
Do konfiguračního souboru zapíšeme:
# Nastavit statickou IP adresu pro rozhraní enp1s0síť:verze:2 renderer:NetworkManager ethernety:id0:shoda:název:enp1s0 dhcp4:falešné adresy:- 192.168.122.250/24 jmenné servery:adresy:- 192.168.9 gateway12:12 122.1
Podívejme se blíže na nové instrukce, které jsme použili v konfiguraci. Uvnitř hlavní network
uzel, zařízení lze seskupit podle jejich typu:
ethernets
wifis
bridges
Protože v našem příkladu jednáme s ethernetovým zařízením, použili jsme ethernets
sloka. Uvnitř match
stanza, odkazovali jsme na rozhraní jeho name
:enp1s0
. Pravidla shody mohou být také založena na macaddress
a pouze při použití networkd
jako renderer na driver
což je název ovladače linuxového jádra používaný pro zařízení.
Abychom dosáhli požadované konfigurace, použili jsme řadu direktiv. Protože chceme přiřadit statickou adresu, zakázali jsme dhcp4
a použili addresses
klíčové slovo pro přiřazení adresy IPv4 k rozhraní. Lze zadat více adres:musí být poskytnuty společně s maskou podsítě.
Nastavíme také adresy nameservers
ve sloce se stejným názvem. Nakonec nastavíme IPv4 adresu brány, kterou by mělo rozhraní používat s gateway4
klíčové slovo.
Zjednodušení konfigurace
Konfigurace, kterou jsme použili ve výše uvedeném příkladu, může být mírně zjednodušena. K odkazování na rozhraní, kterému chceme přiřadit statickou adresu, jsme použili match
sloka jsme ji však mohli vynechat. Protože chceme, aby se naše nastavení použilo pouze na jedno konkrétní zařízení, můžeme na něj přímo odkazovat pomocí jeho předvídatelného názvu (enp1s0
) jako id :
síť:verze:2 renderer:NetworkManager ethernety:enp1s0:dhcp4:falešné adresy:- 192.168.122.250/24 jmenné servery:adresy:- 192.168.122.1 brána4:192.168.122.1Když se
match
používá se stanza, id (id0
v předchozím příkladu) je libovolný a používá se k odkazování na nakonfigurovaná zařízení z jiných částí konfiguračního souboru. Když sematch
stanza je vynechána místo toho id musí odpovídat předvídatelnému názvu zařízení. Při práci s virtuálními zařízeními, jako jsou mosty nebo vazby, id se nepoužívá k odkazování na existující rozhraní, ale představuje název, který by měl být použit při vytváření rozhraní.V tomto okamžiku je naše konfigurace připravena; vše, co bychom měli udělat, je uložit a otestovat.
Testování a použití konfigurace Netplan
V předchozí části jsme viděli, jak vytvořit jednoduchou konfiguraci Netplan pro poskytnutí statické adresy IPv4 pro síťové rozhraní. Nyní je čas otestovat konfiguraci, abyste zjistili, zda funguje správně. K dosažení našeho cíle můžeme použít
netplan
atry
dílčí příkaz.
try
dílčí příkaznetplan
utilita, jak její název napovídá, se používá k vyzkoušení konfigurace a případně k jejímu vrácení, pokud ji uživatel po určité době nepotvrdí. Výchozí časový limit je120
sekund, ale lze to změnit pomocí--timeout
možnost.Jak můžete vidět z výstupu
ip address
příkaz, aktuální adresa IPv4 proenp1s0
rozhraní je192.168.122.200
:$ ip address|grep enp1s02:enp1s0:mtu 1500 qdisc fq_codel state UP výchozí skupina qlen 1000 inet 192.168.122.200/292 brd global scopeprefix 1292 brd global.1 Použijeme konfiguraci:
$ sudo netplan zkustePo spuštění příkazu se na obrazovce objeví následující výzva:
Chcete tato nastavení zachovat? Před vypršením časového limitu stiskněte ENTER, abyste přijali novou konfiguraci. Změny se vrátí za 120 sekundMáme dost času na to, abychom zjistili, zda se IP adresa rozhraní změnila:
$ ip address|grep enp1s02:enp1s0:mtu 1500 qdisc fq_codel state UP výchozí skupina qlen 1000 inet 192.168.122.250/291 brd global rozsah0292 brd global.0prefix.1 global.0 Jak vidíme, IPv4 adresa se změnila podle očekávání. V tomto případě však po vypršení časového limitu příkaz nedokázal vrátit konfiguraci. Toto je známý problém, hlášený také v manuálové stránce nástroje. V takových případech by k úplnému návratu do původního stavu měl stačit restart.
Lze použít dva další příkazy:
netplan generate
netplan apply
netplan generate
příkaz převede nastavení v souborech yaml na konfigurace vhodné pro používaný renderer, ale nepoužije je. Ve velké většině případů není určeno k přímému volání:je vyvoláno napříkladnetplan apply
který navíc aplikuje změny bez časového limitu „revert“.Závěry
V tomto tutoriálu jsme oslovili Netplan, nástroj vyvinutý společností Canonical, který je ve výchozím nastavení aktivní na Ubuntu 20.04 Focal Fossa. Účelem tohoto nástroje je abstrahovat konfigurace pro síťová rozhraní pomocí konfiguračních souborů yaml.
Tyto konfigurace jsou poté převedeny do konfigurací pro zadaný renderer, jako je NetworkManager nebo síťový. V tomto tutoriálu jsme viděli, jak napsat jednoduché pravidlo pro nastavení statické IP adresy pro síťové rozhraní, naučili jsme se některé uzly, které lze použít v konfiguračních souborech, a viděli jsme, jak aplikovat změny pomocí
netplan try
anetplan apply
příkazy. Zde jsme sotva poškrábali povrch toho, čeho lze pomocí Netplanu dosáhnout, pokud se o něm chcete dozvědět více, podívejte se prosím na webovou stránku Netplan a na manuálovou stránku nástroje.
Ubuntu