Nexus7でOpenVPNを使えるように して置いたのだが、ある日突然 NetBSD6/i386 で動くtunモード(tomology p2p)の サーバと接続できるものの、そのトンネルを使っての通信が通らなくなった。 こんな感じ。
% ping -c 1 10.2.0.7 PING 10.2.0.7 (10.2.0.7): 52 data bytes 64 bytes from 10.2.0.7: icmp_seq=0 ttl=64 time=292.292 ms ----10.2.0.7 PING Statistics---- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 292.292/292.292/292.292/0.000 ms
--- 2013/01/12 9:10:54 --- IP (tun0) 10.2.0.7 --- IP (p2p0) fe80::5046:5dff:fe7d:3037%p2p0 --- IP (wlan0) fe80::5246:5dff:fe7d:3037%wlan0 --- IP (wlan0) 192.168.12.200 PING 10.2.0.1 (10.2.0.1) 56(84) bytes of data. From 10.2.0.1 icmp_seq=1 Destination Port Unreachable From 10.2.0.1 icmp_seq=2 Destination Port Unreachable From 10.2.0.1 icmp_seq=3 Destination Port Unreachable --- 10.2.0.1 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2010ms
# tcpdump -ni tun2 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun2, link-type NULL (BSD loopback), capture size 65535 bytes
10:36:22.955528 IP 10.2.0.7 > 10.2.0.1: ICMP echo request, id 54609, seq 1, length 64
10:36:22.955549 IP 10.2.0.1 > 10.2.0.7: ICMP 10.2.0.1 protocol 1 port 11372 unreachable, length 36
pass quick on tun2
# netstat -nrfinet|grep tun2 10.2.0/24 10.2.0.2 UGS 0 168 - tun2 10.2.0.2 10.2.0.1 UH 1 0 - tun2
結論:
わからん!
久々のギブアップ。どうしようもないのか!? と思ったが、逃げ手発見。 OpenVPN Connect に切り替えたら通信できた。これは OpenVPN for Android と同じくtun接続だが、topology net30 で繋ぐようになっている。これなら返りパケットも届いて繋がった。 いちおう現実的には解決。
ちなみに OpenVPN for Android でも他のNetBSD/amd64サーバに繋いでいるときは 問題なし。ますますわからん。