XEN Netzwerkkonfiguration

VirtualBox, VMWare, KVM, XEN, OpenVZ, Virtuozzo, etc.
Anonymous

XEN Netzwerkkonfiguration

Post by Anonymous » 2008-01-15 02:34

Hallo,

habe Debian Etch mit XEN 3.1 auf einem strato root server installiert. Da ich zwei statische IPs zugewiesen habe, schwebt mir folgendes Setup vor:

1.IP -> dom0
2.IP -> exklusiv für eine domU

das funktioniert mit den scripten network-route und vif-route auch einwandfrei. Nun möchte ich allerdings bestimmte Ports der 1.IP auf weitere domUs, welche keine statische IP haben, weiterleiten. Muss ich dazu eine Bridge erstellen, NAT, iptables?
Vielleicht kann ja jemand Licht ins Dunkel bringen...

viele Grüße

oioiii

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: XEN Netzwerkkonfiguration

Post by daemotron » 2008-01-15 18:21

Ich hab mir unter Xen neben der "DMZ" (also DomUs mit öffentlichen IPs, die über vif_route geroutet werden) zwei "LANs" angelegt, die per NAT/MASQUERADE auf's Internet zugreifen dürfen.
Dazu einfach in der Dom0 ein Dummy-Interface anlegen:

Code: Select all

modprobe dummy numdummies=2   # eben so viele, wie Du brauchst
modprobe iptable_nat

echo "dummy numdummies=2" >> /etc/modules
echo "iptable_nat" >> /etc/modules

cat >> /etc/network/interfaces << "EOF"
auto dummy0
iface dummy0 inet static
   address 10.0.1.1
   network 10.0.1.0
   netmask 255.255.255.0
   broadcast 10.0.1.255
   hwaddress ether 00:16:3e:xx:xx:xx
   up route add 12.34.56.78 dev eth0 && route add default gw 12.34.56.78
EOF

cat > /etc/network/if-up.d/iptables << "EOF"
#!/bin/sh

# enable masquerading for private domU's
/sbin/iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE
EOF

chmod 0755 /etc/network/if-up.d/iptables
/etc/init.d/networking restart

Jetzt einfach eine DomU anlegen, bei der die Netzwerk-Konfiguration so aussieht (wichtig ist die IP aus 10.0.1.0/24):

Code: Select all

name    = 'privater-host.meinedomain.intern'
vif  = [ 'mac=00:16:3e:xx:xx:xx,ip=10.0.1.10' ]
gateway = '10.0.1.1'
Um mit dieser DomU Dienste nach außen hin anbieten zu können, musst Du noch eine entsprechende NAT-Regel für die PREROUTING-Chain anlegen. Von der DomU aus selbst kannst Du so schon auf's Internet zugreifen (ping, apt-get update, etc.).

Die 00:16:3e:xx:xx:xx-MAC-Adressen vergebe ich fest (das ist der für Xen reservierte Bereich), da die Switches meines Providers empfindlich reagieren, wenn eine IP auf einmal mit einer anderen MAC auftaucht (oder umgekehrt). Mit 12.34.56.78 meine ich die öffentliche IP, die an eth0 der Dom0 gebunden ist.

HTH

Anonymous

Re: XEN Netzwerkkonfiguration

Post by Anonymous » 2008-01-17 14:15

Danke jfreund!

Hatte es fast schon soweit, allerdings hab ich das subnet mit vif-bridge erstellt und dadurch kein Routing(vif-route) mehr für die öffentlichen IPs.
Aber mit Deiner Lösung funktioniert es einwandfrei.
Demnach müsste es ja auch möglich sein das Routing per Hand zu erstellen und das Subnet über vif-bridge zu lösen?
Noch was zum Verständnis: Was ist der Unterschied zwischen bridge und dummy?

viele grüße
oioiii

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: XEN Netzwerkkonfiguration

Post by daemotron » 2008-01-17 16:41

oioiii wrote:Danke jfreund!

Gern geschehen - hab vorletztes Wochenende selbst eine Weile gepopelt, bis es funktioniert hat. :wink:

oioiii wrote:Hatte es fast schon soweit, allerdings hab ich das subnet mit vif-bridge erstellt und dadurch kein Routing(vif-route) mehr für die öffentlichen IPs.
Aber mit Deiner Lösung funktioniert es einwandfrei.

vif-Skripte mischen funktioniert nicht (richtig), da der Xend dann durcheinander kommt (hab ich jedenfalls bei mir schon festgestellt). Was Du aber machen kannst: Eigene Hook-Skripte schreiben, die dann das Netzwerk-Setup z. B. in Abhängigkeit der angegebenen IP-Adressen unterschiedlich aufbauen.

oioiii wrote:Demnach müsste es ja auch möglich sein das Routing per Hand zu erstellen und das Subnet über vif-bridge zu lösen?

Ich glaube, jetzt bringst Du etwas durcheinander. vif-bridge setzt voraus, dass die betroffenen DomUs eine öffentliche IP haben, für die eine passende Route außerhalb des Xen-Rechners definiert wurde. Natürlich kannst Du das Routing auch per Hand erledigen, vif-route setzt ja bloß entsprechende Routen beim Start der DomU und löscht sie wieder, wenn die DomU beendet wird. Mit route -n kannst Du Dir die bestehenden Routen anschauen, wenn die DomU mit vif-route gestartet wurde. Das kannst Du dann natürlich manuell nachahmen...

oioiii wrote:Noch was zum Verständnis: Was ist der Unterschied zwischen bridge und dummy?

bridge verbindet zwei Netzwerk-Interfaces im selben Rechner und sorgt dafür, dass diese auf unterster Ebene des IP-Stacks (Layer 2) im Kernel Pakete untereinander austauschen können, als wären sie mit einem Kabel verbunden (stark vereinfacht gesprochen). dummy hingegen stellt (virtuelle) Netzwerk-Interfaces bereit, die sich dann in eine Bridge einbeziehen lassen. In dem von mir beschriebenen Setup wird das bridge-Modul aber nicht benötigt, da die phyischen und virtuellen Interfaces in Dom0 nicht auf Layer 2, sondern auf Layer 3 gekoppelt wurden. Diese Technik ist unter dem Begriff Routing / IP-Forwarding bekannt. Diese Funktionalität ist im Debian-Xen-Kernel fest einkompiliert und benötigt daher kein zusätzliches Kernel-Modul. Mit brctl show kannst Du Dich übrigens selbst davon überzeugen, dass bei Dir keine Bridge angelegt wurde (es sei denn, Du verwendest irgendwo vif-bridge - dann müsste zumindest eine Bridge namens xenbr0 existieren).

pminnieur
Posts: 15
Joined: 2008-02-06 14:37

Re: XEN Netzwerkkonfiguration

Post by pminnieur » 2008-05-22 10:54

Hallo jfreund,

in Verbindung mit diesem Tutorial (http://wiki.kartbuilding.net/index.php/Xen_Networking#Two-way_Routed_Network_2) und deinem Hinweis (dummy0) bin ich endlich dahinter gekommen wie ich neben den externenIP-Adressen von Hetzner auch ein privates Subnetz betreiben kann :-)

Abermals vielen Dank für deine tollen Hinweise!

Gruß,
Pierre