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).
Datei /etc/network/interfaces 12345678910111213141516auto 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.