====== 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 )
authoritative;
ddns-update-style none;
log-facility local7;
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;
}
=== Debian ab 6.0 ===
''/etc/default/isc-dhcp-server'' :
INTERFACES="eth0"
=== SuSE ===
''/etc/sysconfig/dhcpd'':
DHCPD_INTERFACE="eth0"
=== CentOS (bis 6) ===
''/etc/sysconfig/dhcpd'' :
# Command line options here
DHCPDARGS="eth0"
===== 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 ======
subnet 192.168.227.0 netmask 255.255.255.0 {
range 192.168.227.50 192.168.227.69;
…
}
dhcpd -t
service isc-dhcp-server restart
dhclient -d -sf /bin/true eth0
dhcp-lease-list
====== Clientseitiges DNS über DHCP konfigurieren ======
option domain-name "z03.example.org";
option domain-name-servers 192.168.202.13;
option domain-search "linuxhotel.de", "z03.example.org";
====== DHCP Client ======
===== DHCP Server Optionen überschreiben =====
Beispiel: eigene DNS-Informationen in die ''resolv.conf'' eintragen
supersede domain-name "z03.test";
supersede domain-name-servers 192.168.203.101;
====== 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'' :
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;
}
===== Primary =====
''/etc/dhcp3/dhcpd.conf'' :
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";
/etc/init.d/dhcp3-server restart
===== Secondary =====
/etc/init.d/dhcp3-server stop
''/etc/dhcp3/dhcpd.conf'' :
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";
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 ...