Konfiguracja interfejsów sieciowych w Linuksie z wykorzystaniem netplanu

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.

Schemat działania netplanu. Źródło: https://netplan.io/, dostęp: 16.07.2023.

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.

Docelowa konfiguracja sieciowa.

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 (lub dhcp4: 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ć.
  • Zapis nameservers: definiuje używane serwery nazw. Jest możliwe ich ustawienie domen przeszukiwania (w podsekcji search:) czy adresów DNSów (w podsekcji addresses:).

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ć.

Sekcja przykładów w dokumentacji netplanu dostępnej w systemach linuksowych. Źródło: własne.

Co można jeszcze zrobić z netplanem?

W skrócie: wszystko. Oto ciekawe przykłady z dokumentacji:


Źródła:

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ń
  • 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
  • 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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.