ś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
dhcp4jest 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-networkddo 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.