【Linux】【Windows】ping / tracert (traceroute)

 ■ はじめに

https://dk521123.hatenablog.com/entry/2022/05/03/000000

で、ICMPを行ったが、今回は、
ICMPメッセージを利用した利用価値の高いコマンドについて扱う

【1】ping : 接続状況を調べる
【2】tracert(traceroute) : 宛先までの経路を調べる

 【1】ping

 * ネットワークの疎通を確認する

 => 特定のコンピュータがネットワーク上に存在しているかどうかを調べて、
  存在しているなら、その通信状況などを表示するコマンド

 * 本来「ピン」と読むが、日本では「ピング」と読むのが一般的

原理

* ICMP(Internet Control Message Protocol)ECHOメッセージを送信し、
   相手ホストからのICMP ECHO REPLYメッセージを受け取る事により実現している

結果から分かる事

 * 対象ホストとのネットワーク疎通が正常であること
 * ネットワーク性能の推測

使いどころ

* Webページが表示できない時などに試してみるといい。

 構文

# 基本形
ping 疎通確認対象先ホスト(ホスト名またはIPアドレス)

# パケットの送受信を無限に繰り返す
ping -t 疎通確認対象先ホスト(ホスト名またはIPアドレス)

トラブルシューティング

 応答が返ってこない原因を考える
 * ファイアウォールで引っかかっている
 →可能であれば、ファイアフォールをオフにして試してみる
 →nmap等のコマンドでポートが開いているか調べる
 * 物理的な原因(例えば、LANの線が抜けている等)
 * 通信相手がダウンしている
 * 経路途中にあるいずれかのルーターがパケットを正しく中継していない
 * 経路途中のルーターでpingパケットの送受信を禁止している

参考文献

Windows/Linuxでのオプションなどを記載
http://www.atmarkit.co.jp/fnetwork/netcom/ping/ping.html
Windowspingコマンドでネットワークトラブルの原因を調査する
http://www.atmarkit.co.jp/ait/articles/0012/01/news002.html

 【2】tracert (UNIX系は、traceroute)

 * 宛先までの経路を調べる

 追跡の仕組み

 例 : 宛先までに2つのルータを経由する経路を考える

 (1) 経由地の数は、IPヘッダの「生存時間(※)」という項目に書き込まれる。
     この数を「1」として、宛先まで送る
   => 「宛先まで届かなかった」というレスポンスが届く
 (2) IPヘッダの「生存時間」を「2」として、宛先まで送る
   => 「宛先まで届かなかった」というレスポンスが届く
 (3) IPヘッダの「生存時間」を「3」として、宛先まで送る
   => 「宛先まで届いた」というレスポンスが届く

 つまり、生存時間を1から徐々に増やしていき、経路を把握する

※ 生存時間(Time to Live、TTL

   => IPヘッダにある8ビットの項目で「通過できるルータの数」を表す
   => 「時間」って言ってるけど、そうじゃないらしい。

 【3】注意

* ICMPメッセージを使用するので、
 経路途中にICMPのやり取りを禁止している機器があると
 経過が表示されない

 参考文献

 * いいサイト。勉強になる。
 + nmap/tcpdumpはWindowsの場合、インストールしないとダメ

http://blog.asial.co.jp/816

* 動画(英語)

https://www.youtube.com/watch?v=AimCNTzDlVo

関連記事

ICMP(Internet Control Message Protocol)
https://dk521123.hatenablog.com/entry/2022/05/03/000000