Go, go, IPv6!

This article reminded me that I'm still (!) not connected to IPv6. While waiting for my SixXS account, I tried with GoGo6 (formerly known as Hexago):
$ apt-get install gogoc
$ cat /etc/gogoc/gogoc.conf
[...]
userid=foo
passwd=bar
server=authenticated.freenet6.net
auth_method=any
if_prefix=eth0
log_file=1
log_rotation_size=1024

$ /etc/init.d/gogoc start 
Starting IPv6 TSP Client: gogoc
Not starting gogoc - no server key ... (warning).
After a bit of searching it turned out to be a missing server key. Since we never connected to any Freenet6 server, we don't have any keys. The quick solution is to disable the keyfile check:
$ grep ^[A-Z] /etc/default/gogoc 
CHECK_KEYFILE="no"
However, gogoc still would not work. Well, the process was running, spinning wildly in fact - but not setting up a IPv6 tunnel. What was going on?
$ strace -p `pgrep gogoc` 2>&1 | grep -v read
write(1, "(Y/N) montreal.freenet6.net is a"..., 4096) = 4096
write(1, "freenet6.net is an unknown host,"..., 4096) = 4096
write(1, " an unknown host, do you want to"..., 4096) = 4096
write(1, "t, do you want to add its key?? "..., 4096) = 4096
Apparently there's a public key needed too:
$ gogoc -n
montreal.freenet6.net is an unknown host, do you want to add its key?? (Y/N) Y

$ ls -lgo /var/lib/gogoc/gogockeys.pub 
-rw-r----- 1 607 Jul  5 19:55 /var/lib/gogoc/gogockeys.pub
With that in place*, gogoc was running just fine and IPv6 connectivity was established - yay :-)

*and a few more tweaks for the webserver