gogoNET(freenet6)とのトンネルが、強制的に切れるので...

一応、上手く行っているように見えるfreenet6とのIPv6トンネル接続、年明けてから4日連続でトンネルが切断されてしまうという状況が発生している。

2日の早朝にトンネルが切断されてたのが気にはなるけど、それ以外は特に問題はないかな〜。(といっても、使い始めて数日でしかないわけですが。)

[From gogoNETとIPv6トンネル接続 (その2) | Network - Soukaku's HENA-CHOKO Blog]

再接続できるし、パーソナルユースだから、まぁある程度我慢はするにしても、毎日切れるのは勘弁して欲しいなぁ、と思いつつログをチェックしてみると、切れるタイミングは決まって毎朝6時4分。

# grep "Failed to contact TSP listener at sydney.freenet6.net." /var/log/gogoc/gogoc.*
/var/log/gogoc/gogoc.20111231222153.log:2011/12/30 06:04:46 E gogoc: Failed to contact TSP listener at sydney.freenet6.net.
/var/log/gogoc/gogoc.20120103065407.log:2012/01/02 06:04:42 E gogoc: Failed to contact TSP listener at sydney.freenet6.net.
/var/log/gogoc/gogoc.20120103065407.log:2012/01/03 06:04:19 E gogoc: Failed to contact TSP listener at sydney.freenet6.net.
/var/log/gogoc/gogoc.log:2012/01/04 06:04:56 E gogoc: Failed to contact TSP listener at sydney.freenet6.net.
/var/log/gogoc/gogoc.log:2012/01/05 06:04:40 E gogoc: Failed to contact TSP listener at sydney.freenet6.net.

さらにトンネルが切れる前後のログを詳しく読んでみると、6時2分を過ぎたあたりから30秒おきのkeepaliveに対する相手側からの応答がなくなって、gogocがsit1の設定を一旦クリアしたところで、再接続処理に失敗しているように見える。

2012/01/03 06:02:37 I gogoc: Keepalive request sent.
2012/01/03 06:02:37 I gogoc: Keepalive reply received. Roundtrip time: 144.029ms
2012/01/03 06:03:07 I gogoc: Keepalive request sent.
2012/01/03 06:03:37 I gogoc: Keepalive request sent.
2012/01/03 06:04:07 I gogoc: Keepalive request sent.
2012/01/03 06:04:12 W gogoc: Keepalive processing stopped: General timeout detected.
2012/01/03 06:04:12 I gogoc: TSP_OPERATION=TSP_TUNNEL_TEARDOWN
2012/01/03 06:04:12 I gogoc: TSP_VERBOSE=3
2012/01/03 06:04:12 I gogoc: TSP_HOME_DIR=/usr/share/gogoc
2012/01/03 06:04:12 I gogoc: TSP_TUNNEL_MODE=v6v4
2012/01/03 06:04:12 I gogoc: TSP_HOST_TYPE=router
2012/01/03 06:04:12 I gogoc: TSP_TUNNEL_INTERFACE=sit1
2012/01/03 06:04:12 I gogoc: TSP_HOME_INTERFACE=eth1
2012/01/03 06:04:12 I gogoc: TSP_CLIENT_ADDRESS_IPV4=218.219.149.234
2012/01/03 06:04:12 I gogoc: TSP_CLIENT_ADDRESS_IPV6=2406:a000:f0ff:fffe:0000:0000:0000:476f
2012/01/03 06:04:12 I gogoc: TSP_CLIENT_DNS_ADDRESS_IPV6=2001:05c0:1000:0011:0000:0000:0000:0002
2012/01/03 06:04:12 I gogoc: TSP_CLIENT_DNS_NAME=soukaku.broker.freenet6.net
2012/01/03 06:04:12 I gogoc: TSP_SERVER_ADDRESS_IPV4=116.197.146.63
2012/01/03 06:04:12 I gogoc: TSP_SERVER_ADDRESS_IPV6=2406:a000:f0ff:fffe:0000:0000:0000:476e
2012/01/03 06:04:12 I gogoc: TSP_TUNNEL_PREFIXLEN=128
2012/01/03 06:04:12 I gogoc: TSP_PREFIX=2406:a000:f008:1c00
2012/01/03 06:04:12 I gogoc: TSP_PREFIXLEN=56
2012/01/03 06:04:12 I gogoc: Executing interface configuration script: /bin/sh "/usr/share/gogoc/template/linux.sh".
2012/01/03 06:04:12 I gogoc: --- Start of configuration script. ---
2012/01/03 06:04:12 I gogoc: Script:  linux.sh
2012/01/03 06:04:12 I gogoc: Tunnel tear down starting...
2012/01/03 06:04:12 I gogoc: Removing DNS server
2012/01/03 06:04:12 I gogoc: NOTE: Adjust template script to perform actions
2012/01/03 06:04:12 I gogoc: killing /var/run/gogoc/gogoc-rtadvd.conf
2012/01/03 06:04:12 I gogoc: 31705 31706
2012/01/03 06:04:12 I gogoc: /sbin/route -A inet6 del 2406:a000:f008:1c00::/56
2012/01/03 06:04:12 I gogoc: /sbin/route -A inet6 del 2406:a000:f008:1c00::/56 dev lo
2012/01/03 06:04:12 I gogoc: /sbin/ifconfig eth1 inet6 del 2406:a000:f008:1c00::1/64
2012/01/03 06:04:12 I gogoc: /sbin/route -A inet6 del ::/0
2012/01/03 06:04:12 I gogoc: /sbin/route -A inet6 del 2000::/3
2012/01/03 06:04:12 I gogoc: /sbin/ip tunnel del sit1
2012/01/03 06:04:12 I gogoc: Tunnel tear down completed.
2012/01/03 06:04:12 I gogoc: Interface configuration script completed successfully.
2012/01/03 06:04:12 E gogoc: General timeout detected.
2012/01/03 06:04:12 I gogoc: Disconnected. Retrying.
2012/01/03 06:04:12 I gogoc: Establishing connection to server sydney.freenet6.net using reliable UDP.
2012/01/03 06:04:13 I gogoc: Using TSP protocol version 2.0.2.
2012/01/03 06:04:13 I gogoc: Retrieving TSP capabilities from Server.
2012/01/03 06:04:13 I gogoc: RUDP packet 0, RTO 2.000000, sequence 0xf00000f0 timestamp 1149.
2012/01/03 06:04:15 I gogoc: No RUDP reply.
2012/01/03 06:04:15 I gogoc: RUDP packet 1, RTO 2.000000, sequence 0xf00000f0 timestamp 3149.
2012/01/03 06:04:17 I gogoc: No RUDP reply.
2012/01/03 06:04:17 I gogoc: RUDP packet 2, RTO 2.000000, sequence 0xf00000f0 timestamp 5151.
2012/01/03 06:04:19 I gogoc: No RUDP reply.
2012/01/03 06:04:19 E gogoc: Failed to contact TSP listener at sydney.freenet6.net.
2012/01/03 06:04:19 I gogoc: Disconnected. Retrying.
2012/01/03 06:04:19 I gogoc: Establishing connection to server sydney.freenet6.net using TCP.
2012/01/03 06:05:22 E gogoc: Failed to connect to server sydney.freenet6.net on port 3653.
2012/01/03 06:05:22 I gogoc: Disconnected. Retrying in 30 seconds.
2012/01/03 06:05:52 I gogoc: Establishing connection to server sydney.freenet6.net using TCP.
2012/01/03 06:05:52 E gogoc: Failed to connect to server sydney.freenet6.net on port 3653.
2012/01/03 06:05:52 I gogoc: Disconnected. Retrying in 30 seconds.

こうなると、手動でgogocを再起動しないとダメで、その時点で動いてるgogocとradvdのプロセスを強制終了して、再びgogocを起動するということをやっていたのだけど、それも毎日やるのは面倒なので、下のようなスクリプトを書いて毎朝6時10分に実行するようにしてみた。

# more ~/bin/tunnel_alive.sh
#!/bin/sh
#set -o xtrace
/sbin/ifconfig sit1 2>&1 > /dev/null
if [ $? -ne "0"  ] ; then
    killall gogoc
    killall radvd
    /usr/sbin/gogoc -f /etc/gogoc/gogoc.conf
fi;

やってることは簡単で、ifconfig叩いてsit1が無かったら、gogocとradvdを強制終了したあとに、gogocを起動するだけ。
これで、トンネルが切れていても5分後には再接続されているので、あまり気にはならなくなりました。

現時点では、こちら側というよりは、あちら側の問題じゃないかと思う(あちら側がkeepaliveに応答しなくなる時間が、毎日決まった時間なので)のだけど、このスクリプトを使わなくても良くなってくれるのはいつだろうなぁ...。

トラックバック(1)

日本は、「IPv6推進に積極的だ」と見えていたものが、一気に「IPv6後進国」になる危険性が出てきたわけですか...。(はぁ) この問題をどうするか。NT... 続きを読む

コメントする