IPv4/DHCP/Server
DHCP (Dynamic Host Configuration Protocol)
Allgemein
- ist Erweiterung des Bootstrap-Protokolls (BOOTP)
- ist ein Hintergrundprozess (Dienst/Daemon)
- definiert in RFC 2131
- Transport durch UDP
- Standard-Ports:
- IPv4: 67 (Server od. Relay-Agent) 68 (Client)
- IPv6: 547 (Server od. Relay-Agent) 546 (Client)
Aufgabe
- angeschlossene Clients ohne manuelle Konfiguration der Schnittstelle in ein bestehendes Netz einbinden
- heißt die Netzwerkparameter - IP-Adresse, Netzmaske, Gateway, Rechnername, Broadcast Adresse, Boot-Image für plattenlose Workstations, NetBIOS Nameserver und Name Server (DNS) - können automatisch vergeben werden
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)
- DHCPACK: DHCP-Server sendet Konfigurationsparameter an Client
Betriebsmodi
- manuelle Zuordnung (statisches DHCP):
- IP-Adressen werden bestimmten 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
Einrichtung unter Linux/Debian
clientseitig: "/etc/network/interfaces"
serverseitig (hier auf Router02): "/etc/dhcp/dhcpd.conf" und "/etc/default/isc-dhcp-server"
/etc/dhcp/dhcpd.conf
# dhcpd.conf # # Sample configuration file for ISC dhcpd # # option definitions common to all supported networks... # The ddns-updates-style parameter controls whether or not the server will # 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 # have support for DDNS.) #ddns-update-style none; # 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; # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. #subnet 10.152.187.0 netmask 255.255.255.0 { #} # This is a very basic subnet declaration. # #Subnetz 1 subnet 10.10.0.0 netmask 255.255.0.0 { range 10.10.0.10 10.10.0.99; option routers 10.10.0.1; option domain-name "raum102.itw"; option domain-name-servers 10.0.0.3; default-lease-time 600; max-lease-time 7200; get-lease-hostnames true; } #Subnetz 2 subnet 10.20.0.0 netmask 255.255.0.0 { range 10.20.0.10 10.20.0.99; option routers 10.20.0.1; option domain-name "raum102.itw"; option domain-name-servers 10.0.0.3; default-lease-time 600; max-lease-time 7200; get-lease-hostnames true; } #Subnetz 3 subnet 10.30.0.0 netmask 255.255.0.0 { range 10.30.0.10 10.30.0.99; option routers 10.30.0.1; option domain-name "raum102.itw"; option domain-name-servers 10.0.0.3; default-lease-time 600; max-lease-time 7200; get-lease-hostnames true; }
/etc/default/isc-dhcp-server
# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server) # Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). #DHCPDv4_CONF=/etc/dhcp/dhcpd.conf #DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf # Path to dhcpd's PID file (default: /var/run/dhcpd.pid). #DHCPDv4_PID=/var/run/dhcpd.pid #DHCPDv6_PID=/var/run/dhcpd6.pid # Additional options to start dhcpd with. # Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead #OPTIONS="" # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". #für 10.10.0.1 enp1s8, 10.20.0.1 enp1s9, 10.30.0.1 enp1s6 INTERFACESv4="enp1s8 enp1s9 enp1s6" INTERFACESv6=""