Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung | |||
|
lpi2:dhcp [2019/06/19 14:21] |
lpi2:dhcp [2025/07/13 10:27] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== DHCP4-Dienst mit festen IPv4-Adressen ====== | ||
| + | [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717215|dhcpd/KVM Bug]] beachten (( Lösungsmöglichkeiten um UDP Checksum-Problem in KVM zu vermeiden: | ||
| + | * in KVM e1000 als Netzwerkkarte auswählen, | ||
| + | * oder: TX offloading in der Netzwerkkarte ausschalten | ||
| + | * oder: mit iptables die Checksumme erzeugen | ||
| + | )) | ||
| + | ===== Pakete ===== | ||
| + | Debian (ab 6.0): | ||
| + | isc-dhcp-server | ||
| + | |||
| + | openSuSE (ab 12.1): | ||
| + | dhcp-server | ||
| + | |||
| + | centos (6) : | ||
| + | dhcp | ||
| + | |||
| + | ===== Konfiguration ===== | ||
| + | ''/etc/dhcp/dhcpd.conf'' : ( debian ab 6.0 ) | ||
| + | |||
| + | ''/etc/dhcpd.conf'' : ( openSuSE 12.1, centos 6 ) | ||
| + | <file> | ||
| + | authoritative; | ||
| + | ddns-update-style none; | ||
| + | |||
| + | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
| + | option domain-name "linuxhotel.de"; | ||
| + | option routers 192.168.1.1; | ||
| + | option broadcast-address 192.168.1.255; | ||
| + | default-lease-time 600; | ||
| + | max-lease-time 7200; | ||
| + | } | ||
| + | |||
| + | use-host-decl-names on; | ||
| + | |||
| + | host notebook24 { | ||
| + | hardware ethernet 00:16:d3:b9:a0:3e; | ||
| + | fixed-address 192.168.1.224; | ||
| + | } | ||
| + | </file> | ||
| + | |||
| + | === Debian ab 6.0 === | ||
| + | ''/etc/default/isc-dhcp-server'' : | ||
| + | <file> | ||
| + | INTERFACES="eth0" | ||
| + | </file> | ||
| + | |||
| + | === SuSE === | ||
| + | ''/etc/sysconfig/dhcpd'': | ||
| + | <file> | ||
| + | DHCPD_INTERFACE="eth0" | ||
| + | </file> | ||
| + | |||
| + | === CentOS (bis 6) === | ||
| + | ''/etc/sysconfig/dhcpd'' : | ||
| + | <file> | ||
| + | # Command line options here | ||
| + | DHCPDARGS="eth0" | ||
| + | </file> | ||
| + | |||
| + | ===== Testen ===== | ||
| + | === Debian, CentOS 5.3 === | ||
| + | dhcpd -t | ||
| + | |||
| + | === SuSE === | ||
| + | rcdhcpd check-syntax | ||
| + | |||
| + | ===== starten ===== | ||
| + | === openSuSE (ab 12.1) === | ||
| + | service dhcpd start | ||
| + | chkconfig dhcpd on | ||
| + | === debian (ab 6.0) === | ||
| + | service isc-dhcp-server restart | ||
| + | === centos (ab 7) === | ||
| + | service dhcpd start | ||
| + | ===== Client testen ===== | ||
| + | Optional: Interface mit passender Mac-Adresse anlegen: [[admin_grundlagen:macvlan]] | ||
| + | |||
| + | DHCP Anfrage ohne Änderung: | ||
| + | === Debian (ab 6.0) Ubuntu (18.04) === | ||
| + | dhclient -d -sf /bin/true eth0 | ||
| + | oder | ||
| + | dhclient -d -sf /usr/bin/env eth0 | ||
| + | |||
| + | Unter Ubuntu 18.04 läuft dhclient in einem [[AppArmor]]-Käfig (confinement) und kann daher ''/bin/true'' und ''/usr/bin/env'' nicht ausführen. [[AppArmor|Lösung]] | ||
| + | |||
| + | === openSuSE (12.3) === | ||
| + | dhcpcd --test eth0 | ||
| + | |||
| + | === openSuSE (ab 42.1) === | ||
| + | /usr/lib/wicked/bin/wickedd-dhcp4 --test eth0 | ||
| + | |||
| + | ====== IP-Adress-Pool ====== | ||
| + | <file txt /etc/dhcp/dhcpd.conf> | ||
| + | subnet 192.168.227.0 netmask 255.255.255.0 { | ||
| + | range 192.168.227.50 192.168.227.69; | ||
| + | … | ||
| + | log-threshold-high 80; | ||
| + | log-threshold-low 50; | ||
| + | } | ||
| + | |||
| + | |||
| + | </file> | ||
| + | dhcpd -t | ||
| + | service isc-dhcp-server restart | ||
| + | dhclient -d -sf /bin/true eth0 | ||
| + | dhcp-lease-list | ||
| + | |||
| + | ====== Clientseitiges DNS über DHCP konfigurieren ====== | ||
| + | <file txt /etc/dhcp/dhcpd.conf> | ||
| + | option domain-name "z03.example.org"; | ||
| + | option domain-name-servers 192.168.202.13; | ||
| + | option domain-search "linuxhotel.de", "z03.example.org"; | ||
| + | </file> | ||
| + | |||
| + | ====== DHCP Client ====== | ||
| + | ===== DHCP Server Optionen überschreiben ===== | ||
| + | Beispiel: eigene DNS-Informationen in die ''resolv.conf'' eintragen | ||
| + | <file txt /etc/dhcp/dhclient.conf> | ||
| + | supersede domain-name "z03.test"; | ||
| + | supersede domain-name-servers 192.168.203.101; | ||
| + | </file> | ||
| + | ====== Tools ====== | ||
| + | * [[ http://www.webmin.com | Webmin - incl. DHCP und DNS Modul ]] ( in Debian Sarge enthalten, in Etch nicht mehr ) | ||
| + | * [[ http://osuosl.org/projects/maintain/ | Maintain - web based management tool for DNS and DHCP ]] | ||
| + | |||
| + | ====== OMAPI / omshell ====== | ||
| + | Ist eine Möglichkeit einen laufenden DHCP-Server ohne Neustart zu steuern ( leases, etc. ). | ||
| + | |||
| + | |||
| + | |||
| + | ====== DHCP Failover ====== | ||
| + | Debian 5.0 | ||
| + | |||
| + | ( noch nicht getestet ) | ||
| + | |||
| + | mv /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.common.conf | ||
| + | scp /etc/dhcp3/dhcpd.common.conf notebook25.linuxhotel.de:/etc/dhcp3/dhcpd.common.conf | ||
| + | |||
| + | ===== dhcpd.common.conf ===== | ||
| + | ''/etc/dhcp3/dhcpd.common.conf'' : | ||
| + | <file> | ||
| + | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
| + | pool { | ||
| + | failover peer "dhcp-failover"; | ||
| + | range 192.168.1.100 192.168.1.189; | ||
| + | } | ||
| + | option domain-name "linuxhotel.de"; | ||
| + | option domain-name-servers 192.168.1.4, 192.168.1.6; | ||
| + | option routers 192.168.1.1; | ||
| + | option broadcast-address 192.168.1.255; | ||
| + | } | ||
| + | </file> | ||
| + | |||
| + | ===== Primary ===== | ||
| + | ''/etc/dhcp3/dhcpd.conf'' : | ||
| + | <file> | ||
| + | failover peer "dhcp-failover" { | ||
| + | primary ; # declare this to be the primary server | ||
| + | address notebook20.linuxhotel.de; | ||
| + | port 520; | ||
| + | peer address notebook25.linuxhotel.de; | ||
| + | peer port 520; | ||
| + | max-response-delay 60; | ||
| + | max-unacked-updates 10; | ||
| + | load balance max seconds 3; | ||
| + | mclt 1800; | ||
| + | split 128; | ||
| + | } | ||
| + | |||
| + | include "/etc/dhcp3/dhcpd.common.conf"; | ||
| + | </file> | ||
| + | /etc/init.d/dhcp3-server restart | ||
| + | |||
| + | ===== Secondary ===== | ||
| + | /etc/init.d/dhcp3-server stop | ||
| + | ''/etc/dhcp3/dhcpd.conf'' : | ||
| + | <file> | ||
| + | failover peer "dhcp-failover" { | ||
| + | secondary; | ||
| + | address notebook25.linuxhotel.de; | ||
| + | port 520; | ||
| + | peer address notebook20.linuxhotel.de; | ||
| + | peer port 520; | ||
| + | max-response-delay 60; | ||
| + | max-unacked-updates 10; | ||
| + | load balance max seconds 3; | ||
| + | } | ||
| + | |||
| + | include "/etc/dhcp3/dhcpd.common.conf"; | ||
| + | </file> | ||
| + | rm /var/lib/dhcp3/dhcpd.leases~ | ||
| + | > /var/lib/dhcp3/dhcpd.leases | ||
| + | /etc/init.d/dhcp3-server start | ||
| + | Sekunden entsprechend mclt Eintrag warten ... | ||
| + | |||
| + | ===== Primary oder Secondary syncronisieren ===== | ||
| + | z.B. nach ''Got POOLREQ, answering negatively! Peer may be out of leases or database inconsistent'' im Log ... | ||
| + | /etc/init.d/dhcp3-server stop | ||
| + | rm /var/lib/dhcp3/dhcpd.leases~ | ||
| + | > /var/lib/dhcp3/dhcpd.leases | ||
| + | /etc/init.d/dhcp3-server start | ||
| + | Sekunden entsprechend mclt Eintrag warten ... | ||