Konfiguracja interfejsów sieciowych w Linuksie

Jak zawsze, wśród Linuksów można wskazać wiele sposobów na konfigurację jednego "zjawiska". W przypadku konfigurowania interfejsów sieciowych natomiast jest to dość podobne w większości systemów operacyjnych z tej rodziny.

W tej notatce znajdują się trzy sposoby konfiguracji: "klasyczny" - użycie pliku /etc/network/interfaces, "konsolowy", polecany w dzisiejszym świecie - użycie polecenia ip, oraz graficzny.

Wariant "klasyczny": plik /etc/network/interfaces

Plik /etc/network/interfaces służy do konfiguracji interfejsów sieciowych zainstalowanych w systemie komputerowym. Zwrócić należy jednak uwagę na to, że plik ten jest coraz rzadziej wykorzystywany. Zastępują go "menedżery sieciowe", jak na przykład NetworkManager w systemie Ubuntu.

Nazewnictwo interfejsów sieciowych

W systemie Linux każdy interfejs sieciowy ma swoją nazwę (w Windowsach też). Musimy tutaj wskazać pewną zmianę, która nastała w ich nazewnictwie. W latach 90. XX w. interfejsy otrzymywały nazwy eth0, eth1 itd. przydzielane przez jądro systemu. Wraz z rozwojem systemu proces uruchamiania staje się coraz bardziej zrównoleglony (tzn. kilka "etapów"/"zadań" zostaje wykonanych w tym samym czasie). Zwiększyło się więc prawdopodobieństwo, że w przypadku, gdy mamy w systemie komputerowym więcej niż jeden interfejs, nie otrzymają one tych samych nazw.

W związku z tym [wraz z wersją 197 pakietu systemd - ciekawostka] wprowadzono system przewidywalnych nazw. Nazwy pochodzą od miejsca instalacji karty sieciowej w systemie w następującej kolejności:

  1. na podstawie indeksu interfejsu podanego przez firmware / BIOS, np. eno1,
  2. na podstawie numeru slotu PCI Express podanego przez firmware / BIOS, np. ens1,
  3. na podstawie fizycznej lokalizacji złącza w systemie komputerowym, np. enp2s0,
  4. na podstawie adresu MAC interfejsu, np. enx0c8bfd9cb409 (przy czym ta reguła nie jest domyślnie używana, ale może być, jeśli użytkownik ją skonfiguruje),
  5. klasyczne, nieprzewidywalne nazewnictwo kernela, np. eth0.

Konfiguracja pliku

Przykładowa konfiguracja pliku /etc/network/interfaces jest następująca.

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eno1
allow-hotplug eno1
iface eno1 inet dhcp

Charakterystyczne linijki powyższej konfiguracji:

  • auto lo - dyrektywa auto oznacza, że interfejs zostanie podniesiony (uruchomiony) podczas startu systemu,
  • allow-hotplug eno1 - dyrektywa ta oznacza, że system będzie zezwalać na hotplugging przewodu sieciowego podłączanego do interfejsu eno1 (tak, nie jest to oczywiste, że możemy sobie przewód odłączać i podłączać, kiedyś trzeba było komputer wyłączyć, zmienić przewód i włączyć na nowo).
  • iface eno1 inet dhcp - dyrektywa ta oznacza, że interfejs eno1 będzie pobierać konfigurację z serwera DHCP.

Nic nie stoi na przeszkodzie, aby konfigurację interfejsu wskazać ręcznie - wykonać konfigurację statyczną.

auto eno1
allow-hotplug eno1
iface eno1 inet static
    address 192.168.1.1/24
    gateway 192.168.1.254

W ten sposób skonfigurowaliśmy statyczną adresację interfejsu eno1, podając adres IP 192.168.1.1, maskę 24-bitową (255.255.255.0) i bramę domyślną 192.168.1.254.

Możemy także wskazać maskę w osobnej linijce.

auto eno1
allow-hotplug eno1
iface eno1 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    gateway 192.168.1.254

A co z DNSami?

Plik /etc/network/interfaces służy do konfiguracji interfejsu sieciowego. Nie zawiera zatem konfiguracji adresów serwerów DNS, ponieważ nie są one obowiązkowe.

Do konfiguracji serwerów DNS używamy pliku /etc/resolv.conf (uwaga: nie mylić z programem resolvconf, który ma, niestety, praktycznie identyczną nazwę). Jego przykładowa treść jest następująca:

# This file is managed by man:systemd-resolved(8). Do not edit.

# Fragment pominięto

nameserver 192.168.1.254
nameserver 8.8.8.8
nameserver 8.8.4.4

