現象
Macにてtracerouteを実行した際、正常に動かなかった。
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets 1 172.16.95.254 (172.16.95.254) 2.617 ms 2.001 ms 1.745 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * *
でもWebは見ることができる。
ということは学校にてICMPがフィルタリングされてるのでは?
hatena-MacBook-puro: user$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: icmp_seq=0 ttl=119 time=27.240 ms 64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=28.356 ms
そういうことではないらしい。。。
考察
もしかするとtracerouteで使っているプロトコルがICMPじゃなかったりして。。。
検索
ほうほう。使うプロトコルが違うのか。 てっきりICMPを使うかと思ってた。
MacでICMPを使ったtracerouteをするには「-l」オプションを使うらしい
ということで
hatena-MacBook-puro: user$ traceroute -l 8.8.8.8 Version 1.4a12+Darwin Usage: traceroute [-adDeFInrSvx] [-A as_server] [-f first_ttl] [-g gateway] [-i iface] [-M first_ttl] [-m max_ttl] [-p port] [-P proto] [-q nqueries] [-s src_addr] [-t tos] [-w waittime] [-z pausemsecs] host [packetlen]
なぜか実行できない。
でもオプション「-P」でプロトコルを指定できるっぽい。
ひとまずやってみる
hatena-MacBook-puro: user$ traceroute -P icmp 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 72 byte packets 1 172.16.95.254 (172.16.95.254) 4.569 ms 2.435 ms 2.022 ms 2 XXX.XXX.XXX.XXX (xxx.xxx.xxx.xxx) 1.302 ms 1.625 ms 2.394 ms : : : : 13 66.249.95.141 (66.249.95.141) 32.950 ms 27.799 ms 27.257 ms 14 google-public-dns-a.google.com (8.8.8.8) 26.981 ms 29.815 ms 26.451 ms
できた!
まとめ
Macでtracerouteをするには「-P ICMP」をつかう