ping と traceroute の使い方 (通信が届いているかを確認する)      


通信の経路について調査する時に良く使われるコマンドが二つあります。pingとtracerouteです。pingは宛先のIPアドレスに届いて返事が返ってくるかどうか・・・tracerouteは宛先のIPアドレスまでどの経路を辿って到達したか・・・を調べるコマンドです。Windows, UNIX(Linux), ルータ製品などには必ず付いています。ただ惜しいことにMacintoshには標準では付いていません。。。

●DOSプロンプトを開く(Windowsの場合)

Windows95/98 スタート>プログラム>MS-DOSプロンプト
WindowsME スタート>プログラム>アクセサリ>MS-DOSプロンプト
Windows2000/XP スタート>プログラム>アクセサリ>コマンドプロンプト

UNIXやルータは最初からコマンドライン(CLI:Command Line Interface)で動かしているので割愛します。


●pingを打つ(Windowsの場合)

DOSプロンプトを開いたら下記のようにコマンドを実行してみましょう。
送信元(Sorce)アドレスは192.168.1.10
宛先(Distination)アドレスは192.168.1.1 とした場合です。

C:\>ping 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data:

Reply from 192.168.1.1: bytes=32 time<10ms TTL=100
Reply from 192.168.1.1: bytes=32 time<10ms TTL=100
Reply from 192.168.1.1: bytes=32 time<10ms TTL=100
Reply from 192.168.1.1: bytes=32 time<10ms TTL=100

Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

上記のようにReply from と返ってきたら宛先までIP通信が届いて返ってきた!という証拠です。

C:\>ping 192.168.1.5

Pinging 192.168.1.5 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.1.5:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

このように Request timed out と返ってきたら、宛先まで届いていないか、届いても返りが戻ってこれなかったか、いずれかです。

ではインターネット上のサーバに向けてpingを打ってみましょう。

C:\>ping www.google.co.jp

Pinging www.google.com [216.239.57.99] with 32 bytes of data:

Request timed out.
Reply from 216.239.57.99: bytes=32 time=180ms TTL=43
Reply from 216.239.57.99: bytes=32 time=171ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43

Ping statistics for 216.239.57.99:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 170ms, Maximum = 180ms, Average = 130ms

ここでは4回のうち3回は返ってきました。これは経路が混んでいるなどの理由で、1回はパケットをロスした事を示します。また宛先は名前解決できる場合にはURLで打っても構いません。

またWindowsではデフォルトで4回打つようになっていますが、連続してpingを打ち続ける場合には「-t」というオプションを付けます。終了させるには「Crtl」+「C」を押します。

C:\>ping -t www.google.co.jp

Pinging www.google.com [216.239.57.99] with 32 bytes of data:

Reply from 216.239.57.99: bytes=32 time=180ms TTL=43
Reply from 216.239.57.99: bytes=32 time=171ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43
Reply from 216.239.57.99: bytes=32 time=171ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43
Reply from 216.239.57.99: bytes=32 time=180ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43
Reply from 216.239.57.99: bytes=32 time=170ms TTL=43
Reply from 216.239.57.99: bytes=32 time=171ms TTL=43
Reply from 216.239.57.99: bytes=32 time=180ms TTL=43
Reply from 216.239.57.99: bytes=32 time=171ms TTL=43

Ping statistics for 216.239.57.99:
Packets: Sent = 13, Received = 13, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 170ms, Maximum = 180ms, Average = 172ms
Control-C
^C


●tracertを打つ(Windowsの場合)

UNIXやルータでは「traceroute」というコマンドですが、Windowsの場合には「tracert」となります。
tracerouteはルータを経由する毎にどのアドレスを表示してゆきますので、少し離れたネットワークにあるアドレスを宛先にしないと意味がありません。ではもういちどgoogleに向かってtraceしてみましょう。

C:\>tracert www.google.co.jp

Tracing route to www.google.com [216.239.57.99]
over a maximum of 30 hops:

1 50 ms 60 ms 60 ms 192.168.1.1
2 50 ms 60 ms 60 ms 192.168.150.1
3 60 ms 60 ms 61 ms 1923168.191.13
4 51 ms 60 ms 60 ms 192.168.9.1
5 60 ms 60 ms 50 ms 192.168.11.2
6 60 ms 60 ms 60 ms 192.168.10.5
7 * * * Request timed out.
8 60 ms 60 ms 60 ms 220.254.0.2
9 60 ms 60 ms 61 ms 219.127.70.5
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 70 ms 60 ms 70 ms 158.205.250.201
14 60 ms 70 ms 70 ms bcr2-ge-6-3-0.Tokyo.cw.net [166.63.241.181]
15 170 ms 160 ms 171 ms acr1-as0.SantaClara.cw.net [208.172.147.73]
16 160 ms 171 ms 170 ms agr4-loopback.SantaClara.cw.net [208.172.146.104
]
17 170 ms 180 ms 170 ms dcr1-so-0-3-0.SantaClara.cw.net [208.172.156.13]

18 170 ms 170 ms 171 ms bhr1-pos-0-0.SantaClarasc5.cw.net [208.172.156.7
4]
19 160 ms 171 ms 170 ms csr21-ve243.SantaClarasc4.cw.net [216.34.3.11]
20 180 ms 180 ms 180 ms google-exodus.exodus.net [64.41.147.62]
21 * * * Request timed out.
22 180 ms 181 ms 180 ms 216.239.57.99

Trace complete.

さてこの結果ですが、最初の「192.168.*.*」の部分はプライベートアドレスですから、内部ネットワークを通過しています。「8 60 ms 60 ms 60 ms 220.254.0.2」の行からインターネットへ出ました。なお「* * * Request timed out.」と表示されている行は届かなかったという訳ではなく、ルータがICMPエコー(つまりpingやtracerouteに)返事を返さない設定になっていることを示します。これはセキュリティ上の問題から管理者の方針によって成されています。最後に「22 180 ms 181 ms 180 ms 216.239.57.99」とありますので、宛先のアドレスへは、22ホップで辿り着いたという事です。これはイコール宛先との間に21個のルータが存在する、という意味でもあります。なおインターネット上の経路は常に変化するので、同じ結果が返ってくるとは限りません。あしからず。

この「ping」と「traceroute/tracert」コマンドは、ネットワークの通信確認をするのに必須のツールです。障害時にはまずこれを試してみましょう。



TOPへ