Kompletny przewodnik po używaniu Netplan w Ubuntu | Od podstaw do zaawansowanej konfiguracji sieci

1. Przegląd Netplan w Ubuntu

Co to jest Netplan?

Netplan jest narzędziem do zarządzania konfiguracją sieci wprowadzonego w Ubuntu 17.10 i późniejszych wersjach. Wcześniej do konfiguracji sieci używano ifconfig oraz /etc/network/interfaces, ale Netplan zapewnia nowe, bardziej ustrukturyzowane podejście. Jedną z kluczowych cech Netplan jest użycie plików YAML do konfiguracji sieci, co pozwala na prostą i spójną konfigurację, łatwą w zarządzaniu, nawet w przypadku złożonych ustawień sieciowych.

Netplan obsługuje backendy takie jak NetworkManager i systemd-networkd, co czyni go odpowiednim zarówno dla środowisk desktopowych, jak i serwerowych Ubuntu. Dzięki temu możliwe jest jednolite zarządzanie sieciami w różnych konfiguracjach.

Dlaczego używać Netplan?

W porównaniu z tradycyjnymi metodami konfiguracji sieci, Netplan oferuje kilka zalet:

  1. Prosta składnia : format YAML jest intuicyjny i strukturalny, co ułatwia czytanie i rozumienie konfiguracji, nawet dla początkujących.
  2. Zunifikowane zarządzanie : może być używany zarówno w środowiskach desktopowych, jak i serwerowych, umożliwiając scentralizowane zarządzanie różnymi konfiguracjami sieci.
  3. Dynamiczne zmiany : możesz modyfikować plik konfiguracyjny i natychmiast zastosować zmiany, odzwierciedlając aktualizacje w czasie rzeczywistym.

Podstawowa struktura Netplan

Pliki konfiguracyjne Netplan zazwyczaj znajdują się w katalogu /etc/netplan/ i mają rozszerzenie .yaml. Zawierają one ustawienia interfejsów sieciowych, adresów IP oraz serwerów DNS.

Przykład podstawowego pliku konfiguracyjnego Netplan przedstawiono poniżej:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

W tym przykładzie interfejs Ethernet enp3s0 jest skonfigurowany do uzyskiwania adresu IP za pomocą DHCP.

Rola Netplan w Ubuntu 18.04 LTS i nowszych

Od wersji Ubuntu 18.04 LTS Netplan jest instalowany domyślnie i jest szeroko stosowany do zarządzania siecią zarówno w środowiskach serwerowych, jak i desktopowych. W środowiskach serwerowych, gdzie często wymagane są wiele interfejsów sieciowych i statyczne konfiguracje IP, Netplan okazuje się szczególnie przydatny.

Następnie omówimy, jak konfigurować sieci przy użyciu Netplan.

2. Podstawowa konfiguracja Netplan

Lokalizacja plików konfiguracyjnych Netplan

Pliki konfiguracyjne Netplan zazwyczaj są przechowywane w katalogu /etc/netplan/. Edytując pliki .yaml w tym katalogu, możesz modyfikować ustawienia sieciowe. Typową nazwą pliku jest 50-cloud-init.yaml, ale może się ona różnić w zależności od środowiska systemowego.

Aby otworzyć plik konfiguracyjny, możesz użyć edytora tekstu, takiego jak vi lub nano, jak pokazano poniżej:

sudo vi /etc/netplan/50-cloud-init.yaml

Konfigurowanie dynamicznego adresu IP (DHCP)

Aby automatycznie uzyskać adres IP za pomocą DHCP, użyj poniższej konfiguracji YAML. Jest to najprostsze ustawienie i jest powszechnie stosowane w domowych i biurowych środowiskach.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

Konfigurowanie statycznego adresu IP

W niektórych środowiskach konieczne jest przypisanie stałego adresu IP serwerom lub określonym urządzeniom. Poniższy przykład pokazuje, jak skonfigurować statyczny adres IP:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Zastosowanie konfiguracji

