DHCP-Konfiguration
Konfiguration eines DHCP-Servers
DHCP steht für Dynamic Host Configuration Protocol. Anstatt jeden Host manuell zu konfigurieren, werden alle hostspezifischen Parameter (IP-Adresse, DNS-Server, Netzmaske, etc) durch einen DHCP Server bereitgestellt.
Man unterscheidet zwischen
statischer Zuweisung = Client erhält bestimtme IP-Adresse anhand der MAC-Adresse
dynamischer Zuweisung = Client erhält beliebige IP-Adresse aus Adress-Pool
/etc/dhcpd.conf = Hauptkonfigurationsdatei
/var/lib/dhcp/dhcp.leases = Alle zugeteilten Adressen werden hier vermerkt.
Ablauf Zuweisung per DHCP:
1.) DHCPDISCOVER = Client schickt per Broadcast eine ARP-Anfrage ins Netzwerk. In der Regel schickt Client sein zuvor erhaltene IP-Adresse mit, so dass er mit hoher Wahrscheinlichkeit seine alte IP-Adresse erneut erhält
2.) DHCPOFFER = Server schickt dem Client ein “Angebot”. Client kann aus Angeboten wählen.
3.) DHCPREQUEST = Client bestätigt ein Angebot
4.) DHCPACK = Server vergibt die IP-Adresse dem Client.
Lease-Time = Gültigkeitsdauer einer IP-Adresse. Nach Ablauf dieser Zeit muss der Client erneut anfragen.
BOOTP = Ist der Vorläufer von DHCP
Konfigurationsdatei /etc/dhcpd.conf
default-lease-time 600; # 10 Minuten
max-lease-time 7200; # 2 Stunden
# Standard-Einstellungen
option domain-name "heimnetz.local";
option domain-name-servers 192.168.1.1, 192.168.1.2;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
# Vergabe dynamischer Adressen aus diesen Adress-Bereichen
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.10 192.168.1.20;
range 192.168.1.100 192.168.1.200;
}
# Vergabe dynamischer Adressen an BOOTP-Clients
subnet 192.168.1.0 netmask 255.255.255.0
{
range dynamic-bootp 192.168.1.20 192.168.1.40;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
}
# statische Zuteilung
host rechner1 {
hardware ethernet 06:00:46:b6:d7:00;
fixed-address rechner1.heimnetz.local;
}
# Keine Einträge im DNS vornehmen
ddns-update-style none;
DHCP-Parameter
option domain-name DNS-DOMAIN = Domainname des Netzwer. Nutzen Clients als Eintrag für DNS-Domain-Name
option domain-name-servers NAMESERVER1, NAMESERVER2 = Zuständige Namerserver der Domain
default-lease-time SEKUNDEN = Gültigkeitsdauer definieren
max-lease-time SEKUNDEN = Hat sich der Client nach Ablauf der Frist nicht gemeldet, wird die Adresse wieder freigegeben.
authoritative = Wenn Clients, die bsp. Vorher in einem anderen Subnetz waren, eine falsche IP-Adresse haben wollen, wir ein DHCPNAK geschickt.
log-facility KATEGORIE = Kategorie für Meldungen an Syslog definieren
subnet ADRESSE netmask NETZMASKE = Anfragen aus diesem Subnetz werden vom DHCP-Server verarbeitet
range IP1 IP2 = Aus diesem Adressbereich werden IP-Adressen zugewiesen
option routers router1, router2 = Router des Netzwerks definieren
range dynamic-bootp IP1 IP2 = Bereich für BOOTP-Clients festlegen
option broadcast-address IP = Angabe zur verwendeten Boradcast-Adresse
host RECHNER {...} = Leitet einen Block ein, der sich auf einen HOST bezieht
hardware ethernet MAC-Adresse = Rechner anhand MAC-Adresse Optionen zuweisen
fixed-address RECHNER = Feste IP-Adresse für einen Rechner definieren
Rechner-Pool mithilfe von Klassen definieren
Man kann Rechner einer Klasse zu einem Pool definieren.
# Alle Rechner mit einer Realtek-Netzwerkkarte bekommen eine
# IP aus 192.112.36.10-50
class “realtek” {
match if substring (option vendor-class-identifier, 0, 4) = ”realtek”;
}
pool {
allow members of “realtek”;
range 192.112.36.10 192.112.36.50;
}
Wichtige Parameter
class {...} = Anhand von gezielten Eigenschaften können Rechner zu Klassen zusammengefasst werden
match if substring (option vendor-class-identifier, 1-Zeichen, Letztes-Zeichen) = “blabla” = Liest Text von 1-Zeichen bis Letztes-Zeichen und vergleicht es
pool {deny|allow members of CLASS} = allow bedeutet die Rechner der Klasse in Pool aufnehmen, deny bedeutet, dass die gesetzten Parameter für nicht-Mitglieder der Klasse gelten
group {...} = Wenn Clients nicht im gleichen Subnetz liegen, muss man diese mit group gruppieren
next-server RECHNER = Von diesem Rechner holen sich Clients das Boot-Image (TFTP-Server)
filename DATEI = Diese Datei holen Clients beim Boot vom DHCP-Server
DHCP-Relay-Agent – DHCP-Anfragen aus verschiedenen Subnetzen
DHCP-Clients schicken bei einer Anfrage einen Boradcast. Letzterer reicht aber nur bis an die Grenzen des eigenen Subnetzes. Liegt der DHCP-Server in einem anderen Subnetz, muss ein DHCP-Relay-Agent die Broadcasts weiterleiten. Dieser wird auf dem Router installiert.
dhcrelay -i eth0 dhcp-server001 = Auf eth0 lauschen und an Broadcasts an dhcp-server001 weiterleiten