Netplan oparty jest na kodzie opisowego języka zbiorów danych jakim jest YAML, język znaczników, który w pewnym koncepcyjnym stopniu podobny jest do HTMLa, JSONa czy XMLa. Może zawierać jedynie proste struktury danych, takie jak skalary, listy czy słowniki. Co ciekawe, wykorzystuje specyficzne referencje (coś na wzór funkcji w programowaniu), dzięki czemu eliminuje redundancję (nadmiarowość) danych. Ważne, że język ten jest wrażliwy na wcięcia, które wykonujemy tu spacją a nie tabulatorem, w przeciwieństwie do języka programowania Python, w którym zawsze określona ilosć spacji
jest równoważna tabulatorowi. W związku z tym, że netplan wykorzystuje spacje należy uważać, aby nie postawić ich za dużo lub za mało: musi być ich ustalona ilość i zawsze są to dwie spacje. W YAML nie ma żadnych pętli, funkcji czy klas w ścisłym tego słowa znaczeniu, ponieważ
są niepotrzebne: YAML służy bowiem jedynie do konfiguracji usług systemowych (sieciowych w przypadku netplana). Nie oznacza to jednak, że plik taki nie może być swobodnie i bardzo wygodnie przetwarzany za pomocą języków skryptowych, wręcz przeciwnie: jako że jest prostym plikiem tekstowym, może być dowolnie przetwarzany.
Na marginesie, kiedyś usługi sieciowe w Ubuntu konfigurowało się za pomocą pliku konfiguracyjnego /etc/network/interfaces. Obecnie jego rolę przejął właśnie plik netplana. Plik ten będziemy w niniejszej instrukcji konfigurować dla Ubuntu Server, jednak nic nie stoi na przeszkodzie aby skonfigurować go również dla Lubuntu, posiada on tam jednak nieco inną nazwę.
Poniżej przedstawiam przykładowy plik netplana z konfiguracją dla dwóch interfejsów. Pierwszy z nich, enp0s3, jest skonfigurowany statycznie, drugi zaś (enp0s8), dynamicznie. Zwróć uwagę na hierarchię grafu wpisów: każdy potomek jest odległy od rodzica o dwie spacje (od lewej strony).
Przed przystąpieniem do właściwego ćwiczenia dodamy trzecią kartę sieciową - zostanie ona automatycznie nazwana w systemie jako enp0s9. Wchodzimy więc do ustawień OVB i przechodzimy
na sekcję Sieć, po czym aktywujemy trzecią kartę sieciową podłączoną do sieci wewnętrznej.
Sprawdzanie adresu IP
W ćwiczeniu z DHCP użyta została komenda ip addr show, która - jak wiadomo - służy do sprawdzania adresu/ów IP oraz listuje interfejsy sieciowe. W Linuksie dwa pierwsze interfejsy
nazywają się odpowiednio enp0s3 i enp0s8. Trzeci interfejs zostaje nazwany zgodnie z kolejnością, i - jak widać wyżej - posiada oznaczenie enp0s9.
Z kolei interfejs lo oznacza loopbacka, czyli adres pętli zwrotnej.
Wspomniane polecenie wyświetla adres IP danego interfejsu, oraz jego maskę podsieci i adres MAC.
Jeżeli po wydaniu tego polecenia otrzymamy informację w rodzaju State UP, oznaczać to będzie, że interfejs jest uruchomiony, natomiast jeżeli naszym oczom ukaże się przy którymś z interfejsów
informacja State DOWN oznacza to, że
interfejs jest wyłączony. Jak widać, trzeci w kolejności interfejs jest wyłączony (enp0s9). Przydzielimy mu zatem adres IP z serwera DHCP.
Wprowadzanie adresu IP za pomocą netplana
Plik netplana pozwala na permanentne zapisanie pożądanej adresacji IP dla danego interfejsu. Plik ten znajduje się w katalogu /etc/netplan/ i posiada rozszerzenie *.yaml. Nazwa tego pliku czasem
może się różnić, chociażby w zależności od dystrybucji, dlatego zanim dokonamy próby jego edycji, lepiej jest sprawdzić jak on się nazywa. W tym celu listujemy zawartość ww. katalogu poleceniem ls -a /etc/netplan/ i uzyskujemy jego nazwę
w postaci 00-installer-config.yaml.
Następnie edytujemy sam plik poleceniem sudo nano /etc/netplan/00-installer-config.yaml. Zawartość pliku serwerowego netplana przedstawia się jak na poniższym zrzucie ekranu. Widać, że posiadamy
dwa interfejsy i oba mają przydzielone adresy statyczne, tak jak to zostało zrobione podczas instalacji systemu Ubuntu Server.
Dodamy więc kolejny wpis odnośnie nowododanej karty sieciowej. Zajmiemy się więc interfejsem enp0s9, odnośnie którego wprowadzimy pełną informację
łącznie z wpisem żądania uzyskania adresu z DHCP. Jak na razie interfejs ten ma status DOWN i nie posiada żadnego adresu IP, co widać było na jednym
z poprzednich zrzutów ekranu. Jeśli więc chcielibyśmy przydzielić mu adres z DHCP, należy zmienić odpowiednie wpisy dla tego interfejsu.
Na serwerze mamy zainstalowaną i skonfigurowaną usługę DHCP (poprzednie ćwiczenie) na interfejsie enp0s8 więc nic nie stoi na przeszkodzie
aby interfejs enp0s9 uzyskał adres IP z DHCP propagowanych za pomocą za pomocą enp0s8. Dodajemy nowy wpis zgodnie z poniższym zrzutem ekranu po czym zapisujemy plik.
Ten zrzut ekranu należy włączyć do sprawozdania
Następnie testujemy poprawność przeprowadzonych modyfikacji poleceniem sudo netplan try (w razie potrzeby potwierdzamy Enterem, w przeciwnym przypadku po określonym czasie mierzonym w sekundach zmiany zostaną odwrócone)
po czym aplikujemy zmiany poleceniem sudo netplan apply
po czym sprawdzamy poleceniem ip addr show czy zmiany zostały zastosowane. Jak widać na poniższym zrzucie ekranu dla interfejsu enp0s9 pobrany został dzięki usłudze DHCP dynamiczny adres IP.
Ten zrzut ekranu należy włączyć do sprawozdania
Wyłączanie i włączanie interfejsu
Interfejs można wyłączyć poleceniem sudo ip l set dev enp0s9 down. Z kolei aby z powrotem go włączyć należy wydać polecenie sudo ip l set dev enp0s9 up.
Ten zrzut ekranu należy włączyć do sprawozdania