środa,
Netplan
Netplan to narzędzie do konfiguracji sieci w systemach opartych na Ubuntu, które wprowadzono, aby uprościć i ujednolicić zarządzanie konfiguracją sieciową. Netplan korzysta z plików konfiguracyjnych w formacie YAML, które są następnie przetwarzane i przekazywane do odpowiednich menedżerów sieciowych, takich jak systemd-networkd
lub NetworkManager
.
Korzyści z używania Netplan:
- centralizacja konfiguracji – wszystkie ustawienia sieci są zebrane w jednym miejscu;
- łatwość zarządzania – zmiany są proste do wprowadzenia i mogą być łatwo zastosowane lub wycofane;
- automatyzacja – możliwość skryptowania i automatyzacji konfiguracji sieciowej w środowiskach chmurowych i serwerowych.
Podstawy
Pliki konfiguracyjne Netplan
Pliki konfiguracyjne Netplan znajdują się w katalogu /etc/netplan/
. Najczęściej używane pliki to:
/etc/netplan/01-netcfg.yaml
/etc/netplan/50-cloud-init.yaml
Pliki 50-cloud-init.yaml
i 01-netcfg.yaml
służą do konfiguracji sieci za pomocą Netplan, ale ich przeznaczenie i sposób generowania różnią się, co pozwala na elastyczne zarządzanie siecią w różnych środowiskach. Plik 50-cloud-init.yaml
jest generowany automatycznie i służy do początkowej konfiguracji sieci. Jest powszechnie używany w środowiskach chmurowych (AWS, Azure, GCP) do automatycznej konfiguracji sieci na podstawie metadanych dostarczonych przez dostawcę chmury. Do konfiguracji sieci na lokalnych serwerach i stacjach roboczych służy plik 01-netcfg.yaml
, który jest tworzony ręcznie przez administratorów.
Podstawowe komendy Netplan
Zastosowanie konfiguracji
Po edycji pliku YAML, aby zastosować zmiany, użyj polecenia:
sudo netplan apply
Komenda netplan apply
automatycznie stosuje zmiany w konfiguracji sieci bez konieczności ręcznego restartowania sieci. Przetwarza pliki YAML w /etc/netplan/
, generuje odpowiednie pliki konfiguracyjne dla wybranego backendu (systemd-networkd
lub NetworkManager
) oraz stosuje zmiany poprzez ponowne uruchomienie odpowiednich usług sieciowych. Tylko w wyjątkowych przypadkach może być konieczne ręczne restartowanie usług sieciowych, jeśli zmiany nie zostaną poprawnie zastosowane lub jeśli wystąpią problemy.
Testowanie konfiguracji
Aby przetestować konfigurację przed jej zatwierdzeniem, użyj:
sudo netplan try
To polecenie pozwala na łatwe cofnięcie zmian w przypadku wystąpienia problemów.
Najprostszy przykład
Zastosowanie DHCP na wszystkich interfejsach sieciowych"
network:
version: 2
renderer: NetworkManager
Konfigurowanie interfejsu
Krok 1: Otwórz plik konfiguracyjny sieci
W Ubuntu 20.04 i nowszych konfiguracja sieci jest zarządzana przez netplan
. Pliki konfiguracyjne netplan
znajdują się w katalogu /etc/netplan/
. Najczęściej używany plik konfiguracyjny to 01-netcfg.yaml
.
Otwórz ten plik za pomocą edytora tekstu, np. nano
:
sudo nano /etc/netplan/01-netcfg.yaml
Krok 2: Edytuj plik konfiguracyjny
Plik konfiguracyjny netplan
jest zapisany w formacie YAML. Przykładowa konfiguracja statycznego adresu IP dla interfejsu eth0
może wyglądać następująco:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Jeżeli chcesz, aby interfejs korzystał z DHCP, możesz ustawić konfigurację tak:
network:
version: 2
ethernets:
eth0:
dhcp4: yes
Krok 3: Zapisz zmiany
Po dokonaniu odpowiednich zmian w pliku konfiguracyjnym zapisz plik i zamknij edytor. W nano
możesz to zrobić naciskając Ctrl+O
, a następnie Enter
, aby zapisać, i Ctrl+X
, aby wyjść z edytora.
Krok 4: Zastosuj konfigurację
Aby zastosować nową konfigurację sieci, użyj poniższego polecenia:
sudo netplan apply
Uwagi
Weryfikacja konfiguracji
Przed zastosowaniem konfiguracji, możesz sprawdzić poprawność pliku YAML za pomocą polecenia:
sudo netplan try
Kilka interfejsów
Jeśli masz więcej niż jeden interfejs sieciowy, możesz dodać je do pliku konfiguracyjnego. Na przykład:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
eth1:
dhcp4: yes
Edycja plików YAML dla Netplan
Podczas tworzenia plików YAML dla Netplan, należy przestrzegać kilku zasad, aby zapewnić poprawność składni i uniknąć błędów podczas parsowania pliku. Ich stosowanie pomoże w tworzeniu poprawnych plików YAML dla Netplan, co zapewni bezproblemową konfigurację i zarządzanie sieciami w Ubuntu.
Wcięcia
- YAML używa wcięć do oznaczania poziomów hierarchii danych. Standardem jest używanie dwóch spacji na każdy poziom wcięcia.
- Nigdy nie używaj tabulatorów – zawsze używaj spacji.
Struktura
- Pliki YAML mają strukturę klucz-wartość, gdzie każdy klucz jest oddzielony od wartości dwukropkiem
:
. - Struktura pliku musi być logiczna i zgodna z hierarchią wymaganą przez Netplan.
Przykład poprawnej struktury
network:
version: 2
ethernets:
eth0:
dhcp4: yes
Cudzysłowy
- Wartości nie muszą być ujęte w cudzysłów, chyba że zawierają specjalne znaki lub spacje.
- Jeśli używasz cudzysłowów, możesz stosować zarówno pojedyncze
'
, jak i podwójne"
, ale muszą one być używane konsekwentnie.
Komentarze
Komentarze zaczynają się od znaku #
i mogą być umieszczane na końcu linii lub na osobnej linii.
network:
version: 2 # Wersja schematu Netplan
ethernets:
eth0:
dhcp4: yes # Włączenie DHCP dla IPv4
Listy
Listy są tworzone za pomocą myślnika -
na początku każdego elementu listy.
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Wielkość liter
- Klucze są zazwyczaj pisane małymi literami.
- Klucze są czułe na wielkość liter, więc
dhcp4
jest innym kluczem niżDHCP4
.
Złożony przykład
Poniżej znajdziesz przykładowy rozbudowany plik netcfg.yaml
dla Netplan, zawierający różnorodne opcje konfiguracji sieci, takie jak statyczne adresy IP, VLAN, mosty sieciowe, oraz definiowanie DNS. W dalszej części każda sekcja została szczegółowo omówiona.
Plik 01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
search:
- example.com
addresses:
- 8.8.8.8
- 8.8.4.4
eth1:
dhcp4: yes
vlans:
vlan10:
id: 10
link: eth0
addresses:
- 192.168.10.1/24
bridges:
br0:
dhcp4: no
interfaces:
- eth1
- vlan10
addresses:
- 192.168.20.1/24
parameters:
stp: true
forward-delay: 4
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
Objaśnienie zastosowanych opcji
Sekcja network
- version: 2 – wersja schematu pliku konfiguracyjnego Netplan, aktualnie używana wersja to 2;
- renderer: networkd – określa, że Netplan będzie używać
systemd-networkd
do zarządzania sieciami, alternatywnie można użyćNetworkManager
.
Sekcja ethernets
- eth0: Konfiguracja dla interfejsu sieciowego
eth0
.- dhcp4: no – wyłącza DHCP dla IPv4;
- addresses – lista statycznych adresów IP przypisanych do
eth0
,- 192.168.1.100/24 – statyczny adres IP z maską podsieci 255.255.255.0.
- gateway4 – adres IP bramy domyślnej.
- nameservers:
- search – lista domen do przeszukiwania,
- addresses – lista serwerów DNS,
- 8.8.8.8 – serwer DNS Google,
- 8.8.4.4 – alternatywny serwer DNS Google.
- eth1 – konfiguracja dla interfejsu sieciowego
eth1
.- dhcp4: yes – włącza DHCP dla IPv4.
Sekcja vlans
- vlan10: Konfiguracja dla VLAN o identyfikatorze 10.
- id: 10 – identyfikator VLAN,
- link: eth0 – interfejs fizyczny, z którym VLAN jest powiązany.
- addresses:
- 192.168.10.1/24 – statyczny adres IP dla VLAN 10.
Sekcja bridges
- br0 – konfiguracja dla mostu sieciowego
br0
.- dhcp4: no – wyłącza DHCP dla IPv4.
- interfaces – lista interfejsów sieciowych, które będą częścią mostu.
- eth1 – interfejs fizyczny.
- vlan10 – interfejs VLAN.
- addresses:
- 192.168.20.1/24 – statyczny adres IP dla mostu
br0
. - parameters:
- stp: true – włącza protokół STP (Spanning Tree Protocol), który zapobiega pętlom w sieci.
- forward-delay: 4 – określa opóźnienie przekazywania ramek w sekundach.
- nameservers:
- addresses – lista serwerów DNS.
- 1.1.1.1 – serwer DNS Cloudflare.
- 1.0.0.1 – alternatywny serwer DNS Cloudflare.