IPv4/DHCP/Server

Aus Foxwiki

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=""