IPv4/DHCP/Server: Unterschied zwischen den Versionen

Aus Foxwiki
OthmanAldaood (Diskussion | Beiträge)
Zeile 40: Zeile 40:


'''Datei:'''<code>/etc/dhcp/dhcpd.conf</code>
'''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.2.0.0 netmask 255.255.0.0</pre>
<pre>subnet 10.2.0.0 netmask 255.255.0.0</pre>
*Range
#Range
<pre>range 10.2.0.10 10.2.0.100;</pre>
<pre>range 10.2.0.10 10.2.0.100;</pre>
*Options
#Options
<pre>option subnet-mask 255.255.0.0;
<pre>option subnet-mask 255.255.0.0;
       option domain-name-servers 10.10.0.4;
       option domain-name-servers 10.10.0.4;
Zeile 54: Zeile 55:
       option routers 10.2.0.1;
       option routers 10.2.0.1;
</pre>
</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@router:~# systemctl restart isc-dhcp-server.service</pre>
<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@router:~# dhclient -r</pre>
<pre>root@router:~# dhclient -r</pre>
*Neue Konfiguration anfordern.
#Neue Konfiguration anfordern.
<pre>root@router:~# dhclient</pre>
<pre>root@router:~# dhclient</pre>
===Fehlerauslesung===
===Fehlerauslesung===
'''Datei:'''<code>/var/log/syslog</code>
'''Datei:'''<code>/var/log/syslog</code>

Version vom 23. Juni 2020, 14:29 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)

Einrichtung unter Linux/Debian

Installation

root@router:~# apt install isc-dhcp-server

Konfiguration

Datei:/etc/dhcp/dhcpd.conf

  1. 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
  1. Range
range 10.2.0.10 10.2.0.100;
  1. 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;
  1. Nach der Änderung der Konfiguration, muss die dhcpd.conf erneut eingelesen werden.
root@router:~# systemctl restart isc-dhcp-server.service
  1. Damit Änderungen bei bereits aktivem Client wirksam werden, muss dieser sie neu anfordern.
  2. Bisherige Konfiguration verwerfen.
root@router:~# dhclient -r
  1. 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.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";
#}

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;

Verbindungsaufbau

  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 Ablauf

  • 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:
Datei:Wireshark Screenshot

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

Quellen

wikipedia.org isc.org ubuntuusers.de wiki.debian.org