IPv4/DHCP/Server: Unterschied zwischen den Versionen
K Textersetzung - „ “ durch „ “ |
|||
(232 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= | = Allgemein = | ||
*DHCP (Dynamic Host Configuration Protocol) | |||
*Transport durch UDP | *Transport durch UDP | ||
*Standard-Ports: | *Standard-Ports: | ||
**IPv4: 67 (Server | **IPv4:67 (Server) 68 (Client) | ||
**IPv6: 547 (Server | **IPv6: 547 (Server) 546 (Client) | ||
** | |||
**ist ein | = 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 = | |||
/etc/dhcp/dhcpd.conf | |||
== Lease-Time == | |||
in Sekunden | |||
default-lease-time 600; | |||
max-lease-time 7200; | |||
== 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; | |||
== Subnet-Blöcke == | |||
subnet 10.2.0.0 netmask 255.255.0.0 | |||
= Dienssteuerung = | |||
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. | |||
== Konfiguration verwerfen == | |||
# dhclient -r | |||
== Neue Konfiguration anfordern == | |||
# dhclient | |||
=== DHCP release mit verbose === | |||
'''# dhclient -v -r''' | |||
[sudo] Passwort für user: | |||
Killed old client process | |||
Internet Systems Consortium DHCP Client 4.4.1 | |||
Copyright 2004-2018 Internet Systems Consortium. | |||
All rights reserved. | |||
For info, please visit https://www.isc.org/software/dhcp/ | |||
Listening on LPF/enp2s0/74:27:ea:e1:db:32 | |||
Sending on LPF/enp2s0/74:27:ea:e1:db:32 | |||
Sending on Socket/fallback | |||
DHCPRELEASE of 10.20.1.110 on enp2s0 to 10.20.0.1 port 67 (xid=0x1f86c144) | |||
=== Ausführliche Ausgabe von dhclient === | |||
'''# dhclient -v''' | |||
Internet Systems Consortium DHCP Client 4.4.1 | |||
Copyright 2004-2018 Internet Systems Consortium. | |||
All rights reserved. | |||
For info, please visit https://www.isc.org/software/dhcp/ | |||
Listening on LPF/enp2s0/74:27:ea:e1:db:32 | |||
Sending on LPF/enp2s0/74:27:ea:e1:db:32 | |||
Sending on Socket/fallback | |||
DHCPDISCOVER on enp2s0 to 255.255.255.255 port 67 interval 3 (xid=0xac531335) | |||
DHCPOFFER of 10.20.1.13 from 10.20.1.1 | |||
DHCPREQUEST for 10.20.1.13 on enp2s0 to 255.255.255.255 port 67 (xid=0x351353ac) | |||
DHCPACK of 10.20.1.13 from 10.20.1.1 (xid=0xac531335) | |||
cmp: EOF on /tmp/tmp.JBuNGXT4Zg which is empty | |||
bound to 10.20.1.13 -- renewal in 5933 seconds. | |||
== Konfigurationsdatei == | |||
/etc/dhcp/dhclient.conf | |||
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; | |||
send host-name = gethostname(); | |||
request subnet-mask, broadcast-address, time-offset, routers, | |||
domain-name, domain-name-servers, domain-search, host-name, | |||
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, | |||
netbios-name-servers, netbios-scope, interface-mtu, | |||
rfc3442-classless-static-routes, ntp-servers; | |||
= Fehleranalyse = | |||
# cat /var/log/syslog | grep "dhcp" | |||
=Konfigurationsdatei= | |||
/etc/dhcp/dhcpd.conf | |||
log-facility local7; | |||
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"; | |||
} | |||
= | = DORA: (Discover Offer Request ACK) = | ||
[[Datei:DORA Aufbau.png]] | |||
# 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 DHCP-REQUEST-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) DHCP-ACK-Nachricht<br> | |||
* | = Lease Time = | ||
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 | |||
== 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. | |||
*DHCP-REQUESTs 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). | |||
= Ablaufverfolgung = | |||
: | [[Datei:Wireshark Screenshot.png]] | ||
= 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 notwendig, um die Broadcasts weiterzuleiten. Bitte auf alle interfaces Aktivieren. | |||
= 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 | |||
: | == Weiterführend == | ||
: | === DHCP Failover === | ||
# https://www.tech-island.com/tutorials/dhcp-failover-linux | |||
# https://kb.isc.org/docs/aa-00502 | |||
: | [[Kategorie:IPv4]] | ||
Aktuelle Version vom 28. Mai 2023, 11:03 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
/etc/dhcp/dhcpd.conf
Lease-Time
in Sekunden
default-lease-time 600; max-lease-time 7200;
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;
Subnet-Blöcke
subnet 10.2.0.0 netmask 255.255.0.0
Dienssteuerung
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.
Konfiguration verwerfen
# dhclient -r
Neue Konfiguration anfordern
# dhclient
DHCP release mit verbose
# dhclient -v -r [sudo] Passwort für user: Killed old client process Internet Systems Consortium DHCP Client 4.4.1 Copyright 2004-2018 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/enp2s0/74:27:ea:e1:db:32 Sending on LPF/enp2s0/74:27:ea:e1:db:32 Sending on Socket/fallback DHCPRELEASE of 10.20.1.110 on enp2s0 to 10.20.0.1 port 67 (xid=0x1f86c144)
Ausführliche Ausgabe von dhclient
# dhclient -v Internet Systems Consortium DHCP Client 4.4.1 Copyright 2004-2018 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/enp2s0/74:27:ea:e1:db:32 Sending on LPF/enp2s0/74:27:ea:e1:db:32 Sending on Socket/fallback DHCPDISCOVER on enp2s0 to 255.255.255.255 port 67 interval 3 (xid=0xac531335) DHCPOFFER of 10.20.1.13 from 10.20.1.1 DHCPREQUEST for 10.20.1.13 on enp2s0 to 255.255.255.255 port 67 (xid=0x351353ac) DHCPACK of 10.20.1.13 from 10.20.1.1 (xid=0xac531335) cmp: EOF on /tmp/tmp.JBuNGXT4Zg which is empty bound to 10.20.1.13 -- renewal in 5933 seconds.
Konfigurationsdatei
/etc/dhcp/dhclient.conf
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; send host-name = gethostname(); request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;
Fehleranalyse
# cat /var/log/syslog | grep "dhcp"
Konfigurationsdatei
/etc/dhcp/dhcpd.conf
log-facility local7; 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"; }
DORA: (Discover Offer Request ACK)
- 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 DHCP-REQUEST-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) DHCP-ACK-Nachricht
Lease Time
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
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.
- DHCP-REQUESTs 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).
Ablaufverfolgung
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 notwendig, um die Broadcasts weiterzuleiten. Bitte auf alle interfaces Aktivieren.
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