Dyrektywa nameserver pozwoli zatem ręcznie dopisać adresy serwerów DNS, z których chcemy skorzystać.

Szczególnie ważna informacja została zawarta w pierwszej linii: ten plik jest zarządzany przez systemd-resolved(8). Nie edytuj. Jak wskazałem, wiele elementów (jeśli nie wszystkie) konfiguracji sieci zostają zastąpione przez automaty. W tym przypadku zmiany wprowadzone przez użytkownika do tego pliku mogą (i będą) zostać zmienione, np. usunięte. Szczegóły - ósma strona podręcznika dot. systemd-resolved.

Wariant "konsolowy": ip

Dawne polecenia pakietów ifup / ifdown zostały zastąpione większym pakietem o nazwie ip. Możemy z niego skorzystać, aby konfigurować interfejsy sieciowe. I tak:

  • polecenie ip a (skrót od ip address show) wypisze aktualne adresy interfejsów sieciowych,
Użycie polecenia ip a
  • polecenie ip a add 192.168.1.1/24 peer 192.168.1.254 dev enp0s3 doda do intefejsu enp0s3 adres 192.168.1.1 z maską 24-bitową i bramą domyślną 192.168.1.254; uwaga: wymaga uprawnień roota
Dodanie adresu IPv4 do interfejsu.
  • polecenie ip a del 192.168.1.1 dev enp0s3 usunie adres 192.168.1.1 przypisany do interfejsu enp0s3 (uwaga: składnia tego polecenia zmieni się w przyszłości, proszę przeczytać komunikat ze zrzutu ekranowego)
Usunięcie przypisanego adresu IPv4.

Wariant "graficzny": NetworkManager

W systemach Ubuntu czy Debian znajdziemy możliwość konfiguracji profilów sieciowych przy użyciu środowiska graficznego. To ważne: tutaj edytujemy profile powiązane z interfejsami sieciowymi.

Najprostszym sposobem jest wybór ikony połączenia sieciowego z zasobnika systemowego i wejście do edycji połączeń.

Edycja profilów sieciowych.

W tym miejscu znajdziemy utworzone profile sieciowe. Dwuklik na profil pozwoli na przejście do jego konfiguracji.

Lista połączeń.

Domyślnym ekranem konfiguracji jest karta Ethernet zawierająca opcje konfiguracji sprzętu jako takiego. Konfiguracja IPv4 znajduje się na karcie IPv4 Settings.

Domyślna karta konfiguracji połączenia.

Jedną z ważniejszych opcji jest metoda konfiguracji protokołu internetowego w wersji 4. Do wyboru mamy korzystanie z serwera DHCP (pełne lub tylko adres interfejsu, bez DNS czy innych opcji), ręczne ustawienie, korzystanie tylko z adresu link-local, udostępnianie innym komputerom lub wyłączenie protokołu.

Możliwe metody konfiguracji protokołu IPv4.

Wybór opcji Manual pozwoli na dodanie adresów. I tak, klikając przycisk Add możemy dodać odpowiedni adres.

Konfiguracja statycznego adresu IPv4.

Do skonfigurowania pozostały jeszcze adresy serwerów DNS oraz domeny poszukiwań. Te pierwsze zwykle konfigurujemy, te drugie - już rzadziej. Adresy serwerów DNS oddzielamy przecinkami.

Konfiguracja adresów serwerów DNS.

Kliknięcie w Save automatycznie zastosuje całą konfigurację.

Źródła

Odnośniki do podstawy programowej

Ucząc się tego zagadnienia, realizujesz następujące punkty podstawy programowej:

  • podstawa programowa 2017 (Dz.U.2017.860)
    • EE.08.2.10 stosuje adresację protokołu internetowego (IP),
    • EE.08.5.2 konfiguruje interfejsy sieciowe,
    • EE.08.5.3 stosuje polecenia systemów operacyjnych,
    • PKZ(EE.b).8 posługuje się terminologią dotyczącą sieci komputerowych;
  • podstawa programowa 2019 (Dz.U.2019.991)
    • INF.02.3.7.1 określa właściwości interfejsu sieciowego w różnych systemach operacyjnych,
    • INF.02.3.7.2 konfiguruje interfejsy sieciowe komputerów osobistych i urządzeń mobilnych,
    • INF.02.3.7.5 podłącza system komputerowy lub urządzenie mobilne do sieci,
    • INF.02.3.9.4 konfiguruje system operacyjny z poziomu konsoli,
    • INF.02.6.6.5 stosuje adresację IPv4 i IPv6
    • INF.02.8.4.5 uruchamia usługę klient DHCP,
    • INF.02.8.4.6 konfiguruje statyczną adresację IP na kartach sieciowych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

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