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:
Az option domain-name sor a hálózat alapértelmezett tartományát adja meg.
Az option domain-name-servers bejegyzéssel maximum három érték adható meg az IP-címeket gépnevekre (és vissza) alakító DNS-kiszolgálókhoz. Ideális eseten még a DHCP beállítása elott kell beüzemelni egy névkiszolgálót a saját gépen vagy a hálózat egy másik részén. Célszeru, ha a névkiszolgáló egy gépnevet is megad minden dinamikus címhez és viszont. A névkiszolgáló beállításának leírása: Szakasz 22.0, A DNS (tartománynévrendszer, Domain Name System).
Az option broadcast-address sor adja meg a kérést küldo kliens által használandó üzenetszórási címet.
Az option routers segítségével utasítható a kiszolgáló, hogy hova küldje az adatcsomagokat, amelyek nem kézbesíthetok a helyi hálózaton lévo gépnek (a megadott forrás- és célgépcímnek, valamint az alhálózati maszknak megfeleloen). A legtöbb esetben, különösen kisebb hálózatokban, ez az útválasztó ugyanaz, mint az internetátjáró.
Az option subnet-mask segítségével adja meg a klienshez rendelt hálózati maszkot.
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.
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.
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.