23.3 A dhcpd DHCP-kiszolgáló

Minden DHCP-rendszer központi része a dinamikus gépkonfigurációs protokollt kezelo démon. A kiszolgáló kiosztja a címeket, majd az /etc/dhcpd.conf konfigurációs fájlban megadott beállításoknak megfeleloen figyeli a használatukat. A fájlban lévo paraméterek és értékek módosításával a rendszergazda többféleképp befolyásolhatja a program viselkedését. A Példa 23-1 példa egy egyszeru /etc/dhcpd.conf példafájlt mutat be.

Példa 23-1 Az /etc/dhcpd.conf konfigurációs fájl

default-lease-time 600;         # 10 minutes
max-lease-time 7200;            # 2  hours

option domain-name "example.com";
option domain-name-servers 192.168.1.116;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;

subnet 192.168.2.0 netmask 255.255.255.0
 {
  range 192.168.2.10 192.168.2.20;
  range 192.168.2.100 192.168.2.200;
 }

Ez az egyszeru konfigurációs fájl elegendo ahhoz, hogy a DHCP-kiszolgáló IP-címeket osszon ki a hálózatban. Figyeljen arra, hogy minden sor végén legyen pontosvesszo, mivel ellenkezo esetben a dhcpd nem lesz elindítva.

A példafájl három részre osztható. Az elso megadja, hogy egy IP-cím alapértelmezés szerint hány másodpercig marad a kéro kliensnél (default-lease-time), mielott megújítást kéne alkalmazni. A szakasz a maximális idoszakot is megadja, ameddig a gép a DHCP-kiszolgáló által hozzárendelt IP-címet megújítás kérése nélkül megtarthatja (max-lease-time).

A második részben néhány alapveto hálózati paraméter van megadva általánosságban:

A fájl utolsó részében a hálózatot lehet megadni, az alhálózati maszkot is beleértve. A befejezéshez adjon meg egy címtartományt, amelybol a DHCP-démon IP-címeket oszthat. A Példa 23-1 példában a kliensek 192.168.2.10 és 192.168.2.20, valamint 192.168.2.100 és 192.168.2.200 közötti címet kaphatnak.

E pár sor módosítása után az rcdhcpd start paranccsal már aktiválható a DHCP-démon, amely azonnal használható. Az rcdhcpd check-syntax parancs segítségével hajtson végre egy rövid szintaxisellenorzést. Ha váratlan problémákat észlel a konfigurációban – a kiszolgáló hibával leáll, vagy indításkor nem ad vissza done értéket –, akkor a /var/log/messages fo rendszernaplóban vagy a 10-es konzolon (Ctrl+Alt+F10) látható információ segítségével meg kell tudnia találni a hiba okát.

Egy alapértelmezett openSUSE rendszeren a DHCP-démon biztonsági okokból chroot környezetben indul el. A konfigurációs fájlokat át kell másolni a chroot környezetbe, hogy a démon meg tudja találni oket. Általában emiatt nem kell aggódni, mivel az rcdhcpd start parancs automatikusan átmásolja a fájlokat.

23.3.1 Statikus IP-címekkel rendelkezo kliensek

Amint már említettük, a DHCP képes adott klienshez mindig ugyanazt az elore meghatározott, statikus címet rendelni. Az explicit módon kiosztott címeknek mindig prioritása van a tárolóból származó dinamikus címekkel szemben. Továbbá egy statikus cím nem jár le úgy, mint a dinamikus, vagyis ha például nem áll rendelkezésre elég cím, a kiszolgáló nem osztja ki másnak.

Egy statikus címmel rendelkezo kliens azonosításához a dhcpd a hardvercímet használja, amely hálózati eszközök azonosítására szolgáló globálisan egyedi, hat hexadecimális számpárból álló rögzített numerikus kód (például 00:30:6E:08:EC:80). Ha a megfelelo sorok (egy példa: Példa 23-2, hozzáadásra kerülnek a korábbi példa Példa 23-1 konfigurációs fájljaihoz, akkor a DHCP-démon minden helyzetben ugyanazt az adathalmazt rendeli hozzá a megfelelo klienshez.

Példa 23-2 A konfigurációs fájl kiegészítései

host jupiter {
hardware ethernet 00:30:6E:08:EC:80;
fixed-address 192.168.2.100;
}

Az elso sorban a megfelelo kliens (host gépnév, itt jupiter) a másodikban pedig a MAC-cím van megadva. Linux-gépeken ez a cím az ip link show parancs segítségével határozható meg, amelyet a hálózati eszköz követ (például eth0). A kimenetnek az alábbihoz hasonlónak kell lennie:

link/ether 00:30:6E:08:EC:80

A fenti példában a 00:30:6E:08:EC:80 MAC-címu hálózati kártyával rendelkezo klienshez a 192.168.2.100 IP-cím és a jupiter gépnév kerül automatikusan hozzárendelésre. A megadandó hardver típusa a legtöbb esetben ethernet , de az IBM rendszereken gyakran található token-ring is támogatott.

23.3.2 Az openSUSE verzió

A biztonság javítása érdekében az ISC DHCP-kiszolgáló openSUSE verzióját az Ari Edelkind által alkalmazott non-root/chroot javítással szállítjuk. Ez lehetové teszi, hogy a dhcpd nobody felhasználói azonosítóval és chroot környezetben fusson (/var/lib/dhcp). Ehhez a dhcpd.conf konfigurációs fájlnak a /var/lib/dhcp/etc könyvtárban kell lennie. Az init parancsfájl indításkor automatikusan átmásolja az összes fájlt ebbe a könyvtárba.

Az /etc/sysconfig/dhcpd fájlban lévo bejegyzések segítségével szabályozható a kiszolgáló viselkedése e funkciót illetoen. A dhcpd chroot környezet nélküli futtatásához a DHCPD_RUN_CHROOTED fájlban lévo /etc/sysconfig/dhcpd változót állítsa no értékre.

Ahhoz, hogy a dhcpd chroot környezetben futva is feloldhassa a gépneveket, további konfigurációs fájlokat is át kell másolni:

  • /etc/localtime

  • /etc/host.conf

  • /etc/hosts

  • /etc/resolv.conf

Ezek a fájlok az init parancsfájl indításakor átmásolódnak a/var/lib/dhcp/etc/ könyvtárba. Ne feledkezzen meg ezen példányok megváltoztatásáról, ha szükség van rá, mert dinamikusan módosítják oket az /etc/ppp/ip-up-hoz hasonló parancsfájlok. Nem kell ugyanakkor aggódni emiatt, ha a konfigurációs fájl csak IP-címeket ad meg (gépnevek helyett).

Ha a konfiguráció további, a chroot környezetbe átmásolandó fájlokat tartalmaz, akkor ezeket az /etc/sysconfig/dhcpd fájl DHCPD_CONF_INCLUDE_FILES változóiban kell megadni. Annak biztosításához, hogy a DHCP naplózási funkciója a syslog démon újraindítása után is muködjön, az /etc/sysconfig/syslog fájlban a SYSLOGD_ADDITIONAL_SOCKET_DHCP alatt található plusz egy bejegyzés.