Po edycji pliku konfiguracyjnego zastosuj zmiany, używając następującego polecenia:

sudo netplan apply

Weryfikacja konfiguracji

Aby sprawdzić, czy ustawienia Netplan zostały poprawnie zastosowane, użyj poniższego polecenia, aby sprawdzić status interfejsów sieciowych:

ip a

3. Konfigurowanie wielu interfejsów sieciowych

Konfigurowanie wielu interfejsów Ethernet

Serwery i urządzenia z wieloma interfejsami sieciowymi mogą przypisywać różne adresy IP i ustawienia do każdego interfejsu. Poniższy przykład konfiguruje dwa interfejsy Ethernet z różnymi ustawieniami:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
    enp4s0:
      addresses:
        - 192.168.1.150/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Konfigurowanie łączenia sieciowego (Network Bonding) dla redundancji

Łączenie sieciowe (network bonding) łączy wiele interfejsów sieciowych w jeden wirtualny interfejs, aby zwiększyć redundancję i dostępność. Poniższy przykład konfiguruje dwa interfejsy Ethernet jako połączony interfejs bond0:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: enp3s0

Konfigurowanie połączeń Wi‑Fi

Netplan może również konfigurować połączenia Wi‑Fi. Poniższy przykład ustawia połączenie z określonym SSID:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      access-points:
        "my_wifi_network":
          password: "password1234"
      dhcp4: true

Konfigurowanie VLAN‑ów

W określonych przypadkach użycia, wirtualne sieci LAN (VLAN‑y) mogą być używane do logicznego segmentowania sieci. Netplan obsługuje konfigurację VLAN. Poniższy przykład tworzy VLAN na interfejsie enp3s0:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.1/24

4. Zaawansowana konfiguracja Netplan

Konfigurowanie routingu statycznego

Podczas łączenia sieci przez wiele routerów wymagany jest routing statyczny. Korzystając z Netplan, możesz konfigurować trasy statyczne, aby określić ścieżkę ruchu do określonych adresów IP lub sieci. Poniżej znajduje się przykład routingu statycznego:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1

W tej konfiguracji interfejs enp3s0 otrzymuje statyczną trasę do sieci 10.0.0.0/24 poprzez domyślną bramę 192.168.1.1. Pozwala to na kierowanie ruchu przez wyznaczoną ścieżkę.

Konfigurowanie wielu domyślnych bram

Gdy istnieje wiele interfejsów sieciowych, Netplan umożliwia ustawienie różnych domyślnych bram dla każdego interfejsu. Jest to przydatne w środowiskach, które wymagają dostępu do Internetu przez różne segmenty sieciowe. Poniżej znajduje się przykładowa konfiguracja:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
    enp4s0:
      addresses:
        - 10.0.0.100/24
      gateway4: 10.0.0.1

Konfigurowanie serwerów DNS

Netplan umożliwia łatwą konfigurację statycznych serwerów DNS. Poniższy przykład określa publiczne serwery DNS Google (8.8.8.8 i 8.8.4.4):

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Zaawansowane łączenie sieciowe

Oprócz podstawowego łączenia, możesz dostosować tryby bonding, aby uzyskać różne funkcjonalności. Poniższy przykład konfiguruje bonding w trybie round‑robin:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: balance-rr

The balance-rr (round-robin) tryb rozdziela ruch pomiędzy interfejsami, aby rozłożyć przepustowość, poprawiając wydajność. Inne tryby, takie jak active-backup do przełączania awaryjnego i balance-tlb do równoważenia obciążenia, można wybrać w zależności od wymagań.

Zaawansowana konfiguracja VLAN

VLAN (Virtual LAN) jest używany w dużych sieciach do logicznego segmentowania ruchu. Netplan obsługuje konfigurację VLAN, jak pokazano w poniższym przykładzie:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan100:
      id: 100
      link: enp3s0
      addresses:
        - 192.168.100.1/24

