IPv4/DHCP/Server: Unterschied zwischen den Versionen

Aus Foxwiki
Robertquies (Diskussion | Beiträge)
K Textersetzung - „  “ durch „ “
 
(174 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=DHCP (Dynamic Host Configuration Protocol)=
= Allgemein =
 
*DHCP (Dynamic Host Configuration Protocol)
==Allgemein==
*ist Erweiterung des Bootstrap-Protokolls (BOOTP)
*ist ein Hintergrundprozess (Dienst/Daemon)
*definiert in RFC 2131
*Transport durch UDP
*Transport durch UDP
*Standard-Ports:
*Standard-Ports:
**IPv4: 67 (Server od. Relay-Agent) 68 (Client)
**IPv4:67 (Server) 68 (Client)
**IPv6: 547 (Server od. Relay-Agent) 546 (Client)
**IPv6: 547 (Server) 546 (Client)
 
==Aufgabe==
*angeschlossene Clients ohne manuelle Konfiguration der Schnittstelle in ein bestehendes Netz einbinden,
*das heißt die Konfigurationsparameter...
**IP-Adresse, die Adresse eines Gerätes im Netzwerk,
**Netzmaske, Adressierung des Netz- und Hostteils einer IP-Adresse,
**Gateway, die Brücke von einem ins andere Netz,
**Rechnername,
**Broadcast-Adresse,
**Boot-Image für plattenlose Workstations,
**NetBIOS Nameserver und Name Server (DNS)
**Time- und NTP-Server, die für die Synchronisierung der Uhrzeit zuständig sind,
*...können automatisch vergeben werden
 
==Betriebsmodi==
 
*manuelle Zuordnung (statisches DHCP):
::*IP-Adressen werden bestimmte MAC-Adressen fest zugeordnet; z.B. wichtig bei Port-Weiterleitungen oder wenn DHCP-Client Server-Dienste zur Verfügung stellt
 
:::Nachteil: kein „einfaches“ Einbinden von neuen Clients
 
*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
::*Zuweisungen sind permanent, werden nicht entfernt und in einer Tabelle eingetragen (/var/lib/dhcpd.leases)
 
:::Nachteil: neue Clients erhalten keine IP-Adresse, wenn der gesamte Adressbereich vergeben ist, auch wenn die bereits vergebenen IP-Adressen nicht aktiv genutzt werden
 
*dynamische Zuordnung:
::*automatische Zuordnung mit Lease-Time
::*in Konfigurationdatei (/etc/dhcp/dhcpd.conf) wird festgelegt, wie lange eine IP-Adresse an Client „verliehen“ wird, bevor Client beim Server eine „Verlängerung“ beantragen muss
 
:::Vorteil: bei „Nicht-Verlängerung“ durch Client wird IP-Adresse frei und neu vergeben
 
==Ablauf==
#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
 
 
 
[[Datei: DHCP.png|1000px|thumb|DHCP Ablauf|center]]
 
==Einrichtung unter Linux/Debian am Beispiel "isc-dhcp-server"==
 
====Installation====
 
<pre>root@pc10:~# apt install isc-dhcp-server</pre>
 
====Konfiguration====
 
wichtige Dateien:
*"/etc/default/isc-dhcp-server"
*"/etc/dhcp/dhcpd.conf"


====/etc/default/isc-dhcp-server====
= 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


Hier muss festgelegt werden, an welches Netzwerkgerät der DHCP-Server gebunden werden soll.
= Betriebsmodi =
Hier soll das Netzwerkgerät "enp5s1" an den DHCP-Server gebunden werden.


<pre># On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
== Manuelle Zuordnung ==
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp5s1"
INTERFACESv6=""</pre>


====/etc/dhcp/dhcpd.conf====
*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


Festlegung von ...
== Automatische Zuordnung ==
*Authoritative-Statement
*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


<pre># If this DHCP server is the official DHCP server for the local
== Dynamische Zuordnung ==
# network, the authoritative directive should be uncommented.
*Automatische Zuordnung aber mit Lease-Time: Festlegung wie lange eine IP-Adresse an Client „verliehen“ wird, bevor Client eine „Verlängerung“ beantragen muss
authoritative;</pre>
*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)


