IPv4/DHCP/Server: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 45: | Zeile 45: | ||
DHCP-Refresh (nur bei dynamischer Zuordnung) | *DHCP-Refresh (nur bei dynamischer Zuordnung) DHCPACK-Nachricht<br> | ||
DHCPACK-Nachricht | |||
IP-Adresse,"lease time" und zwei Fristen: Die "Renewal-Time" T1 und die "Rebinding-Time" T2. | IP-Adresse,"lease time" und zwei Fristen: Die "Renewal-Time" T1 und die "Rebinding-Time" T2. | ||
*T1 1/2 der Lease-Time | *T1 1/2 der Lease-Time | ||
*T2 7/8 der Lease-Time | *T2 7/8 der Lease-Time | ||
Zum Beispiel: | Zum Beispiel: | ||
*Lease-Time = 100s => "Renewal-Time" T1 = 50s und "Rebinding-Time" T2 = 87,5s | *Lease-Time = 100s => "Renewal-Time" T1 = 50s und "Rebinding-Time" T2 = 87,5s | ||
Zeile 68: | Zeile 65: | ||
===Konfiguration=== | ===Konfiguration=== | ||
/etc/dhcp/dhcpd.conf | |||
'''Datei:'''<code>/etc/dhcp/dhcpd.conf</code> | |||
*Lease-Time in Sekunden | *Lease-Time in Sekunden | ||
<pre>default-lease-time 600; | <pre>default-lease-time 600; | ||
max-lease-time 7200;</pre> | max-lease-time 7200;</pre> | ||
*Subnet-Blöcke | *Subnet-Blöcke | ||
<pre>subnet 10. | <pre>subnet 10.10.0.0 netmask 255.255.0.0</pre> | ||
*Range | *Range | ||
<pre>range 10. | <pre>range 10.10.0.100 10.10.0.199;</pre> | ||
*Options | *Options | ||
<pre>option subnet-mask 255.255. | <pre>option subnet-mask 255.255.0.0; | ||
option domain-name-servers 10. | option domain-name-servers 10.10.0.4; | ||
option domain-name "raum102.itw"; | option domain-name "raum102.itw"; | ||
option domain-search "raum102.itw"; | option domain-search "raum102.itw"; | ||
option routers 10. | option routers 10.10.0.1; | ||
option broadcast-address 10. | option broadcast-address 10.10.0.255;</pre> | ||
*Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden. | *Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden. | ||
<pre>root@ | <pre>root@router:~# systemctl restart isc-dhcp-server.service</pre> | ||
*Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern. | *Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern. | ||
*Bisherige Konfiguration verwerfen. | *Bisherige Konfiguration verwerfen. | ||
<pre>root@ | <pre>root@router:~# dhclient -r</pre> | ||
*Neue Konfiguration anfordern. | *Neue Konfiguration anfordern. | ||
<pre>root@ | <pre>root@router:~# dhclient</pre> | ||
===Fehlerauslesung=== | ===Fehlerauslesung=== | ||
/var/log/syslog | '''Datei:'''<code>/var/log/syslog</code> | ||
<pre>root@router:~# cat /var/log/syslog | grep "dhcp"</pre> | <pre>root@router:~# cat /var/log/syslog | grep "dhcp"</pre> | ||
*Erst Ordner /var/lib/dhcpd erzeugen. | |||
Erst Ordner /var/lib/dhcpd erzeugen. | |||
<pre>root@router:~# touch /var/lib/dhcpd</pre> | <pre>root@router:~# touch /var/lib/dhcpd</pre> | ||
*Dann Datei dhcpd.leases. | |||
Dann Datei dhcpd.leases. | |||
<pre>root@router:~# touch /var/lib/dhcpd/dhcpd.leases</pre> | <pre>root@router:~# touch /var/lib/dhcpd/dhcpd.leases</pre> | ||
*Danach wird diese Datei erst beschrieben und kann ausgelesen werden. | |||
Danach wird diese Datei erst beschrieben und kann ausgelesen werden. | |||
<pre>root@router:~# cat /var/lib/dhcpd/dhcpd.leases</pre> | <pre>root@router:~# cat /var/lib/dhcpd/dhcpd.leases</pre> | ||
===Konfigurationsdatei auf Server=== | |||
'''Datei:'''<code>/etc/dhcp/dhcpd.conf</code> | |||
/etc/dhcp/dhcpd.conf | |||
<pre>dhcpd.conf | <pre>dhcpd.conf | ||
# | # | ||
# If this DHCP server is the official DHCP server for the local | # If this DHCP server is the official DHCP server for the local | ||
Zeile 138: | Zeile 111: | ||
# have to hack syslog.conf to complete the redirection). | # have to hack syslog.conf to complete the redirection). | ||
log-facility local7; | log-facility local7; | ||
# A slightly different configuration for an internal subnet. | # A slightly different configuration for an internal subnet. | ||
subnet 10. | subnet 10.10.0.0 netmask 255.255.0.0 { | ||
range 10. | range 10.10.0.100 10.10.0.199; | ||
option subnet-mask 255.255. | option subnet-mask 255.255.0.0; | ||
option domain-name-servers 10. | option domain-name-servers 10.10.0.4; | ||
option domain-name "raum102.itw"; | option domain-name "raum102.itw"; | ||
option domain-search "raum102.itw"; | option domain-search "raum102.itw"; | ||
option routers 10. | option routers 10.10.0.1; | ||
default-lease-time 600; | default-lease-time 600; | ||
max-lease-time 7200; | max-lease-time 7200; | ||
} | } | ||
subnet 10.1.0.0 netmask 255.255.0.0 { | |||
range 10.1.0.100 10.1.0.199; | |||
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.1.0.1; | |||
default-lease-time 600; | |||
max-lease-time 7200; | |||
} | } | ||
subnet 10.2.0.0 netmask 255.255.0.0 { | |||
range 10.2.0.100 10.2.0.199; | |||
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.10.0.1; | |||
default-lease-time 600; | |||
max-lease-time 7200; | |||
} | } | ||
subnet 10.3.0.0 netmask 255.255.0.0 { | |||
range 10.3.0.100 10.3.0.199; | |||
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.10.0.1; | |||
default-lease-time 600; | |||
max-lease-time 7200; | |||
} | } | ||
# | #host user { | ||
# | # hardware ethernet 00:1d:7d:c8:de:bd; | ||
# | # fixed-address 10.10.0.101; | ||
# option host-name "user"; | |||
# | |||
#} | #} | ||
</pre> | </pre> | ||
===Konfigurationsdatei auf Client=== | |||
'''Datei:'''<code>/etc/dhcp/dhclient.conf</code> | |||
/etc/dhcp/dhclient.conf | |||
<pre># Configuration file for /sbin/dhclient. | <pre># Configuration file for /sbin/dhclient. | ||
# | # | ||
Zeile 272: | Zeile 188: | ||
netbios-name-servers, netbios-scope, interface-mtu, | netbios-name-servers, netbios-scope, interface-mtu, | ||
rfc3442-classless-static-routes, ntp-servers; | rfc3442-classless-static-routes, ntp-servers; | ||
</pre> | |||
=Quellen= | =Quellen= | ||
[https://de.wikipedia.org/wiki/DHCP wikipedia.org] | [https://de.wikipedia.org/wiki/DHCP wikipedia.org] |
Version vom 6. Februar 2020, 11:54 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
- Dynamische Zuordnung:
- Automatische Zuordnung 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
- 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 (siehe /var/lib/dhcpd.leases)
- Neue Clients erhalten keine IP-Adresse, wenn Adressbereich vergeben, auch wenn IP-Adressen nicht aktiv genutzt werden
- Statische Zuordnung:
- IP-Adressen werden MAC-Adressen fest zugeordnet; wichtig bei Port-Weiterleitungen oder wenn DHCP-Client Server-Dienste zur Verfügung stellt
- Kein „einfaches“ Einbinden von neuen Clients
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
- 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).
Einrichtung unter Linux/Debian
Installation
root@router:~# 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.10.0.0 netmask 255.255.0.0
- Range
range 10.10.0.100 10.10.0.199;
- 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.10.0.1; option broadcast-address 10.10.0.255;
- Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden.
root@router:~# systemctl restart isc-dhcp-server.service
- Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern.
- Bisherige Konfiguration verwerfen.
root@router:~# dhclient -r
- Neue Konfiguration anfordern.
root@router:~# dhclient
Fehlerauslesung
Datei:/var/log/syslog
root@router:~# cat /var/log/syslog | grep "dhcp"
- Erst Ordner /var/lib/dhcpd erzeugen.
root@router:~# touch /var/lib/dhcpd
- Dann Datei dhcpd.leases.
root@router:~# touch /var/lib/dhcpd/dhcpd.leases
- Danach wird diese Datei erst beschrieben und kann ausgelesen werden.
root@router:~# cat /var/lib/dhcpd/dhcpd.leases
Konfigurationsdatei auf Server
Datei:/etc/dhcp/dhcpd.conf
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.10.0.0 netmask 255.255.0.0 { range 10.10.0.100 10.10.0.199; 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.10.0.1; default-lease-time 600; max-lease-time 7200; } subnet 10.1.0.0 netmask 255.255.0.0 { range 10.1.0.100 10.1.0.199; 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.1.0.1; default-lease-time 600; max-lease-time 7200; } subnet 10.2.0.0 netmask 255.255.0.0 { range 10.2.0.100 10.2.0.199; 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.10.0.1; default-lease-time 600; max-lease-time 7200; } subnet 10.3.0.0 netmask 255.255.0.0 { range 10.3.0.100 10.3.0.199; 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.10.0.1; default-lease-time 600; max-lease-time 7200; } #host user { # hardware ethernet 00:1d:7d:c8:de:bd; # fixed-address 10.10.0.101; # option host-name "user"; #}
Konfigurationsdatei auf Client
Datei:/etc/dhcp/dhclient.conf
# Configuration file for /sbin/dhclient. # # This is a sample configuration file for dhclient. See dhclient.conf's # man page for more information about the syntax of this file # and a more comprehensive list of the parameters understood by # dhclient. # # Normally, if the DHCP server provides reasonable information and does # not leave anything out (like the domain name, for example), then # few changes must be made to this file, if any. # 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;