IPv4/DHCP/Server: Unterschied zwischen den Versionen
Zeile 102: | Zeile 102: | ||
# option host-name "user"; | # option host-name "user"; | ||
#} | #} | ||
= Verbindungsaufbau = | = Verbindungsaufbau = |
Version vom 12. August 2020, 07:51 Uhr
Allgemein
- DHCP (Dynamic Host Configuration Protocol)
- Transport durch UDP
- Standard-Ports:
- IPv4:67 (Server) 68 (Client)
- IPv6: 547 (Server) 546 (Client)
Aufgabe
- Clients automatisch in ein bestehendes Netz einbinden
- Übermittlung der Netzwerkeinstellungen:
- IP-Adressen
- Rechnername
- Netzmaske
- Broadcast-Adresse
- Gateway
- DNS-Nameserver
- NetBIOS Nameserver
- Boot-Image für plattenlose Workstations
- Time- und NTP-Server, die für die Synchronisierung der Uhrzeit zuständig sind
Betriebsmodi
Manuelle Zuordnung
- In diesem Modus (statisches DHCP) werden am DHCP-Server die IP-Adressen bestimmten MAC-Adressen fest zugeordnet
- Die Adressen werden der MAC-Adresse auf unbestimmte Zeit zugeteilt
- Der Nachteil kann darin liegen, dass sich keine zusätzlichen Clients in das Netz einbinden können, da die Adressen fest vergeben sind
Automatische Zuordnung
- Am DHCP-Server wird ein Bereich (range) von IP-Adressen definiert
- IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients zugewiesen und keinem anderen Host mehr zugewiesen
- Neue Clients erhalten keine IP-Adresse, wenn Adressbereich vergeben ist
Dynamische Zuordnung
- Automatische Zuordnung aber mit Lease-Time: Festlegung wie lange eine IP-Adresse an Client „verliehen“ wird, bevor Client eine „Verlängerung“ beantragen muss
- Bei „Nicht-Verlängerung“ wird IP-Adresse frei und neu vergeben
- DHCP-Server vergibt auch von der MAC-Adresse abhängige IP-Adressen, d. h. ein Client bekommt hier selbst nach längerer Netzwerkabstinenz und Ablauf der Lease-Time die gleiche IP-Adresse wie zuvor (es sei denn natürlich, diese ist inzwischen schon anderweitig vergeben)
Installation
# apt install isc-dhcp-server
Konfiguration
Datei:/etc/dhcp/dhcpd.conf
- Lease-Time in Sekunden
default-lease-time 600; max-lease-time 7200;
Subnet-Blöcke
subnet 10.2.0.0 netmask 255.255.0.0
Range
range 10.2.0.10 10.2.0.100;
Options
option subnet-mask 255.255.0.0; option domain-name-servers 10.10.0.4; option domain-name "raum102.itw"; option domain-search "raum102.itw"; option routers 10.2.0.1;
Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden.
# systemctl restart isc-dhcp-server.service
DHCP-Client
Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern.
- Bisherige Konfiguration verwerfen.
# dhclient -r
- Neue Konfiguration anfordern.
# dhclient
Fehleranalyse
# cat /var/log/syslog | grep "dhcp"
Konfigurationsdatei
/etc/dhcp/dhcpd.conf
# If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative;
# Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 10.2.0.0 netmask 255.255.0.0 { range 10.2.0.10 10.2.0.100; option subnet-mask 255.255.0.0; option domain-name-servers 10.10.0.4; option domain-name "raum102.itw"; option domain-search "raum102.itw"; option routers 10.2.0.1; default-lease-time 600; max-lease-time 7200; }
#host user { # hardware ethernet 00:1d:7d:c8:de:bd; # fixed-address 10.2.0.50; # option host-name "user"; #}
Verbindungsaufbau
- DHCP-DISCOVER: Client sucht per Broadcast nach DHCP-Server
- DHCP-OFFER: DHCP-Server bietet Client per Unicast Konfigurationsparameter der Schnittstelle an
- DHCP-REQUEST: Client fordert angebotene Konfigurationsparameter bei DHCP-Server an (z.B. Mietanfrage)
- DHCP-ACK: DHCP-Server sendet Konfigurationsparameter an Client
- DHCP-NAK: Ablehnung einer DHCPREQUEST-Anforderung durch den DHCP-Server.
- DHCP-DECLINE: Ablehnung durch den Client, da die IP-Adresse schon verwendet wird.
- DHCP-RELEASE: Der Client gibt die eigene Konfiguration frei, damit die Parameter wieder für andere Clients zur Verfügung stehen.
- DHCP-INFORM: Anfrage eines Clients nach weiteren Konfigurationsparametern, z. B. weil der Client eine statische IP-Adresse besitzt.
- DHCP-Refresh (nur bei dynamischer Zuordnung) DHCPACK-Nachricht
IP-Adresse,"lease time" und zwei Fristen: Die "Renewal-Time" T1 und die "Rebinding-Time" T2.
- T1 1/2 der Lease-Time
- T2 7/8 der Lease-Time
Zum Beispiel:
- Lease-Time = 100s => "Renewal-Time" T1 = 50s und "Rebinding-Time" T2 = 87,5s
- Nach Ablauf T1 versucht der Client, seine Lease-Time zu verlängern.
- DHCPREQUESTs per Unicast an bisherigen Server
- Erfolgt DHCP-ACK: Client erhält bisherige Konfiguration mit frischer Lease-Time
- Erfolgt kein DHCP-ACK: Client nutzt Konfiguration ohne Einschränkungen weiter
- Nach Ablauf von T2 sendet Client DHCPREQUESTs per Broadcast an irgendeinen anderen DHCP-Server
- Läuft die Lease-Time ab so verfällt die Konfiguration und Client beginnt erneut mit eunem DHCP-DISCOVER.
- Sind alle IP-Adressen bereits vergeben, sendet Server ein DHCP-NAK (DHCP-Not Acknowledged).
- Die genaue Verbindung in Wireshark:
DHCP-Relay
- Ist eine Funktion, um DHCP über Netzwerkgrenzen (Broadcastdomäne) hinaus nutzen zu können
- Damit wird die Notwendigkeit der Bereitstellung eines DHCP-Servers in jedem Subnetz, in dem sich DHCP-Clients befinden, vermieden
- Die DHCP-Relay-Funktion wird meist durch den Router selbst erbracht
- DHCP-Relay ist ein notwendig, um die Broadcasts weiterzuleiten
Links
Quellen
- https://de.wikipedia.org/wiki/DHCP
- https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdconf
- https://wiki.ubuntuusers.de/ISC-DHCPD/
- https://wiki.debian.org/de/DHCP_Server