*Lease-Time
= Installation =
# apt install isc-dhcp-server


<pre>default-lease-time 600;
= Konfiguration =
max-lease-time 7200;</pre>
/etc/dhcp/dhcpd.conf


*Subnet-Blöcke
== Lease-Time ==
*Range
in Sekunden
*Options - z.B. Router, Domain-Name-Server
default-lease-time 600;
max-lease-time 7200;


<pre># No service will be given on this subnet, but declaring it helps the
== Range ==
# DHCP server to understand the network topology.
range 10.2.0.10 10.2.0.100;


#subnet 10.152.187.0 netmask 255.255.255.0 {
== 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;


# This is a very basic subnet declaration.
== Subnet-Blöcke ==
subnet 10.2.0.0 netmask 255.255.0.0


#subnet 10.254.239.0 netmask 255.255.255.224 {
= Dienssteuerung =
#  range 10.254.239.10 10.254.239.20;
Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden.
#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}


# This declaration allows BOOTP clients to get dynamic addresses,
# systemctl restart isc-dhcp-server.service
# which we don't really recommend.


#subnet 10.254.239.32 netmask 255.255.255.224 {
= DHCP-Client =
#  range dynamic-bootp 10.254.239.40 10.254.239.60;
Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern.
#  option broadcast-address 10.254.239.31;
#  option routers rtr-239-32-1.example.org;
#}


# A slightly different configuration for an internal subnet.
== Konfiguration verwerfen ==
#subnet 10.5.5.0 netmask 255.255.255.224 {
  # dhclient -r
#  range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
#  option routers 10.5.5.1;
#  option broadcast-address 10.5.5.31;
#  default-lease-time 600;
#  max-lease-time 7200;
#}
</pre>


== Neue Konfiguration anfordern ==
# dhclient


<pre># dhcpd.conf
=== DHCP release mit verbose ===
#
'''# dhclient -v -r'''
# Sample configuration file for ISC dhcpd
[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)


# option definitions common to all supported networks...
=== Ausführliche Ausgabe von dhclient ===
option domain-name "example.org";
'''# dhclient -v'''
option domain-name-servers ns1.example.org, ns2.example.org;
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.


default-lease-time 600;
== Konfigurationsdatei ==
max-lease-time 7200;
/etc/dhcp/dhclient.conf


# The ddns-updates-style parameter controls whether or not the server will
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
send host-name = gethostname();
# have support for DDNS.)
#ddns-update-style none;
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;


# If this DHCP server is the official DHCP server for the local
= Fehleranalyse =
# network, the authoritative directive should be uncommented.
# cat /var/log/syslog | grep "dhcp"
authoritative;


# Use this to send dhcp log messages to a different log file (you also
=Konfigurationsdatei=
# have to hack syslog.conf to complete the redirection).
/etc/dhcp/dhcpd.conf
log-facility local7;


# No service will be given on this subnet, but declaring it helps the
log-facility local7;
# DHCP server to understand the network topology.
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";
}


#subnet 10.152.187.0 netmask 255.255.255.0 {
= DORA: (Discover Offer Request ACK) =
#}
[[Datei:DORA Aufbau.png]]


# This is a very basic subnet declaration.
# 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.&nbsp;B.&nbsp;Mietanfrage)
# DHCP-ACK: DHCP-Server sendet Konfigurationsparameter an Client


#subnet 10.254.239.0 netmask 255.255.255.224 {
#  range 10.254.239.10 10.254.239.20;
#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}


# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.


