PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : xen 4.0.1 iptables dnat Problem



bp
07.04.11, 14:05
Hallo,

vor kurzen habe ich auf Xen 4.0.1 unter Debian Squeeze upgedatet. Seitdem funktionieren meine Firewall Regeln, speziell die DNAT-Regeln nicht mehr.

Folgendes Szenario:
Es gibt zwei öffentliche Netze und ein privates Netz.
Sämtlicher Netzwerkverkehr von außen an Netz2 wird über das Gateway von Netz1 geroutet. Das ist ein typischer DMZ-Aufbau. Soweit funktioniert auch alles.
Einzelne Dienste, z.b. http werden per DNAT auf einen Server im privaten Netz geleitet. Das funktionierte unter XEN 3.2. Unter XEN 4.0.1 funktioniert es nicht mehr.

Sämtliche beteiligten Rechner laufen als DomUs auf einem XEN-Host (Dom0). D.h. das Gateway von Netz1 (zentrale Firewall) ist eine DomU. Der Rechner im privaten Netz ist eine DomU und der Rechner auf dem das DNAT stattfindet ist der XEN Host (Dom0).

Eine Anfrage an z.B. www.meinhttp.netz geht folgenden Weg:

http-Anfrage -> Gateway-Netz1 (forward an)-> Xen-Host (dnat an) -> Web-Server(192.168.1.150)

Die DNAT-Regel lautet:
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \
-j DNAT --to 192.168.1.150:80

Der Part, der das entsprechende Forwarding erlaubt lautet:

${IPTABLES} -A FORWARD -j ACCEPT -i eth0 -d 192.168.1.150 -p tcp \
--dport 80 -m state --state NEW,ESTABLISHED,RELATED
${IPTABLES} -A FORWARD -j ACCEPT -o eth0 -s 192.168.1.150 -p tcp \
--sport 80 -m state --state ESTABLISHED,RELATED

Die Firewall Logs zeigen:
IN=eth0 OUT= PHYSIN=vif2.0 MAC=xxx SRC=xxx DST=xxx5 LEN=60 TOS=0x00 PREC=0x00 TTL=53 ID=15236 DF PROTO=TCP SPT=60916 DPT=80 WINDOW=4380 RES=0x00 SYN URGP=0

XEN ist mittels network-bridge realisiert:

brctl show:

eth0 8000.00e081721c46 no peth0
vif2.0
vif3.0
vif3.1
vif4.0
eth1 8000.00e081721c47 no peth1
tap5.0
tap6.0
tap8.0
vif5.0
vif6.0
vif7.0
vif8.0


ifconfig:
eth0 Link encap:Ethernet Hardware Adresse 00:e0:81:72:1c:46
inet Adresse:xxx Bcast:145.253.223.95 Maske:255.255.255.240
inet6-Adresse: fe80::2e0:81ff:fe72:1c46/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:486442 errors:0 dropped:0 overruns:0 frame:0
TX packets:477144 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:73551002 (70.1 MiB) TX bytes:73276058 (69.8 MiB)

eth1 Link encap:Ethernet Hardware Adresse 00:e0:81:72:1c:47
inet Adresse:xxx Bcast:192.168.30.255 Maske:255.255.255.0
inet6-Adresse: fe80::2e0:81ff:fe72:1c47/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:482172 errors:0 dropped:0 overruns:0 frame:0
TX packets:485138 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:45259543 (43.1 MiB) TX bytes:68433648 (65.2 MiB)


Es sieht einfach so aus, als wenn meine DNAT-Regel nicht beachtet wird, und Anfrage an http als lokale Anfrage verworfen wird. So langsam habe ich keine Ideen mehr. Kann mir jemand helfen?