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