Dynamic Host Configuration Protocol Daemon bez DHCPd
Napisał: Patryk Krawaczyński
Wczoraj w Administracja, Hacks & Scripts Brak komentarzy. (artykuł nr 946, ilość słów: 438)
A
gdybym Ci powiedział, że Linux nie potrzebuje żadnego zewnętrznego klienta DHCP, menedżera sieciowego ani innego narzędzia do konfiguracji sieci, aby skutecznie przeprowadzić proces konfiguracji jednego interfejsu sieciowego na dowolnym serwerze? Wystarczy tylko jądro i bootloader. W dodatku metoda ta jest kompatybilna wstecz aż do wersji Linuksa 2.0 z 1996 roku. Mowa tutaj o mechanizmie nfsroot, który pierwotnie został stworzony dla stacji bezdyskowych, a zawarty w nim parametr jądra ip= to przydatne narzędzie, które może w różnych sytuacjach pomóc skonfigurować sieć bez dodatkowego oprogramowania. Jeśli dobrze się wczytamy to dokumentacja nfsroot definiuje składnię parametru ip=, który poinstruuje jądro, jak skonfigurować wybrany interfejs sieciowy podczas startu systemu. Choć nazwa sugeruje powiązanie z NFS (ang. Network File System), mechanizm ten działa niezależnie od tego, czy ostatecznie zamontujemy system plików przez sieć. Jego składnia jest bardzo prosta:
ip=[klient]:[server]:[brama]:[maska]:[host]:[interfejs]:[autokonf]:[dns0]:[dns1]:[ntp0]
Gdzie:
- klient – to adres IP jaki chcemy przypisać interfejsowi sieciowemu.
- server – adres IP serwera NFS (możemy pominąć, jeśli nie montujemy systemu plików).
- brama – adres IP bramy sieciowej odpowiedzialnej za dostęp do sieci / internetu.
- maska – maska sieciowa definiująca do jakiej podsieci należy adres IP z pola klient.
- host – nazwa hosta / serwera.
- interfejs – nazwa interfejsu sieciowego, dla którego chcemy skonfigurować adresację sieciową.
- autokonf – określa jakim protokołem skonfigurować interfejs: dhcp, bootp, rarp lub off (statycznie).
- dns0 – adres pierwszego serwera DNS (działa tylko serwerem NFS), który pojawi się w
/proc/net/pnp. - dns1 – adresu drugiego serwera DNS (działa tylko serwerem NFS), który pojawi się w
/proc/net/pnp. - ntp0 – adres serwera NTP, który pojawi się w
/proc/net/ipconfig/ntp_servers.
Przykłady:
GRUB_CMDLINE_LINUX="ip=192.168.254.2::192.168.254.1:255.255.255.0:darkstar:enp0s8:off:::"
Ustawi na interfejsie enp0s8 statyczny adres IP: 192.168.254.2/24, którego bramą sieciową jest: 192.168.254.1. Jeśli nie podamy nazwy interfejsu sieciowego zostanie wybrany pierwszy interfejs w systemie.
GRUB_CMDLINE_LINUX="ip=:::::enp0s8:dhcp:::"
Skonfiguruje interfejs enp0s8 za pomocą protokołu DHCP. Jeśli nie podamy nazwy interfejsu sieciowego zostanie wybrany pierwszy interfejs w systemie. Natomiast jeśli posiadamy tylko jeden interfejs to sprawa uproszcza się do krótkiego wpisu:
GRUB_CMDLINE_LINUX="ip=dhcp"
Fraza GRUB_CMDLINE_LINUX w powyższych przykładach pojawia się nie bez powodu, ponieważ zastosowanie tej metody w systemie (np. Debian / Ubuntu) wymaga zmodyfikowania parametrów startowych w programie rozruchowym GRUB. Poprzez edycję pliku: /etc/default/grub i dopisanie do linii GRUB_CMDLINE_LINUX odpowiednio dobranego parametru ip= aktywujemy mechanizm przy starcie systemu. Po edycji i zapisie w/w pliku wymagana jest aktualizacja konfiguracji GRUB:
sudo update-grub
Należy tylko pamiętać, że sterownik karty sieciowej musi być wkompilowany w jądro systemu lub dostępny w obrazie initrd/initramfs.
Więcej informacji: Setting a Static IP Address Using the Kernel Command Line, Kernel-only network configuration on Linux
Poprzedni wpis Brak nowszych postów

