障害対応の際、とあるホストへ対して「traceroute」を打ったのだがLINUXサーバとWindwosサーバで異なる結果になった。理由は通信時において使用されるデフォルトのプロトコル/ポート番号の差異によるものだった。備忘録として記事にした。
原因
■Linux
プロトコル:UDP(ポート番号:33434~33499)
■Windows
プロトコル:ICMP
上記のように、デフォルトでtracerouteコマンドを打った場合、プロトコル/ポート番号が異なる。コマンド実行端末と対象ホストの間にファイアウォール(以下、FW)があり同FWのアクセスルールにおいて、別LANからのICMPは許可していたのだが、UDPは許可していなかった。これにより、結果に差異が生じたものである。
備考
LINUXの場合、以下のようにオプション[I]を指定すればICMPでtracerouteを実行できる
traceroute -I 192.168.0.XX
(UDP通すためにFWを弄るのがめんどくさい...社内申請的な意味で)
これにより、Windows(tracert 192.168.0.XX)と同じ結果を得られた。