ICMP(Internet Control Message Protocol)その6
目次
時間超過メッセージタイプ11
ICMPタイプ11時間超過メッセージが発生するケースは2通りあります。
・TTLが0になったとき(コード:0)
パケットのIPヘッダ内のTTLが0になり、ルータがパケットを破棄したときに送信されます。
・分割されたパケットを組み立てるタイマの時間切れ(コード:1)
パケットが分割されている場合、送信先のコンピュータで最初のパケットを受け取るとパケットを組み立てるタイマがスタートします。そのタイマが時間切れになると送信されます。分割されたパケットの一部が途中でなくなってしまった場合などに出されます。
トレースルート
トレースルートにこのICMPタイプ11時間超過メッセージが利用されています。トレースルートとは、目的のIPアドレスまでにどういった経路を通過するのかを確認するためのものです。ルーティングの設定が正しいかどうかを確認することができます。また、データの往復時間もわかるのでネットワークの混雑具合を調べるためにも利用されます。
簡単な例として、次の図のようなネットワークを考えてみます。
コンピュータAからコンピュータBに行くために、どういう経路(どのルータを経由するのか)を確認します。
まず、コンピュータAはTTL=1として、192.168.4.100(B)にパケットを送ります。R1がこのパケットを受け取ってルーティングをしますが、出力インタフェースに送り出すときに、TTLを1減らします。すると、TTL=0になってしまいますのでパケットは捨てられます。そして、このときR1からコンピュータAに対してICMP時間超過メッセージが送信されます。この時間超過メッセージの中にはR1のIPアドレスが含まれています。
今度は、コンピュータAからTTL=2にしてBにパケットを送ります。R1はパケットを受信してルーティングをし、TTLを1減らしてR2に中継します。R2も同様にパケットをルーティングしてTTLを1減らします。すると、ここでTTL=0となるので、パケットは捨てられてしまいます。そしてR2からAに対してICMP時間超過メッセージを送信します。時間超過メッセージにはR2のIPアドレスが含まれます。
では、次はAはTTL=3にして同様にBにパケットを送ります。これをあて先に到達するまで行うことによって、途中でどのような経路(ルータ)を通っているのかということを確認することができます。
トレースルートの例
Windowsパソコンでは、コマンドプロンプトから次のコマンドでトレースルートを実行することができます。
tracert [IPアドレス または ホスト名]
DNSが正しく設定されているなら、IPアドレスの代わりにホスト名でもOKです。実際にYahooのWWWサーバにトレースルートをかけた例が次のものです。(会社からこそっとやりました(笑))
C:\>tracert www.yahoo.co.jp Tracing route to www.yahoo.co.jp [210.81.150.166] over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms ***.****.co.jp [***.***.***.***] 2 <10 ms <10 ms 16 ms ***.****.co.jp [***.***.245.222] 3 <10 ms <10 ms 16 ms ***.****.co.jp [***.***.245.198] 4 15 ms 16 ms <10 ms 165.76.30.69 5 <10 ms 16 ms <10 ms 165.76.0.41 6 <10 ms 15 ms <10 ms AS4716.ix.jpix.ad.jp [210.171.224.81] 7 16 ms <10 ms 16 ms 61.114.1.71 8 140 ms 141 ms 141 ms 210.81.7.114 9 141 ms 140 ms 141 ms 0.so-3-2-0.GW2.TKO6.Alter.Net [210.80.6.114] 10 140 ms 141 ms 141 ms 210.81.10.6 11 141 ms 141 ms 156 ms 210.81.152.22 12 157 ms 171 ms 157 ms 210.81.152.42 13 141 ms 156 ms 141 ms w14.yahoo.co.jp [210.81.150.166] Trace complete.
最初の3行分は会社がバレてしまうので消しています・・・YahooのWWWサーバ(www.yahoo.co.jp)に到達するためには、1~13のような経路を通って通信することが可能なのがわかります。
Windowsのトレースルートでは平均をとるために3個パケットを出しています。そのパケットの往復時間が真中のあたりに表示されています。読者のみなさんもぜひ、インターネットに接続した状態でいろんなところにトレースルートを試してみてくださいね!