Div. Probleme mit DHCP Server innerhalb VPS [message #26154] |
Wed, 16 January 2008 11:46 |
m.tinnemeier@squild.de
Messages: 2 Registered: December 2007
|
Junior Member |
|
|
Hallo an Alle!
Wir versuchen gerade (erfolglos) einen DHCP Server innerhalb eines VPS aufzusetzen. Die entsprechenden Howtos und Wiki-/Foreneinträge haben wir sofern möglich auf unser Szenario adaptiert.
Da wir derzeit selbst nicht genau wissen, wo das Problem liegen könnte versuche ich hier unseren Weg hin zur aktuellen Situation zu skizzieren – vielleicht haben wir ja dort schon relativ früh einen entsprechenden Fehler gemacht 
Unser Ausgangssetup bestand aus einer VE0 mit Debian Etch als Minimalinstallation sowie der OpenVZ laut Wiki (Softwarestand: Kernel 2.6.18-fza-028stab051.1-686, vzctl version 3.0.22-1dso1
). Danach haben wir erfolgreich mehrere VPS mit venet aufgesetzt, welche ihre Dienste (u.a. LDAP, Apache) problemlos gerecht werden.
Nun sollte zusätzlich noch ein VPS für unseren DHCP Server eingerichtet werden. Hierzu haben wir Informationen aus dem Wiki zu den Themen "Differences between venet and veth", "Virtual_Ethernet_device", "Bridge doesn't forward packets" und den Forenbeitrag "Running DHCP on VPS (ab Message ID #20765)" herangezogen.
Ein erstes Problem rührte aus einer schwammigen Formulierung im Wiki-Artikel "Differences between venet and veth". Dort heißt es "veth allows broadcasts in VE, so you can use even a DHCP server inside a VE [...].". Also haben wir laut Wiki aus dem venet ein veth Interface gemacht. Hierzu nutzten wir das im Wiki angegebene Script fürs veth-Routing "/usr/sbin/vznetaddroute" mit entsprechenden Änderungen in der VEID.conf und der vznet.conf genutzt. Leider ohne Erfolg.
Auf Basis des oben genannten Postings im Forum haben wir danach die veth-Routing Konfiguration analog zum Wiki-Artikel zu einer veth-Bridge Konfiguration geändert (wieder mit Änderungen der VEID.conf und vznet.conf). Hierzu erzeugen wir mit über die "/etc/network/interfaces" eine anonymous Bridge (ohne eigene IP) und weisen dieser initial das ansonsten unveränderte Primärinterface eth0 zu. Durch das Script aus dem Wiki-Artikel "/usr/sbin/vznetaddbr" wird dann bei Start von OpenVZ das entsprechende veth-Interface in die Bridge aufgenommen. Das Script "/usr/sbin/vznetaddbr" haben wir des weiteren auf Basis des genannten Foren-Eintrages um die Einträge "echo 1 > /proc/sys/net/ipv4/conf/br0/proxy_arp", "echo 1 > /proc/sys/net/ipv4/conf/br0/forwarding" sowie "ip route add $VETH_IP_ADDRESS dev $VZHOSTBR" ergänzt. Zudem wird auf der VE0 die iptables-Rule "iptables -A FORWARD -d 255.255.255.255 -j ACCEPT" gesetzt.
Aktueller Status:
Das System startet ohne Probleme, die Bridge wird erfolgreich initialisiert, die veth-Interfaces werden hinzugefügt und das Routing korrekt gesetzt (siehe Anhang). Alle VPS werden starten erfolgreich, alle Dienste innerhalb der VPS (z.B. Apache, LDAP, DNS, etc.) arbeiten korrekt.
Allerdings ist die VE0 nun nicht mehr direkt über Ihre IP erreichbar – die VPS allerdings schon. Wird vermutlich ein Routing-Problem in Zusammenhang mit der Bridge sein.
Zudem funktioniert eben der DHCP-Server nicht korrekt. Er registriert zwar mittlerweile (dank der Bridge) auf die Anfragen unserer Clients, die Clients erhalten jedoch keine IPs. Clientseitig heißt es immer dass die zugewiesene IP schon bereits im Netz vergeben wäre – was aber def. ausgeschlossen werden kann.
Wär schön, wenn jemand helfen könnte 
Liebe Grüße,
Matthias
------------------------------------
DHCPd-Log auf VPS
[...]
VPS dhcpd: DHCPDISCOVER from 00:1c:b3:bd:ac:d4 via eth0
VPS dhcpd: DHCPOFFER on 192.168.55.200 to 00:1c:b3:bd:ac:d4 via eth0
VPS dhcpd: DHCPREQUEST for 192.168.55.200 (192.168.55.11) from 00:1c:b3:bd:ac:d4 via eth0
VPS dhcpd: DHCPACK on 192.168.55.200 to 00:1c:b3:bd:ac:d4 via eth0
VPS dhcpd: DHCPREQUEST for 192.168.55.200 (192.168.55.11) from 00:1c:b3:bd:ac:d4 via eth0
VPS dhcpd: DHCPACK on 192.168.55.200 to 00:1c:b3:bd:ac:d4 via eth0
VPS dhcpd: Abandoning IP address 192.168.55.200: declined.
VPS dhcpd: DHCPDECLINE of 192.168.55.200 from 00:1c:b3:bd:ac:d4 via eth0: not found
[...]
------------------------------------
Netzwerk-Setup VE0:
# The loopback network interface
auto lo
iface lo inet loopback
# OPENVZ anonymous bridge
#
# (anonymous bridge = a bridge without
# an assigned IP)
auto br0
iface br0 inet manual
bridge_ports eth0
bridge_maxwait 0
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.55.5
network 192.168.55.0
netmask 255.255.255.0
broadcast 192.168.55.255
gateway 192.168.55.254
------------------------------------
Routingtabelle DHCPd-VPS
# ip route show
192.168.55.11 dev br0 scope link
192.168.55.5 dev br0 scope link
192.168.55.0/24 dev eth0 proto kernel scope link src 192.168.55.5
default via 192.168.55.254 dev eth0
------------------------------------
Netzwerk-Interfaces VE0
# ifconfig -a
br0 Protokoll:Ethernet Hardware Adresse 00:0C:29:0C:7A:1A
inet6 Adresse: fe80::218:f3ff:fe0d:2edd/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24758 errors:0 dropped:0 overruns:0 frame:0
TX packets:2917 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:3819612 (3.6 MiB) TX bytes:236898 (231.3 KiB)
eth0 Protokoll:Ethernet Hardware Adresse 00:18:F3:0D:2E:DD
inet Adresse:192.168.55.5 Bcast:192.168.55.255 Maske:255.255.255.0
inet6 Adresse: fe80::218:f3ff:fe0d:2edd/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42497 errors:0 dropped:0 overruns:0 frame:0
TX packets:30174 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:6101271 (5.8 MiB) TX bytes:6908267 (6.5 MiB)
Interrupt:193
lo Protokoll:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:10878 (10.6 KiB) TX bytes:10878 (10.6 KiB)
sit0 Protokoll:IPv6-nach-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
veth100.0 Protokoll:Ethernet Hardware Adresse 00:0C:29:0C:7A:3A
inet6 Adresse: fe80::20c:29ff:fe0c:7a3a/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3822 errors:0 dropped:0 overruns:0 frame:0
TX packets:12067 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:2919192 (2.7 MiB) TX bytes:1260384 (1.2 MiB)
------------------------------------
Bridge VE0
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c290c7a1a no eth0
veth100.0
------------------------------------
Relevanter Auszug aus der VPS-Config
Rest Standard:
# cat /etc/vz/conf/100.conf
[...]
# Don't create a venet device!
#IP_ADDRESS=""
CONFIG_CUSTOMIZED="yes"
# Bridged networking
VZHOSTBR="br0"
VETH_IP_ADDRESS="192.168.55.11"
NETIF="ifname=eth0,mac=00:0C:29:0C:7A:2B,host_ifname=veth100.0,host_mac=00:0C:29:0C:7A:3A"
------------------------------------
Netzwerk-Setup DHCPd-VPS
# Auto generated interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.55.11
netmask 255.255.255.0
broadcast 192.168.55.255
network 192.168.55.0
gateway 192.168.55.254
dns-nameserver 192.168.55.11
------------------------------------
Routingtabelle DHCPd-VPS
# ip route show
192.168.55.0/24 dev eth0 proto kernel scope link src 192.168.55.11
default via 192.168.55.254 dev eth0
|
|
|