home über marty Sonstiges Linux OpenBSD CDVerwaltung Greetz wieso marty44?? Links

DHCP-Server mit dhcpd

Ein DHCP-Server dient dazu, IP-Adresse und weitere Einstellungen im Netzwerk zu verteilen. Die Client's "schreien" beim Booten einfach ins Netzwerk, ob irgendwo ein DHCP-Server ist, der ihnen die benötigten Daten zuweist. Dies macht sich besonders gut auf Netzwerkparty's, da hier die Konfiguration jedes einzelnen Client's entfällt und man somit schneller sich dem Zocken zuwenden kann ;)

1. Installation
Der DHCP-Server kann zum Beispiel von http://www.isc.org/products/DHCP/dhcp-v3.html heruntergeladen werden. Die Installation verläuft folgendermaßen:
www:# cd /usr/src/
www:/usr/src# tar xvfz /von/wo/auch/immer/dhcp-3.0.1rc11.tar.gz
www:/usr/src# cd dhcp-3.01.rc11
www:/usr/src/dhcp-3.0.1rc11# ./configure
www:/usr/src/dhcp-3.0.1rc11# make
www:/usr/src/dhcp-3.0.1rc11# make install
2. Konfiguration
Als erstes müssen zwei Verzeichnisse und eine Datei angelegt werden:
www:# mkdir /var/state
www:# mkdir /var/state/dhcp
www:# touch /var/state/dhcp/dhcpd.leases
Der DHCP-Server benötigt natürlich auch eine Konfiguratiosdatei:
/etc/dhcpd.conf
option domain-name "marty44.net";
option domain-name-servers 192.168.44.1;
default-lease-time 43200;
max-lease-time 86400;
log-facility local7;
ddns-update-style ad-hoc;
subnet 192.168.44.0 netmask 255.255.255.0 {
  range 192.168.44.30 192.168.44.43;
  option routers 192.168.44.1;
  host indy {
    hardware ethernet 08:00:69:07:ab:fe;
    fixed-address 192.168.44.55;
  }
}
option domain-name "marty44.net";setzt die Domain
option domain-name-servers 192.168.44.1;gibt den zu benutzenden Nameserver an
default-lease-time 43200;12 Stunden gilt die vergebene IP
max-lease-time 86400;oder maximal 24 Stunden
log-facility local7;das ganze wird geloggt (/var/log/messages)
ddns-update-style ad-hoc;hat etwas mit DNS zu tun, mußte bei mir rein in die Config, ansonsten lies sich der Server nicht starten...
subnet 192.168.44.0 netmask 255.255.255.0 {aus diesen Netz gibt es die IP's
range 192.168.44.30 192.168.44.43;aus dem Bereich 192.168.44.30 bis 192.168.44.43 (man kann weitere Ranges angeben,
einfach noch mal eine Zeile mit range Bereich einfügen)
option routers 192.168.44.1;unserer Default Gateway
host indy {Definition für einen bestimmten Rechner mit dem Namen "indy"
hardware ethernet 08:00:69:07:ab:fe;der hat die MAC-Adresse 08:00:69:07:ab:fe
fixed-address 192.168.44.55;und soll fest diese Adresse kriegen

Mit "dhcpd -d" kann man testen, ob der DHCP-Server richtig läuft und ob eventuell ein paar Fehler in der Konfiguration sind.

3. Start-Stop-Script
Hier noch das Start-Stop-Script. Diesmal allerdings ohne die symbolischen Links, da ich den DHCP-Server nur bei Bedarf starte.
/etc/init.d/dhcpd

#!/bin/sh
#
# Start and Stop dhcpd DHCP-Server

case "$1" in start) rm -f /var/state/dhcp/dhcpd.leases~ echo "Starting DHCP-Server dhcpd" /usr/sbin/dhcpd ;; stop) echo "Stopping DHCP-Server dhcpd" killall dhcpd rm -f /var/state/dhcp/dhcpd.leases~ ;; refresh) echo "Stopping DHCP-Server dhcpd" killall dhcpd echo "Removing dhcpd.leases" rm -f /var/state/dhcp/dhcpd.leases~ rm -f /var/state/dhcp/dhcpd.leases touch /var/state/dhcp/dhcpd.leases echo "Starting DHCP-Server dhcpd" /usr/sbin/dhcpd ;; *) echo "Usage: /etc/init.d/dhcpd {start|stop|refresh}" exit 1 ;; esac

exit 0

"start" dient zum Starten, "stop" logischerweise zum Stoppen und "refresh" löscht die Leases-Datei, kann manchmal ganz nützlich sein, wenn viel gebastelt wird im Netzwerk ;)
Wenn der Server automatisch beim Booten starten soll, müssen noch die Links in den Runleveln gesetzt werden:
# cd /etc/rc0.d
/etc/rc0.d# ln -s ../init.d/dhcpd K21dhcpd
/etc/rc0.d# cd ../rc1.d
/etc/rc1.d# ln -s ../init.d/dhcpd K21dhcpd
/etc/rc1.d# cd ../rc2.d
/etc/rc2.d# ln -s ../init.d/dhcpd S91dhcpd
/etc/rc2.d# cd ../rc6.d
/etc/rc6.d# ln -s ../init.d/dhcpd K21dhcpd
Wie man DHCP und DNS zusammen spielen läßt, steht hier.

zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 8. Juni 2003