PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shorewall 3.0.7 und Xen 3.0.2



F.O.G
21.06.2006, 21:12
Hallo zusammen,

ich habe ein Problem mit Shorewall und Xen unter Debian "Etch" und hoffe jemand kann mir Helfen. Ich versuche seit ca. 2 Tagen das Problem zu lösen, doch leider ohne Erfolg.:(

Ich versuche über die Gastdomänen (domU) ins Internet zu gelangen jedoch ohne Erfolg. Mit der Hauptdomäne (dom0), ist dies kein Problem. Die Kommunikation mittels Ping zwischen den Domänen funktioniert tadellos.

eth0 erhält mittels DHCP eine IP-Adresse (192.168.1.X) für die zwei Gastdomänen habe ich "dummy" network interfaces erstellt.

Ungefährer Aufbau meines Netzwerks:
http://img245.imageshack.us/my.php?image=xennetzwerkdetailliert3ef.jpg

/etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping eth0
script grep
map eth0

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
#address 192.168.1.50
#netmask 255.255.255.0
#network 192.168.1.0
#broadcast 192.168.1.255
#gateway 192.168.1.1

# The primary dummy network interface
auto dummy0
iface dummy0 inet static
address 172.16.2.1
netmask 255.255.255.0

# The secondary dummy network interface
auto dummy1
iface dummy1 inet static
address 10.10.1.1
netmask 255.255.255.0

config-file der Gastdomäne:

kernel = "/boot/vmlinuz-2.6.16-xen0"
ramdisk = "/boot/initrd.img-2.6.16-xen0"
memory = 128
name = "lan-debian-plain"
disk = ['file:/home/vserver/lan/lan-debian-plain-3.1.img,sda1,w', 'file:/home/vserver/lan/lan-debian-plain-3.1.swap,sda2,w']
root = "/dev/sda1"

# Network
vif = ['ip=172.16.2.10, bridge=xenbr-lan']
dhcp = "off"
ip = "172.16.2.10"
netmask = "255.255.255.0"
gateway = "172.16.2.1"
hostname = "lan-debian-plain"

/etc/modules:

dummy -o dummy0
dummy -o dummy1


ein Skript für Xen um die Bridges zu erstellen und an die "dummy" network interfaces zu binden:

#!/bin/sh
# Exit if anything goes wrong
set -e

# First arg is the operation
OP=$1
shift

script=/etc/xen/scripts/network-bridge.xen

case ${OP} in
start)
$script start vifnum=0 bridge=xenbr0 netdev=eth0
$script start vifnum=1 bridge=xenbr-lan netdev=dummy0
$script start vifnum=2 bridge=xenbr-dmz netdev=dummy1
;;
stop)
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
$script stop vifnum=1 bridge=xenbr-lan netdev=dummy0
$script stop vifnum=2 bridge=xenbr-dmz netdev=dummy1
;;
status)
$script status vifnum=0 bridge=xenbr0 netdev=eth0
$script status vifnum=1 bridge=xenbr-lan netdev=dummy0
$script status vifnum=2 bridge=xenbr-dmz netdev=dummy1
;;
*)
echo 'Unknown command: ' ${OP}
echo 'Valid commands are: start, stop'
exit 1
esac

/etc/resolv.conf

search server
nameserver 192.168.1.1

ich habs unter Shorewall schon mit masq versucht:
eth0 172.16.2.0/24
eth0 10.10.1.0/24
jedoch ohne Erfolg.
Bin am Ende meines Lateins, vielleicht hat jemand eine Idee?
Muss ich eventuell in der Hauptdomäne (dom0) zusätzlich mit iptables arbeiten?

Danke schon mal im Voraus

Gruss

F.O.G

Ich hab das ganze gelöst. Ich verwende jetzt (nach mehrmaligem Anraten) network-route in der Xen-Umgebung. Die Verwendung von Bridges (network-bridge) im Zusammenhang mit Xen und Shorewall in einer dom0 ist einfach zu komplex (zumindest für mich). :)

arnd2
19.07.2006, 13:00
Ich hab das ganze gelöst. Ich verwende jetzt (nach mehrmaligem Anraten) network-route in der Xen-Umgebung. Die Verwendung von Bridges (network-bridge) im Zusammenhang mit Xen und Shorewall in einer dom0 ist einfach zu komplex (zumindest für mich). :)

Hi,

die Antwort kommt zu spät, allerdings habe ich nach was anderem gesucht und Deinen Beitrag gefunden. Ich habe mit dem selben Problem gekämpft, allerdings liegt es nicht an Dir. Es ist ein Bug in XEN, welcher die TCP-Verbindung zwischen Dummy- und reellen Interfaces stört.

Siehe folgenden Link: http://lists.xensource.com/archives/html/xen-users/2006-04/msg00032.html

Die Lösung kurz gefasst:

Bei der Aktivierung des virtuellen Interfaces kann automatisch die Checksummenüberprüfung deaktiviert werden. Dazu muss in der Datei ‘/etc/xen/scripts/vif-bridge’ folgende Option eingefügt werden: “/usr/sbin/ethtool -K ${vif} tx off”

/etc/xen/scripts/vif-bridge

case "$command" in
online)
if brctl show | grep -q "$vif"
then
log debug "$vif already attached to a bridge"
exit 0
fi

brctl addif "$bridge" "$vif" ||
fatal "brctl addif $bridge $vif failed"

ifconfig "$vif" up || fatal "ifconfig $vif up failed"

# Disable tx checksum
/usr/sbin/ethtool -K ${vif} tx off || fatal "Disabling checksum for ${vif} failed"
;;

offline)
do_without_error brctl delif "$bridge" "$vif"
do_without_error ifconfig "$vif" down
;;
esac

Du musst jedoch noch "ethtool" installieren, damit die Änderungen funktionieren.

Gruß