DHCP (zkratka pro dynamic host configuration protocol) dynamicky přiděluje unikátní IP adresy a další informace klientským systémům. Některé z informací, které přiděluje DHCP, zahrnují název hostitele, název domény, IP adresu výchozí brány a DNS serveru atd. Ušetří systémového administrátora od starostí s ručním přidělováním IP adres a souvisejících informací každému z klientských systémů. Obvykle v domácím prostředí nebo v nastavení malé společnosti plní směrovače roli serveru DHCP. Ve velkém nastavení však musíme nakonfigurovat vyhrazený server, který bude sloužit jako server DHCP. V Linuxu můžete snadno nastavit DHCP server a přidělovat IP adresy klientům.
V tomto tutoriálu si ukážeme, jak nakonfigurovat DHCP v Linuxu tak, aby klientům automaticky přiděloval IP adresy.
Jak funguje DHCP
Pojďme si trochu vysvětlit, jak DHCP funguje:
Zvažte scénář, kdy jsou klient a server DHCP připojeni ke stejné kabelové síti.
- Když je klientský počítač zapnutý, odešle zprávu vysílání DHCPDISCOVER do každého zařízení v síti.
- Když tato zpráva dorazí na server DHCP, odešle zpět DHCPOFFER zprávu s IP adresou klientovi.
- Klient poté odešle DHCPREQUEST na server DHCP požádat o tuto IP adresu.
- Server DHCP poté odešle DHCPACK potvrdit požadavek a udělit klientovi IP adresu.
Předpoklady
- Minimálně dva počítače se systémem Linux (pro server DHCP a klienta)
- Uživatel s právy sudo
- Statická adresa IP nakonfigurovaná na serveru DHCP
Poznámka:
Pro demonstrační účely jsme použili tři linuxové stroje, které byly na stejné LAN. Můžete si je představit tak, že jsou všechny navzájem propojeny pomocí přepínače.
Server DHCP
Pro server DHCP jsme použili:
- Ubuntu 20.04 LTS se statickou IP „192.168.9.1“ a názvem hostitele „ubuntu“
Klient DHCP
Pro klienta DHCP jsme použili dva stroje:
- Ubuntu 20.04 s názvem hostitele „mypc“
- Mint 20 s názvem hostitele „mint“
Instalace serveru DHCP
Nejprve aktualizujte index systémového úložiště ve vašem systému. Chcete-li to provést, zadejte v Terminálu následující příkaz:
$ sudo apt update
Nyní zadejte v Terminálu následující příkaz pro instalaci serveru DHCP:
$ sudo apt-get install isc-dhcp-server -y
Konfigurace serveru DHCP
Před konfigurací systému Linux jako serveru DHCP se ujistěte, že má nastavenou statickou IP adresu, aby se k němu klienti mohli snadno připojit. V opačném případě bude pro klienty obtížné najít server DHCP, ke kterému se připojit.
V /etc/default/isc-dhcp-server budete muset zadat rozhraní, na kterém bude DHCP server naslouchat. Chcete-li tento soubor upravit, zadejte v Terminálu následující příkaz:
$ sudo nano /etc/default/isc-dhcp-server
Vrozhraní INTERFACESv4 e ntry, zadejte rozhraní, které má server DHCP naslouchat, například ens33, eth0, eth1 atd.
INTERFACESv4="interface_name"
V našem scénáři je rozhraníens33 , takže položka se změní na:
INTERFACESv4="ens33"
Jakmile soubor nakonfigurujete, uložte jej a zavřete.
Nyní nakonfigurujeme DHCP server pomocí jeho výchozího konfiguračního souboru umístěného na adrese /etc/dhcp/dhcpd.conf .
Upravte soubor /etc/dhcp/dhcpd.conf soubor takto:
$ sudo nano /etc/dhcp/dhcpd.conf
Odkomentujte následující řádek odstraněním # symbol před ním.
authoritative;
Do souboru také přidejte následující řádky:
default-lease-time 600; max-lease-time 7200; # subnet subnet 192.168.9.0 netmask 255.255.255.0 { # range of subnet range 192.168.9.5 192.168.9.15; # gateway address option routers 192.168.9.1; # DNS server address option domain-name-servers 8.8.8.8, 8.8.4.4; }
Jakmile soubor nakonfigurujete, uložte jej a zavřete.
Přidělte klientům statickou IP adresu ze serveru DHCP
Server DHCP ve výchozím nastavení poskytuje klientům dynamické adresy IP. Můžete jej však také nakonfigurovat tak, aby klientům přiděloval pevnou nebo statickou IP adresu. Pevné adresy jsou vyžadovány pro některá síťová zařízení, jako jsou tiskárny, směrovače, nebo když potřebujete vzdáleně připojit zařízení zvenčí. Chcete-li přiřadit statickou IP adresu konkrétnímu počítači, budete potřebovat jeho MAC adresu.
Řekněme, že chceme přiřadit klienta s MAC adresou 00:0c:29:c1:d5:d4 pevnou IP 192.168.1.13 pokaždé.
Upravte soubor /etc/dhcp/dhcpd.conf soubor a přidejte položku hostitele obsahující MAC adresu klienta a pevnou IP adresu, kterou chcete klientovi přiřadit:
host mint { hardware ethernet 00:0c:29:c1:d5:d4; fixed-address 192.168.9.13; }
Poznámka: Pevná IP adresa by neměla být z rozsahu Dynamic IP.
Nyní pokaždé, když klient s odpovídající MAC adresou (00:0c:29:c1:d5:d4) odešle zprávu DHCPDISCOVER na server DHCP, obdrží stejnou IP adresu 192.168.9.13.
Restartujte službu DHCP
Po dokončení konfigurace restartujte službu serveru DHCP. Chcete-li to provést, zadejte v Terminálu následující příkaz:
$ sudo systemctl restart isc-dhcp-server.service
Nyní ověřte stav serveru DHCP pomocí níže uvedeného příkazu:
$ sudo systemctl status isc-dhcp-server.service
Následující výstup ukazuje, že služba DHCP je aktivní a běží úspěšně bez jakýchkoli chyb.
Konfigurace klienta DHCP
Nyní nakonfigurujeme dva klientské počítače. Jednomu klientovi bude přidělena náhodná IP z rozsahu podsítě definovaného v konfiguračním souboru. Druhému klientovi bude přidělena statická IP.
Ve výchozím nastavení je v Ubuntu OS nakonfigurováno dynamické IP adresování. Pokud však používá statickou IP adresu, můžete ji nakonfigurovat tak, aby získala IP adresu ze serveru DHCP.
Klient 1 – Získejte dynamickou IP adresu ze serveru DHCP
Nejprve vyhledejte název svého síťového rozhraní pomocí následujícího příkazu:
$ ifconfig
Jakmile najdete název rozhraní, zadejte v Terminálu následující příkaz pro konfiguraci síťového rozhraní:
$ sudo nano /etc/network/interfaces
Vložte do souboru následující řádky:
auto <interface_name> iface <interface_name>inet dhcp
V našem případě by to bylo:
auto ens33 iface ens33 inet dhcp
Uložte a zavřete soubor a restartujte službu správce sítě pomocí následujícího příkazu v Terminálu:
$ sudo systemctl restart network-manager.service
Nyní spusťte příkaz ifconfig k ověření IP adresy vašeho klienta.
$ ifconfig
V následujícím výstupu můžete vidět, že klient obdržel IP adresu 192.168.9.5, která je z rozsahu podsítě definovaného v konfiguraci serveru DHCP.
Chcete-li zjistit adresu IP serveru DHCP, zadejte v Terminálu následující příkaz:
$ sudo grep -R “DHCPOFFER” /var/sys/log
Z výstupu můžete ověřit, že IP adresa je přidělena 192.168.9.1, což je IP adresa našeho DHCP serveru.
V případě, že klientský počítač nezíská žádnou IP adresu ze serveru DHCP, použijte k uvolnění/obnovení IP adresy následující příkazy:
$ sudo dhclient -r
$ sudo dhclient -v
Nyní spusťte ifconfig příkaz k ověření IP adresy klienta. Tentokrát doufejme, že klient obdrží IP adresu ze serveru DHCP.
Klient 2 – Získejte statickou IP adresu ze serveru DHCP
Pro náš druhý klientský počítač jsme přidali statickou/pevnou IP adresu do konfiguračního souboru DHCP serveru. Na klientském počítači nejprve nakonfigurujte rozhraní tak, aby získalo IP adresu ze serveru DHCP.
Najděte název svého síťového rozhraní pomocí následujícího příkazu:
$ ifconfig
Jakmile najdete název rozhraní, zadejte v Terminálu následující příkaz pro konfiguraci síťového rozhraní:
$ sudo nano /etc/network/interfaces
Vložte do souboru následující řádky:
auto <interface_name>
iface <interface_name>inet dhcp
V našem případě by to bylo:
auto ens33
iface ens33 inet dhcp
Nyní uložte a zavřete soubor a restartujte službu správce sítě pomocí následujícího příkazu v Terminálu:
$ sudo systemctl restart network-manager.service
Nyní spusťte příkaz ifconfig k ověření IP adresy vašeho klienta.
$ ifconfig
V následujícím výstupu můžete vidět, že klient obdržel pevnou IP adresu 192.168.9.13 ze serveru DHCP. Toto je stejná pevná IP adresa, kterou jsme přidali do konfiguračního souboru DHCP.
Chcete-li zjistit adresu IP serveru DHCP, zadejte v Terminálu následující příkaz:
$ sudo grep -R “DHCPOFFER” /var/sys/log
Z výstupu můžete ověřit, že IP adresy jsou přiděleny 192.168.9.1, což je náš DHCP server.
V případě, že klientský počítač nezíská žádnou IP adresu ze serveru DHCP, použijte k uvolnění/obnovení IP adresy následující příkazy:
$ sudo dhclient –r -v
$ sudo dhclient -v
Nyní spusťte ifconfig příkaz k ověření IP adresy klienta. Tentokrát doufejme, že klient obdrží IP adresu ze serveru DHCP.
Zobrazení přiřazených IP adres serverem DHCP
Ze serveru DHCP můžete také ověřit dynamické adresy, které přiděluje klientům.
Na počítači serveru DHCP spusťte v Terminálu následující příkaz a vypište adresy přiřazené serverem DHCP:
$ dhcp-lease-list
V následujícím výstupu uvidíte pouze adresy IP dynamicky přidělované serverem DHCP klientovi. Pamatujte, že neuvádí statické adresy IP, které jsou přiděleny serverem DHCP.
V tomto článku jste se naučili, jak nainstalovat a nakonfigurovat DHCP server v systému Linux a přiřadit klientům dynamické a pevné IP adresy. Konfigurace serveru DHCP v počítači se systémem Linux trvá jen několik jednoduchých kroků. Jakmile jej nakonfigurujete, automaticky přiřadí přidělující IP adresy a související informace každému počítači v síti.