Auf modernen Servern bekommt man vom Anbieter meist nicht nur eine, sondern einen ganzen Bereich an IPv6-Adressen zugewiesen. So kann jeder Dienst eine eigene IP-Adresse verwenden und ist somit sauber getrennt. Den Netzwerk Interfaces ist meist standardmäßig aber nur eine Adresse zugewiesen. In diesem Artikel beschreibe ich wie man einem Netzwerk Interfaces zusätzliche IPv6-Adressen zuweist.
Zuerst sollte man sich die aktuelle Konfiguration anschauen
$ ifconfig eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.xxx Mask:xxx.xxx.xxx.xxx inet6 addr: xxxx::xxxx:xxxx/64 Scope:Link inet6 addr: xxxx:xxxx:xxxx:xxxx::2/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:xxx errors:0 dropped:0 overruns:0 frame:0 TX packets:xxx errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:xxx (xxx GB) TX bytes:20406527 (xxx GB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Die Konfiguration sagt aus, dass aktuell nur die IPv6-Adresse xxxx:xxxx:xxxx:xxxx::2/64 für das Interface eth0 konfiguriert ist. Falls noch die Adresse xxxx:xxxx:xxxx:xxxx::3/64 hinzugefügt werden soll, muss die Datei /etc/network/interfaces angepasst werden (Zeilen 14 bis 16 im nachfolgenden Beispiel).
auto lo iface lo inet loopback iface lo inet6 loopback auto eth0 iface eth0 inet dhcp ... iface eth0 inet6 static address xxxx:xxxx:xxxx:xxxx::2 netmask 64 gateway xxxx::1 iface eth0 inet6 static address xxxx:xxxx:xxxx:xxxx::3 netmask 64
Hierbei ist zu beachten, dass falls ein Gateway benutzt wird, dies nur bei der ersten IPv6-Adresse anzugeben ist.
Abschließend muss die geänderte Konfiguration noch neu geladen werden
$ service networking reload
Nun kann die neue Konfiguration mit ifconfig betrachtet werden.
$ ifconfig
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.xxx Mask:xxx.xxx.xxx.xxx
inet6 addr: xxxx::xxxx:xxxx/64 Scope:Link
inet6 addr: xxxx:xxxx:xxxx:xxxx::3/64 Scope:Global
inet6 addr: xxxx:xxxx:xxxx:xxxx::2/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:xxx errors:0 dropped:0 overruns:0 frame:0
TX packets:xxx errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:xxx (xxx GB) TX bytes:20406527 (xxx GB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Es ist zu erkennen, dass die zweite IPv6-Adresse jetzt auch dem Interface zugewiesen ist.