Zum Inhalt springen

DHCPv4/Server: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Allgemein ==
'''{{BASEPAGENAME}}''' - Beschreibung
* DHCP (Dynamic Host Configuration Protocol)
* Transport durch UDP
* Standard-Ports:
* * IPv4:67 (Server) 68 (Client)
* * IPv6: 547 (Server) 546 (Client)


== Aufgabe ==
== Beschreibung ==
* 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 ==
== Installation ==
# apt install isc-dhcp-server
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo apt install isc-dhcp-server
</syntaxhighlight>


== Konfiguration ==
== Aufruf ==
/etc/dhcp/dhcpd.conf
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>


=== Lease-Time ===
=== Optionen ===
in Sekunden
{| class="wikitable sortable options gnu big"
default-lease-time 600;
|-
max-lease-time 7200;
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}


=== Range ===
=== Parameter ===
range 10.2.0.10 10.2.0.100;
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}


=== Options ===
== Anwendung ==
option subnet-mask 255.255.0.0;
; Dienssteuerung
option domain-name-servers 10.10.0.4;
Nach der Änderung der Konfiguration muss die dhcpd.conf erneut eingelesen werden
option domain-name "raum102.itw";
<syntaxhighlight lang="bash" highlight="1" line copy>
option domain-search "raum102.itw";
sudo systemctl restart isc-dhcp-server.service
option routers 10.2.0.1;
</syntaxhighlight>


=== Subnet-Blöcke ===
=== Problembehebung ===
subnet 10.2.0.0 netmask 255.255.0.0


== Dienssteuerung ==
<noinclude>
Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden.


# systemctl restart isc-dhcp-server.service
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


== DHCP-Client ==
=== Dokumentation ===
Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern.
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]


=== Konfiguration verwerfen ===
<!--
# dhclient -r
; Info-Pages
-->


=== Neue Konfiguration anfordern ===
=== Links ===
# dhclient
==== Projekt ====
==== Weblinks ====
# 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


==== DHCP release mit verbose ====
; Failover
'''# dhclient -v -r'''
# https://www.tech-island.com/tutorials/dhcp-failover-linux
[sudo] Passwort für user:
# https://kb.isc.org/docs/aa-00502
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
[[Kategorie:DHCPv4]]
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 ===
</noinclude>
/etc/dhcp/dhclient.conf


option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
= TMP =


send host-name = gethostname();


request subnet-mask, broadcast-address, time-offset, routers,
{{:DHCP/Client}}
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 ==
== Fehleranalyse ==
Zeile 181: Zeile 144:
* Die DHCP-Relay-Funktion wird meist durch den Router selbst erbracht
* Die DHCP-Relay-Funktion wird meist durch den Router selbst erbracht
* DHCP-Relay ist notwendig, um die Broadcasts weiterzuleiten. Bitte auf alle interfaces Aktivieren.
* 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:DHCPv4]]

Aktuelle Version vom 23. Juli 2025, 13:23 Uhr

DHCPv4/Server - Beschreibung

Beschreibung

Installation

sudo apt install isc-dhcp-server

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Dienssteuerung

Nach der Änderung der Konfiguration muss die dhcpd.conf erneut eingelesen werden

sudo systemctl restart isc-dhcp-server.service

Problembehebung

Anhang

Siehe auch


Dokumentation

Man-Page
  1. prep(1)


Links

Projekt

Weblinks

  1. https://de.wikipedia.org/wiki/DHCP
  2. https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdconf
  3. https://wiki.ubuntuusers.de/ISC-DHCPD/
  4. https://wiki.debian.org/de/DHCP_Server
Failover
  1. https://www.tech-island.com/tutorials/dhcp-failover-linux
  2. https://kb.isc.org/docs/aa-00502


TMP

dhclient - Beschreibung

Beschreibung

Installation

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

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

# 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.


Problembehebung

Konfiguration

Dateien

Datei Beschreibung
/etc/dhcp/dhclient.conf
/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;

Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern


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)

  1. DHCP-DISCOVER: Client sucht per Broadcast nach DHCP-Server
  2. DHCP-OFFER: DHCP-Server bietet Client per Unicast Konfigurationsparameter der Schnittstelle an
  3. DHCP-REQUEST: Client fordert angebotene Konfigurationsparameter bei DHCP-Server an (beispielsweise Mietanfrage)
  4. 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, beispielsweise 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.