Die Zukunft lässt sich blicken
vom
Ich hab’s nun auch endlich geschafft, mir eine IPv6-Adresse zuzulegen.
Vor ein paar Tagen habe ich mir dazu einen Account auf SixXS.net angelegt, der ein paar Tage bis zur Bestätigung brauchte (bei SixXS wird jedes Request manuell von Personen abgearbeitet, worauf man offenbar auch stolz ist), woraufhin ich heute einen Tunnel (AYIYA, siehe die Tunnel-Request-Seite im persönlichen SixXS-Bereich) angefordert und auch erhalten habe. Ich weiß zwar immer noch nicht, wofür die Abkürzung PoP steht, aber bei der Anforderung des Tunnels habe ich den mir am nächsten liegenden PoP NetCologne gewählt (ist in Köln, wie der Name schon sagt). Nachdem ich die Bestätigung hatte, habe ich mir den SixXS-Klienten AICCU installiert:
$ aurget -S aiccu
Konfiguration
Anschließend wollte ich wie im FAQ von SixXS beschrieben die Konfiguration anlegen, musste jedoch feststellen, dass sich die Konfigurationsdatei /etc/aiccu.conf ein wenig anders verhält als behauptet. Knackpunkt war die Definition des TIC-Servers, der laut SixXS folgende Direkive in der Konfigurationsdatei haben sollte:
The default is tic.sixxs.net which is the TIC server for SixXS, thus for all the PoPs.
In most cases you do not have to change the tic_server parameter in the AICCU configuration as the default for AICCU is tic.sixxs.net.
PoPs themselves do not provide a TIC service.
Nette Idee, aber es ist nicht der Default und die Direktive heißt
auch nicht tic_server
, sondern einfach nur server
; die
Konfigurationsdatei sagt explizit aus, dass es keinen Standardwert
gibt:
# Protocol and server to use for setting up the tunnel (defaults: none)
#protocol <tic|tsp|l2tp>
#server <server to use>
[...]
Entgegen der Behauptung des SixXS-FAQ muss diese Angabe also geändert werden, und zwar wie folgt:
protocol tic
server tic.sixxs.net
Weiterhin ist es natürlich ratsam, die Angaben zu Benutzername (SixXS-Handle) und Passwort zu machen:
# Login information (defaults: none)
username MGG5-SIXXS
password XXXXX
Schließlich habe ich AICCU noch angewiesen, eine PIDFile zu benutzen:
# PID File
pidfile /var/run/aiccu.pid
Alle anderen Angaben habe ich auf ihren Standardwerten belassen und bin zur Konfiguration meines Routers (einer Fritz!Box mit Freetz) übergegangen, wo ich folgende Portweiterleitungen eingerichtet habe:
- TCP-Port 3874 an meinen lokalen Rechner weitergeleitet
- UDP-Port 5072 an meinen lokalen Rechner weitergeleitet
Die Informationen zu den Ports habe ich ebenfalls dem SixXS-FAQ entnommen.
Test
Der Test mithilfe von
# aiccu test
ist interaktiv und ziemlich selbsterklärend. Falls nicht, mal die
Manpages zu ping
und traceroute
lesen.
Start
Dann konnte ich endlich zur eigentlichen Benutzung übergehen (IP- und MAC-Adressen ge-X-t):
√ root@hades => ~
# aiccu start
√ root@hades => ~
# ifconfig
eth0 Link encap:Ethernet HWaddr XXXXX
inet addr:XXXXX Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: XXXXX Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20874 errors:0 dropped:0 overruns:0 frame:0
TX packets:18083 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20561229 (19.6 Mb) TX bytes:2002204 (1.9 Mb)
Interrupt:43 Base address:0x8000
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:16436 Metric:1
RX packets:56 errors:0 dropped:0 overruns:0 frame:0
TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4704 (4.5 Kb) TX bytes:4704 (4.5 Kb)
sixxs Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: XXXXX Scope:Link
inet6 addr: XXXXX Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:144 (144.0 b)
√ root@hades => ~
# ping ipv6.google.com
ping: unknown host ipv6.google.com
Öööhh, ja. Das ist eine böse Falle, denn das normale ping
-Kommando
kann schlicht kein IPv6. Eine kurze Internetrecherche hat mich darauf
gebracht, dass es nicht AICCU ist, was hier
nicht funktioniert, sondern ping
. richtig muss das lauten:
# ping6 ipv6.google.com
PING ipv6.google.com(fra07s07-in-x69.1e100.net) 56 data bytes
64 bytes from fra07s07-in-x69.1e100.net: icmp_seq=1 ttl=57 time=50.7 ms
64 bytes from fra07s07-in-x69.1e100.net: icmp_seq=2 ttl=57 time=51.2 ms
64 bytes from fra07s07-in-x69.1e100.net: icmp_seq=3 ttl=57 time=51.4 ms
^C
--- ipv6.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 50.799/51.169/51.449/0.329 ms
√ root@hades => ~
#
Damit kann man jetzt alle Seiten erreichen, die nur IPv6 können.
Dauerhafte Einrichtung
Um aiccu automatisch zu starten, kann man, wenn man das klassische
SysV-Init von Arch benutzt, den aiccu
-Daemon /etc/rc.d/aiccu in
die /etc/rc.conf aufnehmen. Da ich aber seit neustem mit
Systemd boote, will ich auch erklären, wie mein einen
Systemd-Service für AICCU anlegt.
Systemd-Service
Systemd liest sämtliche Service-Dateien aus /lib/systemd/system und /etc/systemd/system. Da /lib nicht der Ort für maschinenspezifische Anpassungen ist, legt man die Datei /etc/systemd/system/aiccu.service an und füllt sie mit folgendem Inhalt:
Description=SixXS IPv6 tunnel interface After=syslog.target [Service] Type=forking PIDFile=/var/run/aiccu.pid ExecStart=/usr/sbin/aiccu start [Install] WantedBy=multi-user.target
Das Schöne an den Systemd-Service-Files ist, dass man sie recht gut versteht und sie nicht kompliziert sind. Unter dem Unit-Bereich werden allgemeine Optionen abgefasst, Service enthält die eigentlichen Informationen zum zu startenden Programm und Install zu welchem Target man das Programm zuordnet. Ich werde zur Einrichtung von Systemd einen Artikel schreiben, wenn ich mein Laptop auch dahin umrüste. Wer sich schon jetzt für Details über die Service-Files interessiert, dem sei dieser Blogpost zusammen mit den Manpages systemd.unit (5) und systemd.service (5) empfohlen.
Starten kann man AICCU nun mit
# systemctl start aiccu.service
Stoppen analog mit
# systemctl stop aiccu.service
Um beim Start automatisch gestartet zu werden (als Teil von multi-user.target):
# systemctl enable aiccu.service
und um es wieder aus dem Autostart zu entfernen:
# systemctl disable aiccu.service
Wichtig hierbei ist, dass ihr AICCU nicht neustartet, wenn es crasht. SixXS droht damit, den Account zu deaktivieren, wenn man das zu oft versucht, siehe hierzu folgendes aus der Konfigurationsdatei /etc/aiccu.conf:
# Daemonize? (default: true)
# Set to false if you want to see any output
# When true output goes to syslog
#
# WARNING: never run AICCU from DaemonTools or a similar automated
# 'restart' tool/script. When AICCU does not start, it has a reason
# not to start which it gives on either the stdout or in the (sys)log
# file. The TIC server *will* automatically disable accounts which
# are detected to run in this mode.
#
daemonize true
Also Pfoten weg von der Restart-Direktive der Service-Files!
Valete.