Interface mit mehreren IPv6 Adressen unter Ubuntu einrichten

Anders als bei IPv4 stehen bei IPv6 meist sehr viele öffentliche Adressen zur Verfügung. Daher ist es nicht unüblich einer Netzwerkschnittstelle auch mehrere Adresse zuzuweisen.

Im Artikel "Ubuntu: IPv4 und IPv6 im Dual-Stack Betrieb" wurde bereits beschrieben, wie unter Ubuntu ein IPv4 und IPv6 Dual-Stack konfiguriert wird. Sollen die Verschiedenen Dienste oder Container auf einem Server eigene IPv6 Adressen bekommen, müssen alle Adressen der entsprechenden Netzwerkschnittstelle zugewiesen werden. Momentan sind uns neben der händischen Konfiguration zwei Möglichkeiten über die Datei /etc/network/interfaces bekannt. Bei den folgenden Beispielen wird von folgender Grundkonfiguration mit einer IPv6 Adresse ausgegangen.

auto eth0
iface eth0 inet6 static
        address         2001:0DB8:0068:9cb9::3
        netmask         64
        gateway         2001:0DB8:0068:9cb9::2

Die erste Möglichkeit weitere IP-Adressen hinzuzufügen ist die Verwendung von ifconfig. Die Konfiguration für zwei weitere Adressen sehe dann wie folgt aus.

auto eth0
iface eth0 inet6 static
        address         2001:0DB8:0068:9cb9::3
        netmask         64
        gateway         2001:0DB8:0068:9cb9::2
        up              /sbin/ifconfig eth0 inet6 add 2001:0DB8:0068:9cb9::4/64
        up              /sbin/ifconfig eth0 inet6 add 2001:0DB8:0068:9cb9::5/64
        down            /sbin/ifconfig eth0 inet6 del 2001:0DB8:0068:9cb9::4/64
        down            /sbin/ifconfig eth0 inet6 del 2001:0DB8:0068:9cb9::5/64

Wichtig dabei ist, dass die IP-Adresse bei einer Deaktivierung der Schnittstelle wieder entfernt wird. Deshalb wird dies über das down Ereignis gemacht. Wird eine Adresse nicht entfernt kann es zu Fehlermeldungen oder Problemen kommen.

Eine weitere Möglichkeit ist das Anlegen von weiteren Abschnitt für die gleiche Netzwerkschnittstelle. In diesem Fall würde das obige Beispiel wie folgt aussehen.

auto eth0
iface eth0 inet6 static
        address         2001:0DB8:0068:9cb9::3
        netmask         64
        gateway         2001:0DB8:0068:9cb9::2

iface eth0 inet6 static
        address         2001:0DB8:0068:9cb9::4
        netmask         64

iface eth0 inet6 static
        address         2001:0DB8:0068:9cb9::5
        netmask         64

Wichtig ist, dass bei den zusätzlichen Abschnitten alle Einstellungen der Schnittstellen nicht wiederholt werden.

Die erste Methode wurde unter Ubuntu 12.04 und 14.04 erfolgreich getestet. Die zweite jedoch nur unter Ubuntu 14.04.

Damit die neuen Einstellungen übernommen werden, muss die entsprechende Netzwerkschnittstelle neu gestartet werden. Bei Ubuntu 12.04 konnte dies noch über den folgenden Befehl realisiert werden.

$ sudo /etc/init.d/networking restart

Bei Ubuntu 14.04 ist dies jedoch nicht mehr möglich und muss über folgende Befehlskette durchgeführt werden. Diese sollte so jedoch auch unter Ubuntu 12.04 funktionieren.

$ sudo ifdown eth0 && ifup eth0
Achtung
Die Netzwerkschnittstelle wird durch den ersten Befehl komplett deaktiviert und durch den zweiten wieder aktiviert. Kommt es zu Problemen, kann es passieren, dass der Server nicht mehr erreichbar ist. Es sollte daher sichergestellt werden, dass er zur Not über einen alternativen Rettungsmodus/-zugang erreichbar ist.

Verwandte Artikel