Logaholic.de

Avatar

web development

Xen Port Forwarding mit iptables

Hier noch eine kurze Ergänzung zu meinem Artikel Xen, Hetzner und private Netzwerke, wenn die eingerichteten virtuellen Maschinen mit verschiedenen Diensten von außen erreichbar sein sollen:

iptables -I PREROUTING -t nat -p tcp -i eth0 --dport 2201 -j DNAT --to 10.0.0.11:22

Dieser kleine Schnipsel, entsprechend in den iptables hinterlegt, reicht z.B. Anfragen an den Port 2201 weiter, und zwar an die IP-Adresse 10.0.0.11 auf Port 22.

Mit diesem Mittel kann man seine DomU’s aus privaten Netzwerken heraus von außen erreichbar machen.

Momentan nutze ich dies unter anderem für einen Web- und für einen Mail-Server, welche von außen nur über die entsprechenden Ports (80, 443, 25, 143, …) der verfügbaren Dienste zu erreichen sind.

Xen und die Uhrzeit

Vor ein paar Tagen stand ich vor dem eigentlich trivialen Problem, die Uhrzeit in einer Xen DomU umzustellen…

Jeglicher Versuch die Uhrzeit manuell, per Opennptd, ntpdate, oder was auch immer.. umzustellen, wurde prompt mit einer Nichtbeachtung beantwortet. Jegliche Änderung wurde innerhalb von Millisekunden wieder rückgängig gemacht.

Nach einigem rumsuchen habe ich dann herausgefunden, dass die Hardwareclock in der DomU von der Dom0 vorgegeben wird. Möchte man dies ausschalten (weil sie warum auch immer eine falsche Zeit liefert), so hilft:

echo 1 > /proc/sys/xen/independent_wallclock

Danach bietet sich ein ntpdate per Cronjob oder das Ressourcenschonendere (aber als Daemon im Hintergrund laufende) Openntpd an.

Hetzner, Xen und private Netzwerke

Da ich seit längerem auf meinem Hetzner Root-Server Xen betreibe und mir die zusätzlich zur Verfügung gestellten (6) IP-Adressen nicht wirklich ausreichten, habe ich mich mal ein wenig im Internet umgeschaut, inwiefern man Xen konfigurieren kann damit private Netzwerke, parallel zu dem von Hetzner bereitgestellten Subnetz, genutzt werden können.

Nach einigem Hin und Her habe ich endlich die Lösung gefunden, basierend auf folgenden Informationen (in entsprechender Reihenfolge gelesen):

  1. http://www.rootforum.de/forum/viewtopic.php?f=134&t=48119#p299110
  2. http://wiki.kartbuilding.net/index.php/Xen_Networking#Two-way_Routed_Network_2

Da das Gateway für das private Subnetz in diesem Fall die Dom0 ist, muss die Route entsprechend angepasst werden und auf der Dom0 hinzugefügt werden (in diesem Fall 10.0.0.1, bitte entsprechend in den Anleitungen darauf achten):

route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1

Danach können alle DomU im privaten Netzwerk auf das Internet und die DomU im Hetzner Subnetz zugreifen, umgekehrt geht es genau so leicht.

,