Konfiguracja sieci (IP)

Damian Stelmach

Ustawienia IP dla kart sieciowych w Ubuntu można wykonać na trzy sposoby:

  • podczas instalacji systemu
  • poprzez polecenia terminala
  • poprzez edycję pliku ustawień sieci

Konfiguracja IP podczas instalacji systemu to najłatwiejszy sposób przypisania IP do poszczególnych kart sieciowych. Jeśli jednak tego nie zrobimy, musimy takiej konfiguracji dokonać już po tym, gdy system zostanie już zainstalowany. Bez względu na to jakiego sposobu chcemy użyć (to znaczy czy chcemy wykonać polecenie konsoli czy też edytować plik z ustawieniami), musimy poznać nazwy interfejsów sieciowych w systemie. Można to zrobić wydając jedno z dwóch poleceń:

ifconfig -a

Albo też:

ip a

Jedno i drugie polecenie wyświetli nam nazwy kart sieciowych oraz ustawienia IP jeśli takie karty już posiadają. W niektórych systemach ifconfig może nie działać, wówczas należy stosować polecenia z grupy ip.

W starszych wydaniach Ubuntu i w każdej innej dystrybucji interfejsy sieciowe kiedyś nazywały się np. eth0, eth1, czy np. wlan0 i wlan1 dla sieci bezprzewodowych. W związku z tym, że takie nazewnictwo powodowało czasem problemy, np. po restartach systemu kraty zmieniały swoje nazwy i usługi sieciowe nie działały, zaczęto stosować nazewnictwo interfejsów, oparte o np. położenie fizyczne kart sieciowych na płycie głównej.

W VirtualBox pierwsza karta sieciowa nazywa się enp0s3, a druga, trzecia i czwarta, odpowiednio: enp0s8, enp0s9 i enp0s10.

Znając już nazwy kart możemy wykonać jedno z dwóch poleceń ustawiających IP (każde należy wykonać na prawach roota:

ifconfig enp0s8 10.10.10.1 netmask 255.255.255.0 up

gdzie enp0s8 to nazwa karty, 10.10.10.1 to adres IP, 255.255.255.0 to maska, a parametr up uruchamia interfejs. To polecenie możemy wykorzystać jeśli działa ifconfig.

Albo też:

ip a add 10.10.10.1/24 dev enp0s8
ip l set enp0s8 up

Pierwsze polecenie nadaje dla karty enp0s8 adres IP, a drugie uruchamia kartę.

Ta opcja dotycząca ustawień IP posiada niestety jedną zasadniczą wadę. Po restarcie maszyny ustawienia nam znikają. Oczywiście da się napisać skrypt, który będzie odpalał się przy starcie systemu i ustawiał IP, ale to jeszcze nie czas na pisanie skryptów. Można jednak wrócić do klasyki i ustawić IP na sztywno, dodając odpowiednie wpisy w pliku konfiguracyjnym sieci. W nowych systemach Ubuntu (od wersji 17.10) konfiguracja IP zapisywana jest w pliku /etc/netplan/50-cloud-init.yaml (w niektórych systemach numer może być inny). W starszych wersjach Ubuntu ustawienia IP znajdują się w pliku /etc/network/interfaces

Konfiguracja IP w pliku /etc/netplan/50-cloud-init.yaml wygląda następująco:

netplan

Plik zawiera ustawienia dla dwóch kart: enp0s3 oraz enp0s8. Pierwsza karta adres otrzymuje automatycznie z serwera DHCP, druga ma ustawiony statyczny adres 10.10.10.1/24, bramę 10.10.10.254 oraz DNSy 8.8.8.8 i 8.8.4.4.

Plik edytowany został za pomocą edytora mcedit (edycja wybranego pliku rozpoczyna się po wciśnięci klawisza F4 na klawiaturze), który jest integralną część pakietu mc, ale można go również edytować innym edytorem, np. nano. Aby można było zapisać zmiany w tym pliku (klawisz F2 na klawiaturze zapisuje zmiany w mc), samo mc musi być uruchomione na prawach roota. Po zapisaniu zmian w pliku należy je następnie zastosować, wydając polecenie:

netplan apply

UWAGA!

Konfiguracja IP z pliku .yaml może się okazać kłopotliwa. Plik jest bardzo wrażliwy na składnię i każdy niepotrzebny znak, tabulator czy brak odpowiedniego odstępu może spowodować, że zmiany nie zostaną zapisane i wyświetlone zostaną komunikaty błędów przy próbie wykonania polecenia netplan apply. Zwracajcie uwagę na to, aby każdy wpis był umieszczony w odpowiedni sposób (jak na grafice) i aby wcięć nie robić klawiszem TAB, tylko spacją.

Konfiguracja IP w pliku /etc/network/interfaces nie jest tak uciążliwa i wygląd następująco:

interfaces

Po zapisaniu pliku wykonujemy restart usług sieciowych za pomocą polecenia:

/etc/init.d/networking restart

Ten sposób stosuje się tylko w systemach Ubuntu 17.10 i starszych. W nowych systemach zalecane jest używanie netplan i pliku .yaml