Tutaj o ID 100 jest przypisany do enp3s0 i otrzymuje statyczny adres IP 192.168.100.1. Pomaga to w segmentacji sieci w celu zwiększenia bezpieczeństwa i zarządzania ruchem.

5. Rozwiązywanie problemów z Netplan

Chociaż Netplan jest bardzo wygodny, mogą wystąpić błędy konfiguracji i problemy specyficzne dla systemu. Ta sekcja wyjaśnia typowe problemy z Netplan oraz ich rozwiązania, pomagając skutecznie radzić sobie z błędami połączeń sieciowych i nieprawidłowymi konfiguracjami.

Typowe problemy Netplan i ich przyczyny

1. Konfiguracja nie jest stosowana

Jeśli zmiany wprowadzone w Netplan nie są stosowane, możliwe przyczyny to:

  • Błędy wcięć YAML : Składnia YAML jest rygorystyczna pod względem wcięć. Nieprawidłowe spacje lub tabulatory mogą spowodować, że konfiguracja będzie nieprawidłowa.
  • Nieprawidłowa nazwa interfejsu : Netplan wymaga poprawnej nazwy interfejsu sieciowego. Użyj polecenia ip a, aby zweryfikować i upewnić się, że pasuje do Twojej konfiguracji.

Rozwiązania

  1. Po zapisaniu pliku konfiguracyjnego zastosuj go, używając następującego polecenia:
sudo netplan apply
  1. Jeśli wystąpi błąd, użyj polecenia sudo netplan try, aby przetestować zmiany przed ich trwałym zastosowaniem.
sudo netplan try

2. Błędy połączenia sieciowego

Jeśli sieć nie działa, możliwe przyczyny to:

  • Nieprawidłowa konfiguracja bramy lub DNS : Upewnij się, że podano prawidłowe adresy IP i serwery DNS.
  • Problemy z fizycznym interfejsem : Sprawdź kable sieciowe i sprzęt, aby potwierdzić, że są prawidłowo podłączone.

Rozwiązania

  1. Użyj polecenia ping, aby sprawdzić łączność, na przykład:
ping 8.8.8.8
  1. Zrestartuj usługę sieciową, jeśli to konieczne:
sudo systemctl restart networkd

Sprawdzanie logów pod kątem błędów

Aby rozwiązywać problemy, logi systemowe dostarczają cennych informacji. Użyj poniższego polecenia, aby sprawdzić logi związane z Netplan:

journalctl -u systemd-networkd

6. Podsumowanie i kolejne kroki

Netplan upraszcza konfigurację sieci w Ubuntu, czyniąc ją bardziej wydajną i łatwiejszą w zarządzaniu. Poniżej znajduje się podsumowanie jego kluczowych zalet:

  1. Intuicyjna konfiguracja oparta na YAML : Łatwiejsza do odczytania i zapisania w porównaniu z tradycyjnymi metodami.
  2. Elastyczna konfiguracja sieci : Obsługuje wiele interfejsów, bonding, statyczne routowanie i VLANy.
  3. Jednolity interfejs : Działa w różnych środowiskach Ubuntu przy zachowaniu spójnego podejścia.
  4. Zmiany konfiguracji w czasie rzeczywistym : Ustawienia sieci mogą być aktualizowane natychmiast.

Dalsza nauka

Gdy opanujesz podstawy, rozważ dalsze zagadnienia:

  • Konfiguracja sieci wirtualnych : Wdrożenie VLANów w celu zwiększenia bezpieczeństwa sieci.
  • Obsługa IPv6 : Skonfiguruj IPv6, aby zapewnić przyszłościową sieć.
  • Automatyzacja za pomocą skryptów : Użyj Ansible lub Puppet do automatyzacji konfiguracji sieci.

Przydatne zasoby