Netplan jest narzędziem zarządzającym konfiguracją wszelkich aspektów konfiguracji sieci komputerowych podłączonych do urządzenia z systemem Linux. System Ubuntu zaadaptował to narzędzie w wersji 17.10 Artful Aardvark (Pomysłowy Mrównik) i od tamtej pory należy z niego korzystać, aby „trwale” skonfigurować sieć w systemie.
Dzięki netplanowi możliwe jest:
- konfigurowanie tylko podanych interfejsów / urządzeń (te niewymienione w pliku konfiguracyjnym nie są "ruszane"),
- wykorzystanie sieci w ekstremalnie okrojonym systemie (wręcz na etapie initramfs),
- bardzo szybka zmiana konfiguracji, ponieważ jest ona ustalana przy starcie systemu i tracona przy restarcie (efemeryczna),
- możliwe jest generowanie maszyn wirtualnych / kontenerów z zadaną konfiguracją sieciową jedynie poprzez dodanie pliku konfiguracyjnego do jej plików.
Jeśli nie masz za dużo czasu, tutaj wersja tl;dr
- Jeśli konfigurujesz netplan pierwszy raz w życiu, pomiń tę sekcję. Nie będziesz wiedzieć, o co chodzi.
- W podręczniku na końcu są dwa przykłady, jeden prosty, drugi rozbudowany; wpisz w konsoli
man netplan
, zjedź na koniec (klawisz End) i trochę się cofnij - do początku sekcji Examples. - Plik konfiguracyjny jest w
/etc/netplan/
(tu wciśnij Tab), musisz go edytować jako root (sudo nano
i tak dalej). - Plik jest w formacie YAML, wcięcia mają znaczenie (jak w Pythonie) - standardowo dwie spacje na jeden poziom zagłębienia.
- Po zapisaniu pliku przetestuj konfigurację:
sudo netplan try
. Jeśli wszystko będzie ok, będziesz mieć dwie minuty na weryfikację - sprawdź w innej konsoli, czy wszystko jest ok, tutaj informacja jak. - Jeśli w ciągu odliczania wciśniesz Enter, zatwierdzisz konfigurację. Jeśli nie, możesz to zrobić potem wpisując
sudo netplan apply
.
Po co jest netplan?
Netplan jest narzędziem, które zastąpiło zestaw narzędzi z pakietu ifupdown. Z tego powodu narzędzia takie jak ifconfig czy iwconfig przestały działać - nie ma już ich w Ubuntu w domyślnej konfiguracji.
Netplan służy do konfiguracji interfejsów sieciowych w systemach linuksowych. Opiera się o plik konfiguracyjny w formacie YAML zawierający oczekiwany rezultat działania sieci. Oznacza to, że w pliku opisujemy efekt końcowy, a netplan załatwia za nas resztę ustawień.
Pliki konfiguracyjne znajdują się w /etc/netplan/
. Będą przetwarzane według kolejności nazw plików - stąd zwykle znajduje się tam jeden plik. Brane są pod uwagę wyłącznie pliki z rozszerzeniem .yaml
. (Uwaga: to nie jest format zarezerwowany tylko dla netplanu, lecz ogólny format plików konfiguracyjnych używany w wielu narzędziach. Spełnia zatem podobną rolę co formaty JSON czy XML. Jego opis znajdziesz na tej stronie).
Poniższy schemat przedstawia przegląd działania netplanu.
Domyślna konfiguracja: DHCP na wszystkich interfejsach
Podstawowa konfiguracja netplanu "nie robi nic" - co oznacza, że wszystkie interfejsy sieciowe będą próbowały uzyskać adres IP z DHCP.
network: version: 2 renderer: NetworkManager
Cały plik definiuje sieć, zatem główną sekcją pliku jest network:
. Każda kolejna część stanowi pod-sekcję opisu sieci. Zwróć uwagę, że zagłębienie (wcięcie) reprezentuje zależność pomiędzy elementami.
Zapis version: 2
oznacza, że mamy do czynienia z plikiem konfiguracyjnym netplanu w wersji drugiej schematu pliku (nie wersji pliku jako takiej). Zapis renderer: NetworkManager
oznacza, że programem odpowiedzialnym za wprowadzanie konfiguracji ma być NetworkManager
(może to być także systemd-networkd
; w chwili tworzenia tego wpisu inne narzędzia nie są obsługiwane).
Podstawowa konfiguracja: IP, brama domyślna, serwery DNS
Najczęstszą konfiguracją, której chcemy dokonać, jest ustawienie adresu IP, bramy domyślnej oraz serwerów DNS, podobnie jak w systemie Windows. Spróbujmy dokonać konfiguracji takiej jak na zrzucie poniżej. Przyjmijmy, że nazwa interfejsu sieciowego to enp0s3.
Ważna sprawa. Utwórz najpierw kopię bieżącej konfiguracji - nawet jeśli masz pewność, że nic się po drodze nie zepsuje. Podziękujesz sobie w przyszłości 🙂
Oto plik konfiguracyjny implementujący konfigurację sieciową ze zrzutu powyżej.
network: version: 2 renderer: NetworkManager ethernets: enp0s3: dhcp4: no addresses: [192.168.0.227/24] routes: - to: default via: 192.168.0.1 nameservers: addresses: [1.1.1.1, 1.0.0.1]
Przeanalizujmy ten przykład w kolejności nowo dodanych linii.
Sekcja ethernets:
oznacza, że konfigurujemy interfejsy Ethernet. Podsekcja enp0s3:
oznacza, że konfigurujemy interfejs Ethernet o nazwie enp0s3
.
- Zapis
dhcp4: no
(lubdhcp4: false
) oznacza, że wyłączamy automatyczne pobieranie konfiguracji z DHCP (zwróć uwagę, że to nie jest obowiązkowe, technicznie można skonfigurować adres z dhcp i statyczny jednocześnie). - Zapis
addresses: [192.168.0.227/24]
oznacza, że należy skonfigurować adres IPv4 192.168.0.227 z maską 255.255.255.0. W tym nawiasie można po przecinku wymienić więcej adresów (tak, tak też można).- Zamiast listy w nawiasach kwadratowych można wymienić także elementy od minusów:
addresses: - 192.168.0.227/24
- Zapis routes: definiuje routing. Jedyna droga - to: default - oznacza drogę domyślną (bramę domyślną / drogę ostatniej szansy).
- Uwaga. Zapis
gateway4:
jest uznany za przestarzały i należy go unikać, ponieważ w przyszłości zostanie on usunięty z przetwarzania netplanu i nie będzie działać.
- Uwaga. Zapis
- Zapis
nameservers:
definiuje używane serwery nazw. Jest możliwe ich ustawienie domen przeszukiwania (w podsekcjisearch:
) czy adresów DNSów (w podsekcjiaddresses:
).
Wdrażanie konfiguracji
Zacznij od przetestowania konfiguracji. Wprowadź polecenie sudo netplan try
. Aktualna konfiguracja zostanie tymczasowo zbackupowana, a wprowadzona przez Ciebie konfiguracja zostanie wdrożona. Jeśli ten proces się powiedzie, będziesz mieć 120 sekund na jej przetestowanie. Jeśli uznasz, że wszystko jest ok, możesz kliknąć Enter, aby ją zatwierdzić.
Jeśli minie czas lub chcesz od razu wprowadzić konfigurację, użyj polecenia sudo netplan apply
. Używaj go tylko wtedy, gdy masz pewność, że konfiguracja jest napisana poprawnie.
Jak to zapamiętać?
Po pierwsze, nie ucz się tego na pamięć. Zrozum, o co chodzi, a zapamiętasz, co trzeba zrealizować.
Po drugie, korzystaj z dokumentacji. Zarówno w pracy, jak i na egzaminie zawodowym, dokumentacja do netplanu będzie dostępna - użyj polecenia man netplan
. Na końcu strony z podręcznika znajduje się sekcja Examples z gotowymi, prostymi i zaawansowanymi przykładami konfiguracji sieci. Skorzystaj z nich, aby skonfigurować potrzebną Ci sieć.
Co można jeszcze zrobić z netplanem?
W skrócie: wszystko. Oto ciekawe przykłady z dokumentacji:
- podłączenie się do sieci Wi-Fi,
- łączenie kilku interfejsów w jeden (bonding),
- konfiguracja VLANów (tak, komputer też może być w kilku VLANach na jednym interfejsie),
- konfiguracja użycia serwera DHCP postawionego na Windows Server.
Źródła:
- Witryna Canonical Netplan - https://netplan.io/ (dostęp: 16.07.2023).
- Opracowanie własne.
Podstawa programowa:
- INF.02.3. Przygotowanie stanowiska komputerowego do pracy
- 7) konfiguruje i zarządza systemami operacyjnymi Windows i Linux
- 2) konfiguruje interfejsy sieciowe komputerów osobistych i urządzeń mobilnych
- 8) konfiguruje ustawienia personalne systemów klienckich według wskazań
- 7) konfiguruje i zarządza systemami operacyjnymi Windows i Linux
- INF.02.6. Montaż i eksploatacja lokalnej sieci komputerowej
- 6) stosuje adresację Protokołu Internetowego (IP)
- 5) stosuje adresację IPv4 i IPv6
- 9) stosuje zapis maski z użyciem CIDR
- 6) stosuje adresację Protokołu Internetowego (IP)
- INF.02.8. Administrowanie serwerowymi systemami operacyjnymi
- 4) stosuje protokoły w sieci komputerowej
- 3) konfiguruje interfejsy sieciowe
- 5) uruchamia usługę klient DHCP
- 6) konfiguruje statyczną adresację IP na kartach sieciowych
- 4) stosuje protokoły w sieci komputerowej