Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:dhcp-server [12.09.2009 20:21. ] – DHCP-Beschreibung ergänzt django | centos:dhcp-server [20.04.2018 10:26. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== DHCP-Server Konfigurieren unter CentOS 5.x ====== | ||
+ | Für die Zuweisung der Netzwerkkonfiguration an den Klienten durch unseren Server bedienen wir uns des DHCP((**D**ynamic **H**ost **C**onfiguration **P**rotocol)), | ||
+ | |||
+ | Mittels DHCP ist die automatische Einbindung eines neuen Klienten in unser bestehendes Netzwerk ohne große manuelle Konfiguration möglich. Am Klient muss daher nur der automatische Bezug der IP-Adresse eingestellt sein. Beim Start des Klienten am Netz kann dieser die IP-Adresse, die Netzmaske, das Gateway, DNS-Server und weitere Konfigurationsparameter vom DHCP-Server beziehen. Neben diesen klassischen Parametern zählen hierzu auch die Verwendung einer Reihe von weiteren IP-Variablen, | ||
+ | |||
+ | Beim Starten eines Klienten frägt dieser über einen Broadcast im gesamten Netzwerk nach (s)einer IP-Adresse. Als Antwort auf seinen Broadcast erhält er die beiden wichtigsten Parameter: | ||
+ | * IP-Adresse | ||
+ | * Lease-Time | ||
+ | Darüber hinaus können optional noch weitere Parameter mit übergeben werden, wie z.B.: | ||
+ | * Default-Route | ||
+ | * Netzmaske | ||
+ | * DNS-Server-Adressen | ||
+ | * WINS-Server | ||
+ | * Broadcast-Adresse | ||
+ | * IP-Varialen | ||
+ | * sowie noch weitere Parameter | ||
+ | ===== DHCP-Adressvergabe ===== | ||
+ | Der grundsätzliche Ablauf bei der Adress-Anfrage folgt dabei folgendem Schema. Die Kommunikation zwischen dem Server (Port 67) und dem Klienten (Port 68) erfolgte mittels UPD((**U**nreliable **D**atagram **P**rotocol)). | ||
+ | |||
+ | Beim Booten des Klienten frägt dieser mit einer // | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Sep 12 21:34:12 nss dhcpd: DHCPDISCOVER from 00: | ||
+ | Dieses Broadcast-Paket beantwortet nun der DHCP-Server mit einer // | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Sep 12 21:34:12 nss dhcpd: DHCPOFFER on 192.168.10.61 to 00: | ||
+ | Der Klient hat also vom DHCP-Server ein sogenanntes Angebot (//offer//) bekommen und entscheidet nun, ob es für ihn so in Ordnung ist. Trifft dies zu, sendet er eine // | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Sep 12 21:34:12 nss dhcpd: DHCPREQUEST for 192.168.10.61 (192.168.10.1) from 00: | ||
+ | Der DHCP-Server bestätigt dies und sendet eine // | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Sep 12 21:34:12 nss dhcpd: DHCPACK on 192.168.10.61 to 00: | ||
+ | Der gesamte erfolgreiche Ablauf aus Sicht des DHCP-Servers entspricht folgendem Diagramm. | ||
+ | <uml w=600> | ||
+ | |||
+ | title erfolgreiche Ablauf aus Sicht des DHCP-Servers\n | ||
+ | skin BlueModern | ||
+ | participant " | ||
+ | participant " | ||
+ | |||
+ | |||
+ | |||
+ | links <-- rechts : (Port 67) | ||
+ | note right : DHCPDISCOVER mit \nMAC 00: | ||
+ | links -> rechts : DHCPOFFER | ||
+ | note left : DHCPOFFER mit Angabe \nder IP 192.168.10.61 \nan MAC 00: | ||
+ | links <-- rechts : (Port 67) | ||
+ | note right : DHCPREQUEST mit Angabe \nder IP 192.168.10.61 \nund MAC 00: | ||
+ | links -> rechts : DHCPACK | ||
+ | note left : DHCPACK mit Angabe \nder IP 192.168.10.61 \nund der MAC 00: | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Im **syslog** des DHCP-Servers wird der Ablauf wie folgt festgehalten: | ||
+ | < | ||
+ | Sep 12 21:34:12 nss dhcpd: DHCPOFFER on 192.168.10.61 to 00: | ||
+ | Sep 12 21:34:12 nss dhcpd: DHCPREQUEST for 192.168.10.61 (192.168.10.1) from 00: | ||
+ | Sep 12 21:34:12 nss dhcpd: DHCPACK on 192.168.10.61 to 00: | ||
+ | Sollte die ganze Prozedur Fehl schlagen, z.B. weil der Klient herausgefunden hat, daß die IP-Adresse doppelt vergeben ist, sendet er eine // | ||
+ | |||
+ | Zusammen mit seiner IP-Adresse erhält der Klient in der DHCPACK-Nachricht auch eine Lease-Time mitgeteilt, welche ihm mitteilt, wie lange die IP-Adresse für ihn reserviert ist. Im RFC Standard wurde definiert, daß der Klient nach der Hälfte der Lease-Time einen erneuten DHCPREQUEST sendet. So teilt er dem Server mit, daß er weiterhin die für ihn reservierte IP-Adresse behalten möchte. Nach Erhalt dieser Nachricht sendet der DHCP-Server eine identische DHCPACK-Nachricht an den Client zurück, in der dann die aktuelle neue Lease-Time mitgeteilt wird. Die IP-Adresse ist somit verlängert und der DCHP-Refresh ist komplett. Sollte der Klient es versäumen eine Verlängerung zu beantragen, muss er die Konfiguration des Netzwerkinterfaces verwerfen und der DHCP-Request startet erneut mit einer DHCPDISCOVER-Nachricht. | ||
+ | |||
+ | Beim Herunterfahren eines Klienten kann dieser dem Server mit einer // | ||
+ | Sep 12 21:58:17 nss dhcpd: DHCPRELEASE of 192.168.10.238 from 00: | ||
+ | Der Klient hat aber auch die Möglichkeit, | ||
+ | Dann entfallen die Initialisierungsschritte und der Klient schickt direkt eine // | ||
+ | Sep 12 22:01:13 nss dhcpd: DHCPREQUEST for 192.168.10.15 from 00: | ||
+ | Sep 12 22:01:13 nss dhcpd: DHCPACK on 192.168.10.15 to 00: | ||
+ | |||
+ | ===== Installation ===== | ||
+ | Die Installation und Konfiguration des DHCP-Servers gestaltet sich relativ einfach. | ||
+ | |||
+ | Zu erst ist via **yum** der dhcp-Server zu installieren. | ||
+ | yum install dhcp -y | ||
+ | |||
+ | ===== Konfiguration ===== | ||
+ | Damit der DHCP-Server richtig funktioniert, | ||
+ | |||
+ | Als nächstes folgen in dieser Hierarchie die Subnetze. Hier dürfen ebenfalls Parameter für die Klienten festgelegt werden, die sich in diesem Subnetz befidnen. So könnte z.B. jedes Subnetz einen eigenen Default-Router besitzen. Die Parameter innerhalb des Subnetzes überschreiben die global definierten Parameter! Bei solchen Subnetzen ist es wichtig, daß der DHCP-Server nur auf Anfragen aus dem Subnetz antwortet, welche in der dhcpd.conf definiert wurden. Wurde ein Subnetz nicht beschrieben, | ||
+ | |||
+ | Die nächste Hierarchiestufe ist der Pool, dieser wird innerhalb eines Subnetzes angelegt. In so einem Pool können auch Bereiche angelegt werden, so können z.B. auch mehrere Pools in einem Subnetz existieren. | ||
+ | |||
+ | Als letzte Stufe in der Hierarchie gibt es die Host-Stufe. In dieser Stufe können einzelne Rechner konfiguriert werden, wenn z.B. diese immer die gleiche IP bekommen sollen. Diese //festen IP-Adressen// | ||
+ | |||
+ | Das " | ||
+ | |||
+ | Vergebene Adressen werden in der Datei **/ | ||
+ | |||
+ | ==== Optimierung bei mehreren Netzwerkkarten ==== | ||
+ | Sind im Server mehrere Netzwerkkarten vorhanden, binden wir den dhcp-Server an ein Interface. Dazu tragen wir in der **/ | ||
+ | < | ||
+ | DHCPDARGS=eth0</ | ||
+ | ==== Konfigurationsdatei bearbeiten ==== | ||
+ | Anschließend wird die Konfigurationsdatei unter **/ | ||
+ | |||
+ | < | ||
+ | ignore client-updates; | ||
+ | |||
+ | subnet 192.168.100.0 netmask 255.255.255.0 { | ||
+ | |||
+ | # --- default gateway | ||
+ | option routers | ||
+ | option subnet-mask | ||
+ | |||
+ | option nis-domain | ||
+ | option domain-name | ||
+ | option domain-name-servers | ||
+ | |||
+ | option time-offset | ||
+ | # | ||
+ | # | ||
+ | # --- Selects point-to-point node (default is hybrid). Don't change this unless | ||
+ | # -- you understand Netbios very well | ||
+ | # | ||
+ | |||
+ | range dynamic-bootp 192.168.100.200 192.168.100.254; | ||
+ | default-lease-time 21600; | ||
+ | max-lease-time 43200; | ||
+ | |||
+ | # we want the nameserver to appear at a fixed address | ||
+ | host ns { | ||
+ | next-server marvin.redhat.com; | ||
+ | hardware ethernet 12: | ||
+ | fixed-address 207.175.42.254; | ||
+ | } | ||
+ | host laptop | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.51; | ||
+ | } | ||
+ | host GXP-2000 | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.52; | ||
+ | } | ||
+ | |||
+ | host compaq-evo | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.53; | ||
+ | } | ||
+ | |||
+ | host compaq-deskpro | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.54; | ||
+ | } | ||
+ | |||
+ | host gericom | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.55; | ||
+ | } | ||
+ | |||
+ | host snom360 | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.56; | ||
+ | } | ||
+ | |||
+ | host snom320 | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.100.57; | ||
+ | } | ||
+ | |||
+ | host spa2100 | ||
+ | { hardware ethernet 00: | ||
+ | fixed-address 192.168.10.58; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | ===== DHCP-Konfiguration überprüfen ===== | ||
+ | Bevor wir nun unseren DHCP-Server das erste mal starten, überprüfen wir unsere Konfiguration mit: | ||
+ | # service dhcpd configtest | ||
+ | | ||
+ | ===== DHCP-Server starten ===== | ||
+ | Den ersten Start unseres DHCP-Server nehmen wir wie folgt vor. | ||
+ | < | ||
+ | dhcpd starten: | ||
+ | Im syslog wird der erfolgreiche Start entsprechend quittiert: | ||
+ | < | ||
+ | Nov 7 19:06:03 nss dhcpd: Copyright 2004-2006 Internet Systems Consortium. | ||
+ | Nov 7 19:06:03 nss dhcpd: All rights reserved. | ||
+ | Nov 7 19:06:03 nss dhcpd: For info, please visit http:// | ||
+ | Nov 7 19:06:03 nss dhcpd: WARNING: Host declarations are global. | ||
+ | Nov 7 19:06:03 nss dhcpd: Wrote 0 deleted host decls to leases file. | ||
+ | Nov 7 19:06:03 nss dhcpd: Wrote 0 new dynamic host decls to leases file. | ||
+ | Nov 7 19:06:03 nss dhcpd: Wrote 0 leases to leases file. | ||
+ | Nov 7 19:06:03 nss dhcpd: Listening on LPF/ | ||
+ | Nov 7 19:06:03 nss dhcpd: Sending on | ||
+ | Nov 7 19:06:03 nss dhcpd: Sending on | ||
+ | Beim Starten eines Klienten, in unserem Faller der Host **laptop** mit der MAC-Adresse **00: | ||
+ | < | ||
+ | Nov 7 19:07:50 mnss dhcpd: DHCPOFFER on 192.168.100.51 to 00: | ||
+ | Nov 7 19:07:50 mnss dhcpd: DHCPREQUEST for 192.168.100.51 (192.168.10.2) from 00: | ||
+ | Nov 7 19:07:50 mnss dhcpd: DHCPACK on 192.168.100.51 to 00: | ||
+ | |||
+ | ===== automatisches Starten des Dienste beim Systemstart ===== | ||
+ | Damit nun unser DHCP-server beim Booten automatisch gestartet wird, nehmen wir noch folgende Konfigurationsschritte vor. | ||
+ | < | ||
+ | Anschließend überprüfen wir noch unsere Änderung: | ||
+ | < | ||
+ | dhcpd | ||
+ | ====== Überwachung der ARP Tabelle mit arpwatch ====== | ||
+ | Mit dem Netzwerktool **// | ||
+ | |||
+ | **// | ||
+ | |||
+ | ^ Meldung | ||
+ | | New Activity | ||
+ | | New Station | ||
+ | | Changed MAC Address | Die MAC Adresse hat sich geändert | ||
+ | | Flip Flop | Die MAC Adresse hat sich zu einer schon mal verwendeten MAC Adresse geändert | | ||
+ | |||
+ | Tritt mindestens eines dieser Ereignisse auf, kann der **BOfH**((**B**astard **O**perator **F**rom **H**ell)) unmittelbar via eMail gewarnt und informiert werden. | ||
+ | Ferner werden im Syslog folgende Ereignisse protokolliert: | ||
+ | |||
+ | |||
+ | ^ Meldung | ||
+ | | MAC broadcast | ||
+ | | ip broadcast | ||
+ | | Bogon | Die IP-Adresse des Hosts gehört nicht in dieses Subnetz | ||
+ | | MAC mismatch | ||
+ | | reused old MAC address | Die MAC Adresse hat sich auf eine MAC Adresse geändert, die entweder der drittletzten oder noch älteren MAC Adresse entspricht | | ||
+ | |||
+ | Mit diesem Überwachungs-Programm können wir nun sehr schnell doppelte MAC- und IP-Adressen, | ||
+ | |||
+ | In der Datei // | ||
+ | < | ||
+ | 0: | ||
+ | 0: | ||
+ | 0: | ||
+ | 0: | ||
+ | ===== Installation ===== | ||
+ | Die Installation unter CentOS geht am einfachsten via **yum**. | ||
+ | # yum install arpwatch | ||
+ | Was uns das Programmpaket mitbringt, erkunden wir mit der Option **iql** beim Programm **rpm**. | ||
+ | # rpm -iql arpwatch | ||
+ | < | ||
+ | Version | ||
+ | Release | ||
+ | Install Date: Do 01 Okt 2009 20:25:38 CEST Build Host: builder16.centos.org | ||
+ | Group : Applications/ | ||
+ | Size : 472793 | ||
+ | Signature | ||
+ | URL : http:// | ||
+ | Summary | ||
+ | Description : | ||
+ | Das arpwatch Paket enthält arpwatch und arpsnmp. | ||
+ | arpsnmp sind beide Netzwerküberwachungswerkzeuge. | ||
+ | überwachen Ethernet oder FDDI Netzwerkverkehr und bauen Datenbanken von Ethernet/IP | ||
+ | Adressenpaaren, | ||
+ | |||
+ | Installieren Sie das arpwatch Paket, wenn Sie Netzwerküberwachungsgeräte, | ||
+ | welche automatisch IP Adressen auf Ihrem Netzwerk im Auge | ||
+ | behalten brauchen. | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ===== Konfiguration ===== | ||
+ | Viel gibt es nicht zu Konfigurieren, | ||
+ | # vim / | ||
+ | < | ||
+ | # -e < | ||
+ | # -s < | ||
+ | OPTIONS=" | ||
+ | ===== Programmstart ===== | ||
+ | ==== erster Programmstart ==== | ||
+ | Den **arpwatch** daemon starten wir einfach mit dem Aufruf: | ||
+ | # service arpwatch start | ||
+ | | ||
+ | Der erfolgreiche Programmstart wird uns im syslog dokumentiert: | ||
+ | < | ||
+ | Oct 1 20:33:37 nss arpwatch: listening on eth0 | ||
+ | Oct 1 20:33:39 nss arpwatch: new station 192.168.100.164 0: | ||
+ | Oct 1 20:33:41 nss arpwatch: new station 192.168.100.245 0: | ||
+ | Oct 1 20:34:23 nss dhcpd: DHCPDISCOVER from 00: | ||
+ | Oct 1 20:34:23 nss dhcpd: DHCPOFFER on 192.168.100.161 to 00: | ||
+ | Oct 1 20:34:23 nss dhcpd: DHCPREQUEST for 192.168.100.161 (192.168.100.1) from 00: | ||
+ | Oct 1 20:34:23 nss dhcpd: DHCPACK on 192.168.100.161 to 00: | ||
+ | Oct 1 20:34:25 nss arpwatch: new station 192.168.100.161 0: | ||
+ | Oct 1 20:34:27 nss arpwatch: new station 192.168.10.244 0: | ||
+ | ==== automatischer Programmstart ==== | ||
+ | Damit nun unser **arpwatch**-Daemon beim Booten automatisch gestartet wird, nehmen wir noch folgende Konfigurationsschritte vor. | ||
+ | # chkconfig arpwatch on | ||
+ | Anschließend überprüfen wir noch unsere Änderung: | ||
+ | # chkconfig --list | grep arpwatch | ||
+ | | ||
+ | ===== Status-eMail ===== | ||
+ | Beschafft sich nun ein Klient von unserem DHCP-Server eine Adresse, so wird nunmehr diese Aktion an den Sys-Admin per eMail gemeldet: | ||
+ | < | ||
+ | From: root@nausch.org (Arpwatch) | ||
+ | To: root@nausch.org | ||
+ | Subject: new station (ST-100.nausch.org) | ||
+ | Date: Thu, 1 Oct 2009 20:43:05 +0200 (CEST) | ||
+ | |||
+ | hostname: ST-100.nausch.org | ||
+ | ip address: 192.168.10.66 | ||
+ | ethernet address: 0: | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | ====== Links ====== | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||
+ | |||