IPv6-Adressen sind statisch. Nun möchte man aus naheliegenden Gründen vielleicht nicht, dass man in Logfiles immer mit der gleichen v6-Adresse auftaucht. Dafür gibt es die so genannten Privacy Extensions für IPv6. Folgende Einstelllungen in der /etc/sysctl.conf stellen sicher, dass eine zusätzliche IP-Adresse auf dem Interface erzeugt wird, die sich alle fünf Minuten ändert und für abgehende Verbindungen genutzt wird.
# turn on ipv6 privacy extensions net.ipv6.conf.eth0.use_tempaddr = 2 net.ipv6.conf.eth0.temp_valid_lft = 300 net.ipv6.conf.all.use_tempaddr = 2 net.ipv6.conf.all.temp_valid_lft = 300 net.ipv6.conf.default.use_tempaddr = 2 net.ipv6.conf.default.temp_valid_lft = 300
Dies kann natürlich nur funktionieren, wenn man ein eigenes IPv6-Subnetz hat, aus welchem Adressen generiert werden können.
Überprüfung:
~ % ifconfig
eth0 Link encap:Ethernet Hardware Adresse xx:xx:xx:xx:xx:xx
inet Adresse:192.168.x.x Bcast:192.168.x.x Maske:255.255.255.0
inet6-Adresse: 2001:4dd0:xxxx:x:xxxx:xxxx:xxxx:xxx/64 Gültigkeitsbereich:Global
inet6-Adresse: fe80::xxxx:xxxx:xxxx:xxx/64 Gültigkeitsbereich:Verbindung
inet6-Adresse: 2001:4dd0:xxxx:x:xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:64 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:27675 (27.0 KiB) TX bytes:5375 (5.2 KiB)
Interrupt:29 Basisadresse:0xe000
Es ist zu erkennen, dass das Interface nun eine dritte IPv6-Adresse (inet6) hat. Diese wird nun für abgehende Verbindungen verwendet.
Folgendes Skript ist mit Vorsicht zu genießen. Läuft es zu oft, z. B. wenn der Endpunkt weg ist, dann wird man blockiert.
Skript:
#!/bin/sh
if ! grep -q sixxs /proc/net/dev
then /etc/init.d/aiccu restart
logger SixXS IPv6 tunnel down - restarting.
fi
Crontab:
0,20,40 * * * * /root/v6tunnel.sh >/dev/null 2>&1