OpenSolaris Zones mit statischer IP

Nachdem ich lange danach suchen musste, wie man einer OpenSolaris Zone zwei statische IPs geben kann, schreibe ich das jetzt mal hier mal nieder, damit es auch andere finden.

Die Ausgangslage bei mir war, dass ich ein Interface in ein virtuelles LAN und ein Interface auf das externe Interface hatte.

source:sh> dladm show-link
LINK CLASS MTU STATE OVER
intern1 etherstub 9000 unknown —
vm_intern1 vnic 9000 up intern1
vm_extern1 vnic 1500 up rge0

Das Interface vm_intern1 sollte die IP 192.168.1.100 bekommen und das externe Interface vm_extern1 die IP 192.168.2.100.

In der VM ist der Service physical:default per default gestartet, so dass die Konfiguration recht schnell über die Bühne gehen kann. Als erstes müssen Dateien für die Interfaces angelegt werden, die beim Start beachtet werden sollen. In unserem Fall sind dies /etc/hostname.vm_intern1 und touch /etc/hostname.vm_extern1.

Als erste Zeile muss die IP des Interfaces eingefuegt werden und in der zweiten dann die Angaben für die Netzmaske und Broadcast.

source:sh> echo “192.168.1.100” >> /etc/hostname.vm_intern1
> echo “netmask 255.255.255.0 broadcast + up” >> /etc/hostname.vm_intern1

das selbe Spiel machen wir auch mit dem zweiten Interface

source:sh> echo “192.168.2.100” >> /etc/hostname.vm_intern2
> echo “netmask 255.255.255.0 broadcast + up” >> /etc/hostname.vm_intern2

Die Angabe broadcast + bedeutet in dem Fall, dass die Broadcastadresse nur den 0-Anteil der Subnetmask mit 1 auffüllen soll. So stand es zumindest auf einer Seite. Als ich das + weggelassen habe, habe ich als Broadcast die 192.168.255.255 erhalten, also scheint das nicht ganz hin zu kommen, aber zumindest funktioniert es mit + richtig.

Wenn wir jetzt neustarten würden, würden auch die beiden Interfaces richtig geladen werden und mit der eingestellten IP versehen. Was noch fehlt ist die Angabe der Nameserver und der Defaultroute.

Die Defaultroute setzt man ganz einfach mit

source:sh> echo “192.168.2.1” >> /etc/defaultrouter

Was nun noch bleibt ist der DNS-Server. Dafür muss die Datei /etc/nsswitch.dns nach /etc/nsswitch.conf kopiert werden.

source:sh> cp /etc/nsswitch.dns /etc/nsswitch.conf

Danach muessen noch die DNS-Server in die /etc/resolv.conf eingetragen werden und dann der DNS-Client gestartet werden. Das geht mit

source:sh> svcadm enable -r dns/client

Nach einem Neustart sollten die Interfaces mit den richtigen IPs ausgestattet sein, bei netstat -r die Routen stimmen und ein ping google.de eine Antwort bringen (wenn euer Container denn das Internet erreichen kann)