Hetzner - DokuWiki

OpenSolaris Zones

Inhaltsverzeichnis

OpenSolaris Zones/Containers

OpenSolaris bietet eine eigene Virtualisierungstechnolgie genannt Container oder Zones, die mit Solaris 10 eingeführt wurde.

Packet Loss

Der weiter unten beschriebene Packet Loss hat seine Ursache in der Konfiguration der Hetzner Switche und einer Variante des ARP Protokolls. Auf der Seite Solaris_DAD ist eine Lösung für dieses Problem beschrieben.


ein Exempel zur Netzwerkvirtualisierung unter Solaris

Meine Erfahrungen mit Open Solaris Zonen im Hetzner Netz war steinig. Der übliche Weg, jeder Zone eine shared IP Adresse in der Zonenkonfiguration zu geben, was nach aussen hin, lediglich ein IP Alias ist, hatte bei mir zur Folge, dass zwar alle Zonen Netzwerkkontakt hatten, aber es Unmengen verlorener Pakete zu allen Zonen, auch der globalen Zonen gab (~ 10 %). Teilweise war der Server minutenlan nicht erreichbar.

Der zweite Versuch, jeder Zone einen virtuellen NIC mit einer Adresse aus einem privaten Bereich zu geben und über NAT am rge0 Interface die Pakate an die Zonen weiterzuleiten ging kurzfristig gut, um nach ein paar Tagen in einem ähnlichen Desater zu ender, wie der erste Versuch.

Als Nächstes habe ich dann den Versuch gemacht über eine routende Zone, die anderen Zonen zu erreichen, was ich hier skizzieren will, da es jetzt schon mehrere Wochen stabil und ruckelfrei läuft.

Gedacht ist es so: Die physikalische Netzkarte (rge0) bekommt die erste zugewiese IP Adresse. Die virtuellen Netzwerkkarten in den Zonen mail und www bekommen je eine zusätzliche zugewiesene IP-Adresse. Die anderen virtuellen Netzwerkkarten bekommen je eine aus dem privaten Bereich 192.168.xxx.yyy Die Netzwerkkarten der Zonen werden über je zwei Switche und die Router Zone erreicht.


Zur Veranschaulichung eine primitive Grafik:

  --- global zone -----------------------------------------------------
  |                      -- zone router--           --- zone www ---- |
  |                      |              |           |               | |
  |                      |            +---switch1----+              | |
  |                      |           vnic10       vnic11            | |
  |                      |            +--------------+              | |
  |          +---switch0----+           |           |---------------| |
rge0       vnic0         vnic1          |                             |
  |          +--------------+           |           --- zome mail --- |
  |                      |            +---switch2- --+              | |
  |                      |          vnic20        vnic21            | |
  |                      |            +--------------+              | |
  |                      |              |           |               | |
  |                      ---------------            ----------------- |
  ---------------------------------------------------------------------


Konkret:

rge0: <1.zugewiesene IP-Adresse>/255.255.255.255
vnic0: 192.168.16.1/255.255.255.248
vnic1: 192.168.16.1/255.255.255.248
vnic10: 192.168.16.10/255.255.255.248
vnic11: <1. zusätzliche IP-Adresse>/255.255.255.255
vnic10: 192.168.16.20/255.255.255.248
vnic11: <2. zusätzliche IP-Adresse>/255.255.255.255

Und so wird es gemacht:

Zuerst werden die virtuellen Switche erstellt:

dladm create-etherstub switch0
dladm create-etherstub switch1
dladm create-etherstub switch2

Dann die virtuellen NICs:

dladm create-vnic -l switch0 vnic0
dladm create-vnic -l switch0 vnic1
dladm create-vnic -l switch1 vnic10
dladm create-vnic -l switch1 vnic11
dladm create-vnic -l switch2 vnic20
dladm create-vnic -l switch2 vnic21

Ausschnitt aus der Zonenkonfiguration der Zone router:

set ip-type=exclusive
add net
set physical=vnic1
add net
set physical=vnic10
add net
set physical=vnic20

Ausschnitt aus der Zonenkonfiguration der Zone www:

.....
set ip-type=exclusive
add net
set physical=vnic11

Ausschnitt aus der Zonenkonfiguration der Zone mail:

.....
set ip-type=exclusive
add net
set physical=vnic21

/etc/hostname.vnic* in der Zone router:

/etc/hostname.vnic1:192.168.126.2/29
/etc/hostname.vnic10:192.168.126.10/29
/etc/hostname.vnic20:192.168.126.20/29

/etc/hostname.vnic11 in der Zone www

/etc/hostname.vnic11:<1. zusätzliche IP Adresse>/32

/etc/hostname.vnic11 in der Zone mail

/etc/hostname.vnic11:<2. zusätzliche IP Adresse>/32

Routen:

globale Zone:

route -p add -host <Default Gateway>  <1. IP Adresse> -iface
route -p add -host <1. zusätzliche IP Adresse> 192.168.126.2
route -p add -host <2. zusätzliche IP Adresse> 192.168.126.2
route -p add -net 192.168.126.8/29  192.168.126.2
route -p add -net 192.168.126.16/29 192.168.126.2
route -p add default <Default Gateway>

Zone router:

route -p add -host <1. IP Adresse>/32 192.168.126.10 -iface
route -p add -host <1. zusätzliche IP Adresse>/32 192.168.126.20 -iface
route -p add -host <2. zusätzliche IP Adresse>/32 192.168.126.30 -iface
route -p add default 192.168.126.1

Zone www:

route -p add -host 192.168.126.10 <1. zusätzliche IP Adresse> -iface
route -p add default 192.168.126.10

Zone mail:

route -p add -host 192.168.126.20 <2. zusätzliche IP Adresse> -iface
route -p add default 192.168.126.20

Routing enablen in der globalen Zone und der Zone router:

svcadm enable svc:/network/routing/route:default
routeadm -e ipv4-forwarding
routeadm -e ipv4-routing
routeadm -u


© 2012. Hetzner Online AG. Alle Rechte vorbehalten.