#subnet 10.254.239.32 netmask 255.255.255.224 {
*DHCP-NAK: Ablehnung einer DHCP-REQUEST-Anforderung durch den DHCP-Server.
#  range dynamic-bootp 10.254.239.40 10.254.239.60;
*DHCP-DECLINE: Ablehnung durch den Client, da die IP-Adresse schon verwendet wird.
#  option broadcast-address 10.254.239.31;
*DHCP-RELEASE: Der Client gibt die eigene Konfiguration frei, damit die Parameter wieder für andere Clients zur Verfügung stehen.
#  option routers rtr-239-32-1.example.org;
*DHCP-INFORM: Anfrage eines Clients nach weiteren Konfigurationsparametern, z.&nbsp;B.&nbsp;weil der Client eine statische IP-Adresse besitzt.
#}
*DHCP-Refresh (nur bei dynamischer Zuordnung) DHCP-ACK-Nachricht<br>


# A slightly different configuration for an internal subnet.
= Lease Time =
#subnet 10.5.5.0 netmask 255.255.255.224 {
IP-Adresse,"lease time" und zwei Fristen: Die "Renewal-Time" T1 und die "Rebinding-Time" T2.  
#  range 10.5.5.26 10.5.5.30;
*T1 1/2 der Lease-Time
#  option domain-name-servers ns1.internal.example.org;
*T2 7/8 der Lease-Time
#  option domain-name "internal.example.org";
== Beispiel ==
#  option routers 10.5.5.1;
*Lease-Time = 100s => "Renewal-Time" T1 = 50s und "Rebinding-Time" T2 = 87,5s
#  option broadcast-address 10.5.5.31;
*Nach Ablauf T1 versucht der Client, seine Lease-Time zu verlängern.  
#  default-lease-time 600;
*DHCP-REQUESTs per Unicast an bisherigen Server
#  max-lease-time 7200;
**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).


# Hosts which require special configuration options can be listed in
= Ablaufverfolgung =
# host statements.  If no address is specified, the address will be
[[Datei:Wireshark Screenshot.png]]
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.example.com";
#}


# Fixed IP addresses can also be specified for hosts.  These addresses
= DHCP-Relay =
# should not also be listed as being available for dynamic assignment.
* Ist eine Funktion, um DHCP über Netzwerkgrenzen (Broadcastdomäne) hinaus nutzen zu können
# Hosts for which fixed IP addresses have been specified can boot using
* Damit wird die Notwendigkeit der Bereitstellung eines DHCP-Servers in jedem Subnetz, in dem sich DHCP-Clients befinden, vermieden
# BOOTP or DHCP.  Hosts for which no fixed address is specified can only
* Die DHCP-Relay-Funktion wird meist durch den Router selbst erbracht
# be booted with DHCP, unless there is an address range on the subnet
* DHCP-Relay ist notwendig, um die Broadcasts weiterzuleiten. Bitte auf alle interfaces Aktivieren.
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.example.com;
#}


# You can declare a class of clients and then do address allocation
= Links =
# based on that.   The example below shows a case where all clients
== Quellen ==
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# https://de.wikipedia.org/wiki/DHCP
# other clients get addresses on the 10.0.29/24 subnet.
# https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdconf
# https://wiki.ubuntuusers.de/ISC-DHCPD/
# https://wiki.debian.org/de/DHCP_Server


#class "foo" {
== Weiterführend ==
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
=== DHCP Failover ===
#}
# https://www.tech-island.com/tutorials/dhcp-failover-linux
# https://kb.isc.org/docs/aa-00502


#shared-network 224-29 {
[[Kategorie:IPv4]]
#  subnet 10.17.224.0 netmask 255.255.255.0 {
#    option routers rtr-224.example.org;
#  }
#  subnet 10.0.29.0 netmask 255.255.255.0 {
#    option routers rtr-29.example.org;
#  }
#  pool {
#    allow members of "foo";
#    range 10.17.224.10 10.17.224.250;
#  }
#  pool {
#    deny members of "foo";
#    range 10.0.29.10 10.0.29.230;
#  }
#}</pre>

Aktuelle Version vom 28. Mai 2023, 12: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)

  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 (z. B. 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, 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

  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

Weiterführend

DHCP Failover

  1. https://www.tech-island.com/tutorials/dhcp-failover-linux
  2. https://kb.isc.org/docs/aa-00502