星期五, 十二月 28, 2012

TunnelBroker不稳定情况一则


一直通过路由使用HE的tunnelbroker访问IPv6网络,开始用的dd-wrt设置的tunnel,非常稳定,但是由于硬件兼容问题,改为用原厂固件,改过后就出现V6不稳定的情况,困扰很久。具体表现是Win7经常找不到V6连接,通过test-ipv6.com测试时经常找不到IPv6地址,在linux下用ping6 ipv6.google.com测试时偶尔会出现Invalid Argument,但大多时间会成功。Goolge看到ping6在测试link local地址时没指定设备号会出现Invalid Argument的错误提示。检查当前tunnel创建命令:
ip tunnel add he-ipv6 mode sit remote 10.0.0.1 local 10.10.0.1 ttl 255
man 8 ip可以看到ip命令创建tunnel时支持通过dev参数指定绑定的设备,所以将创建命令改为:
ip tunnel add he-ipv6 mode sit remote 10.0.0.1 local 10.10.0.1 dev ppp0 ttl 255
经过一天测试,感觉比V6比原来稳定很多。猜测路由原版固件linux内核版本较老,在创建tunnel时不会同时绑定设备,在打开socket时会尝试不同设备发送,网络情况变化较多,可能造成某些尝试失败,而误报Invalid Argument。