Ein DHCP-Server ist dafür zuständig, IP-Adressen aus einem Pool an Clients zu vergeben.

Der verbreiteste DHCP-Server ist der ISC DHCP Server (oder Variationen davon).

Homepage: http://www.isc.org/products/DHCP/

Lizenz: BSD-Style

Alternative: udhcp auch für Embedded-Systeme

Konfiguration

/etc/dhcpd.conf

Konfiguration von DDNS

dazu wird Version 3.0 des ISC DHCP Servers benötigt

option domain-name "example.com";
option domain-name-servers 192.168.2.1;
option nis-domain "example.com";
default-lease-time 60;
max-lease-time 120;
use-host-decl-names on;

subnet 192.168.2.0 netmask 255.255.255.0 {
 option routers 192.168.2.1;
 option subnet-mask 255.255.255.0;
 range dynamic-bootp 192.168.2.128 192.168.2.254;
}

subnet 192.168.11.0 netmask 255.255.255.0 {
 option routers 192.168.11.1;
 option subnet-mask 255.255.255.0;
 range dynamic-bootp 192.168.11.128 192.168.11.254;
}

host rechnerX { hardware ethernet 01:02:03:45:67:89; }
host rechnerY { hardware ethernet 01:02:03:45:78:9A; }

Achtung: unvollständig!

mehr unter DHCPServerMitDNS

Konfiguration für PXE- & Etherboot-DisklessClients

dazu wird Version 3.0 des ISC DHCP Servers benötigt

#
# dhcpd.conf for kmLinuxTSE
#

#default-lease-time 86400; # ein Tag
# max-lease-time 604800; # eine Woche

default-lease-time 21600;
max-lease-time 21600;

allow booting;
allow bootp;

# only for DHCPD V. 3
ddns-update-style none;
option option-128 code 128 = string;
option option-129 code 129 = text;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
#option domain-name-servers 192.168.0.254;
option domain-name "ltsp";
option root-path "192.168.0.254:/opt/ltsp/i386";

shared-network WORKSTATIONS {


# dynamische Adressvergabe an Clients mit deren Hardware auto-detect funktioniert
# (PCI Netzwerk-Karte und PCI oder AGP Grafikkarte)
#
 subnet 192.168.0.0 netmask 255.255.255.0 {

 range dynamic-bootp 192.168.0.1 192.168.0.20;

 #MH 3/2003 http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?DHCPServerMitDNS
 # was mach' ich mit der führenden Null ? :-(
 # option host-name = concat("ws00", binary-to-ascii(
 # 10,8,"",substring(leased-address,3,1)));
 option log-servers 192.168.0.254;

 # trick from Peter Rundle <peter.rundle@au.interpath.net>
 # MH: needs DHCPd Version 3
 if substring (option vendor-class-identifier, 0, 9) = "PXEClient"
 {
 filename "/lts/pxe/pxelinux.bin";
 # NOTE: kernels are specified in /tftpboot/lts/pxe/pxelinux.cfg/
 }
 else
 {
 filename "/lts/vmlinuz.ltsp";
 }

 }
}
# statische Vergabe von IP Adressen anhand der Hardware-MAC-Adressen
# der Clients, das ist z.B. für Clients mit ISA-Netzwerkkarten nötig
#
#group {
# use-host-decl-names on;
# option log-servers 192.168.0.254;
#
# host ws001 {
# hardware ethernet 00:E0:06:E8:00:84;
# fixed-address 192.168.0.1;
# filename "/lts/vmlinuz.monolit";
# option option-128 e4:45:74:68:00:00;
# option option-129 "NIC=ne IO=0x300";
# }
# host ws002 {
# hardware ethernet 00:60:08:2a:2d:3e;
# fixed-address 192.168.0.2;
# filename "/lts/vmlinuz.ltsp";
# option option-128 e4:45:74:68:00:00;
# option option-129 "NIC=3c509";
# }
# host ws003 {
# hardware ethernet 00:D0:09:30:28:B2;
# fixed-address 192.168.0.3;
# # kernels are specified in /tftpboot/lts/boot/pxe/pxelinux.cfg/
# filename "/lts/pxe/pxelinux.bin";
# }
#}

Frage: Wie kann ich die zugewiesene IPAddresse nicht nur von der MacAddresse, sondern auch von dem vom Client übermittelten Namen abhängen lassen? -- HelmutGrohne 2004年08月25日 12:02:51

  • Vom ISC DHCP Server habe ich keine Ahnung, aber dnsmasq kann das (vgl. man dnsmasq Option -G). -- HenrykGerlach 2004年08月25日 14:53:03

Tips & Tricks

Wer wie ich, andere hardware verbaut und vergisst die MAC-Adresse des betreffenden Rechners der den dhcpd stellt zu änderen in dessen Konfiguration kann sein blaues Wunder erleben.....:-( Das geht los mit Routingproblemen, fehlende Namensauflösungen und man kann sich wirklich "duppelig" suchen wie der Schwabe sagt.

OffeneFrage: Wie bekomme ich die Meldungen heraus die mir der Server übermittelt?

  • z.B. if substring (option vendor-class-identifier, 0, 13) = "Etherboot-5.0". Etherboot übermittelt da wohl seine Versionsnummer. Aber ich möchte gern direkt zwischen Etherboot und Etherboot mit PXE unterscheiden. Auch bei gleicher Version.
    • Scheint nix drin zu stehen. Habe mal mit Ethereal geschaut aber nur die bekannten Strings gesehen. :(


KategorieServer

DhcpServer (zuletzt geändert am 2007年12月23日 22:46:27 durch localhost)

AltStyle によって変換されたページ (->オリジナル) /