DHCP
Dynamic Host Configuration Protocol
RFC 2131, Weiterentwicklung von BOOTP
💬❗ Wofür wird DHCP benötigt?
Ermöglicht die Zuweisung der Netzwerkkonfiguration an Clients durch einen Server
- IP-Adresse, Netzmaske
- Default Gateway
- Name Server
- …
- „4-Way-Handshake“
- Adressvergabeverfahren bei DHCP
- DHCP-Relay
- Ausfallsicherheit
- Sicherheit
- SLAAC und DHCPv6
„4-Way-Handshake“
💬 Wie bekommt ein neues Gerät im Netzwerk seine Konfiguration (vom DHCP-Server)?
❓❗ Welche DHCP-Nachrichten werden dafür in welcher Reihenfolge versendet?
❓❗ Wie finden Clients im Netzwerk den/die DHCP-Server?
sequenceDiagram participant Client participant Server Note right of Server: UDP port 67 Client->>Server: 1. DISCOVER Note left of Client: UDP port 68 Server->>Client: 2. OFFER Client->>Client: Auswahl eines der Angebote Client->>Server: 3. REQUEST Server->>Client: 4. ACKNOWLEDGE
- DISCOVER
- UDP Broadcast an 255.255.255.255:67 (von Absenderadresse 0.0.0.0:68)
- OFFER
- Server in der Broadcastdomain schlagen dem Client eine IP vor
- REQUEST
- Client wählt einen der Server aus, der eine DHCPOFFER gesendet hat und „beantragt“ die vorgeschlagene IP
- ACKNOWLEDGE
- Server bestätigt Zuteilung und übermittelt zusätzliche Konfigurationsdaten
💻 Demo:
## Vorhandene Leases löschen ## (damit wir die initiale Adresszuweisung beobachten können) sudo rm /var/lib/dhcpcd/*.lease ## DHCP-Pakete beobachten sudo tcpdump -n port bootps -v | grep --color DHCP ## Mehr Details über den Inhalt des ACKNOWLEDGE sudo tcpdump -n port bootps -v | grep --color ACK -A 10
Adressvergabeverfahren bei DHCP
❓❗ Welche 3 Betriebsmodi (Adressvergabeverfahren) von DHCP gibt es?
Wie funktionieren sie?
Welche Vor- und Nachteile haben sie jeweils?
💬 Für welche Zwecke werden sie jeweils eingesetzt?
Manuelle/Statische Zuordnung (Static Allocation)
- basierend auf MAC
- nützlich, wenn Server eine Adresse per DHCP zugeteilt bekommen sollen
Automatisch (Automatic Allocaton)
- reserviert IP für MAC bei erster Vergabe
- Nachteil: keine neuen Clients möglich, wenn einmal gesamter Adressbereich vergeben
Dynamisch (Dynamic Allocation)
-
IP wird für Lease-Time („Leihdauer“) vergeben
-
nach Renewal-Time fragt Client den DHCP-Server per Unicast um Erneuerung de Lease-Time
-
nach Rebind-Time falls keine Antwort auf Renewal: Broadcast um Lease von einem anderen DHCP-Server erneuert zu bekommen
-
wenn Lease-Time abgelaufen: erneutes DHCP-Discover nötig
DHCP-Relay
❓❗ Was ist ein DHCP-Relay? Wofür wird es benötigt? Wie funktioniert es?
- erlaubt DHCP über Router hinweg
- im Relay wird Adresse des DHCP-Servers konfiguriert
- DHCP-Server benötigt separate Adress-Pools für jedes Subsetz
Ausfallsicherheit
❓❗ Wie können Verfügbarkeit und Skallierbarkeit erhöht werden?
Active-Passive-Failover
- Active-DHCP-Server synchronisiert seinen Status mit Passive-DHCP-Servern
- Bei Ausfall übernimmt ein Passive
Load-Balancing
- Scope (Adressbereich) wird aufgeteilt: Jeder Server ist für einen teil des Scopes Active
- Bei Ausfall übernimmt ein Passive den Scope des ausgefallenen Servers
Sicherheit
💬 Diskutieren Sie die Sicherheit von DHCP im Bezug auf
- Verfügbarkeit
- Integrität
- Vertraulichkeit
- Anonymität
Welche Gefahren gehen jeweils aus von
- Server
- Clients
- Dritten
Wie kann man sich schützen? Welche Grenzen haben diese Maßnahmen?
Maßnahmen
SLAAC und DHCPv6
„Stateless Address Auto Configuration“
RFC 4862 + RFC 8106
💬 Was wissen wir zu IPv6?
Wiederholung: IPv6-Subnetze
📝❗ FiSi AP2 Analyse Sommer 2024 Aufgabe 2e
❓❗ Was sind Link-Local-Adressen?
❓❗ Was ist ein Router Advertisement?
💬 Warum wird SLAAC als „Stateless“ bezeichnet?
- Welche Vor- und Nachteile bringt das mit sich?
sequenceDiagram participant Client participant Netz participant Server Client->>Client: 1. Link local Address Client->>Netz: 2. Duplicate Address Detection Client->>Server: 3. Router Solicitation Server->>Client: 4. Router Advertisement Note right of Client: Global Unicast Prefix,<br/>Gateway Address,<br/>DNS Server Address Client->>Client: 5. Global Unicast Address Client->>Netz: 6. Duplicate Address Detection
-
Client generiert eine Link-Local-Adresse (fe80::/64 z.B. aus der MAC)
-
Client prüft per Neighbor Discovery Protocol (ICMPv6), dass niemand anderes im Netz die gleiche Adresse nutzt
-
Client fragt mit Router-Solicitation-Nachricht nach Routern
-
Router antworten mit Router Advertisement
- beinhaltet Präfix, innerhalb dessen er Adressen anbietet
-
Client generiert Globale Adresse mit Präfig des Routers (und z.B. MAC oder Zufall)
-
Client prüft per NDP, dass niemand anderes im Netz die gleiche Adresse nutzt
💻 Welche MAC-,IPv4-,IPv6-Adressen haben wir?
- Welche der Adressen sind Link-Local und welche Global?
- Wie dauerhaft sind die Adressen?
- Wie wurden die Adressen konfiguriert/bezogen/generiert?
ip a | grep --color -e state -e ether -e inet
DHCPv6
💬 In welchem Verhältnis stehen SLAAC und DHCPv6?
📝❗ FiSi AP2 Analyse Sommer 2024 Aufgabe 1
💬 Welche Vor-/Nachteile haben die unterschiedlichen Adressvergabeverfahren?
📝❗ FiSi AP2 Analyse Sommer 2022 Aufgabe 1