Hetzner - DokuWiki

9 IP Adressen mit Ubuntu

Vorbemerkung: Alles auf dieser Seite geschriebene ist mit Ubuntu 7.10 getestet und funktioniert. Da keine Ubuntu-Spezifika verwendet werden, sollte dasselbe für debian gelten.

Grundsätzliches

Grundsätzlich gilt:

Die Angaben der Beispiele beziehen sich auf das "neue" Routing des Subnetzes über die Haupt-IP.

Für unsere Beispiele gilt:

192.168.0.250    = IP-Adresse, die Hetzner als Haupt-IP mitliefert
192.168.0.225    = Gateway wie von Hetzner zur Haupt-IP angegeben
192.168.1.160/29 = zweite bis siebte IP-Adresse bei einem /29er-Subnetz
                   (Netzmaske: 255.255.255.248)

Bei der Verwendung von Xen hat man nach den Anleitungen von Hetzner dann maximal 5 IPs für domUs zur Verfügung (1 IP wird für die dom0 benötigt). Das ist meist genug, kann jedoch auch knapp werden.

Dieser Artikel beschreibt eine Konfiguration, die es erlaubt alle 8 IPs für domUs zu verwenden.

Routing in dom0

Hetzner-Server müssen alle Datenpakete, die an andere physikalische Computer gerichtet sind, an ihren Gateway übergeben. Eine direkte Zustellung im eigenen Subnetz wird von den Routern verhindert.

Unter Debian/Ubuntu ist dies sehr einfach per "pointopoint" möglich. Eine minimale Netzwerkkonfiguration für die dom0 könnte also wie folgt aussehen:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.0.250
        netmask 255.255.255.255
        gateway 192.168.0.225
        pointopoint 192.168.0.225
        up route add -net 192.168.1.160 netmask 255.255.255.248 reject

Die reject-Route hat dabei den Sinn, zu verhindern, dass Pakete für eine noch nicht hochgefahrene domU wieder an den Gateway zurückgegeben werden, der sie dann wieder an die dom0 geben würde, die sie dann wieder an den Gateway ...

Dabei sollten in der Xen-Konfiguration die Skripte vif-route und network-route verwendet werden. Leider kommen diese allerdings mit der "pointopoint"-Konfiguration nicht zurecht. Dieser Fehler lässt sich wie folgt beheben:

In der Datei /etc/xen/scripts/vif-common.sh Folgende Zeile

ip addr show "$1" | awk "/^.*inet.*$1\$/{print \$2}" | sed -n '1 s,/.*,,p'

Wie folgt verändern:

 ip -4 -o addr show primary dev "$1" | awk '$3 == "inet" {print $4; exit}' | sed 's!/.*!!'

(siehe auch den dazugehörigen Debian-Bugreport)

Hintergrund: vif-common.sh erwartet die eigene IP in der Form xxx.xxx.xxx.xxx/yy, bei pointopoint wird dieses /yy jedoch nicht ausgegeben. Die veränderte Zeile kommt mit beiden Varianten zurecht.

Konfiguration der domUs

Einfacher gestaltet sich die Konfiguration der Netzwerk-Interfaces in der domU:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.160
        netmask 255.255.255.255
        gateway 192.168.0.250
        pointopoint 192.168.0.250
        post-up ethtool -K eth0 tx off

Dabei ist die .160 natürlich für jede domU durch eine eigene passende IP (.160 - .167) zu ersetzen. Außerdem muss diese jeweilige IP auch in der entsprechenden Konfigurationsdatei der domU eingetragen werden, z.B.:

vif = [ 'mac=00:16:3e:00:00:01,ip=78.47.82.250' ]

Die letzte Zeile war in meinem Falle nötig, da die domU sonst versucht hat, Pakete mit einer MTU von 3900 zu versenden, was natürlich nicht funktioniert hat.

Wichtig: Da auch hier pointopoint verwendet wird und es in diesem Falle keine Broadcast und Netzwerk-IP gibt, können alle 8 IP-Adressen verwendet werden. Natürlich sollten die "normalen" IPs Netz+1 bis Netz+6 zuerst und dann erst die IPs Netz+0 und Netz+7.



© 2012. Hetzner Online AG. Alle Rechte vorbehalten.