bat/cmd

Pingコマンド オプション 備忘録

こんばんは、本日はネットワークエンジニアなら必ず使うコマンドPingコマンドのメモです。

pingコマンドで何が出来るかというと、接続したいコンピュータのIPアドレスまで通信が正常に接続できているかを可視化できるコマンドです。

pingのオプションの備忘録です。

Pingコマンド オプション

コマンドの打ち方は、ping ”IPアドレス” で飛ばします。

ping 192.168.1.1などでIPを指定し飛ばす事で疎通確認をします。デフォルトは32バイトのデータを4回飛ばし通信確認をします。ですが、pingコマンドのオプションを使用することにより沢山の使い道があります。

ping -t

ping -t コマンドは、中断されるまで、指定されたホストを Ping します。ネットワークが繋がらないなどのトラブル時にはPing -tで飛ばし続けます。

ping -t ”IPアドレス”

応答があれば通信確認が出来たという事なので重宝するコマンドです。

ずっとPingを飛ばし続ける為、止めたい時は「Ctrl」+「C」で終了します。


C:\Users\Administrator>ping -t www.google.co.jp
www.google.co.jp [216.58.221.163]に ping を送信しています 32 バイトのデータ:
216.58.221.163 からの応答: バイト数 =32 時間 =57ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =52ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =40ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =58ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =59ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =47ms TTL=51
・・・(ずっと飛ばし続けます)

あまり知られていませんがping -t の途中で「Ctrl」+「Break」で一旦中断し統計を取り,その後またPingを飛ばし続けます。

ping -n

ping -nは、送信するエコー要求の数を指定できます。

ping -n ”数値 ”IPアドレス”

-nオプションの後に数値を指定することでエコー要求数を指定できます。(オプションを使用しないpingコマンドのデフォルトは4回です。)

C:\Users\Administrator>ping -n 7 www.google.co.jp
www.google.co.jp [216.58.221.163]に ping を送信しています 32 バイトのデータ:
216.58.221.163 からの応答: バイト数 =32 時間 =76ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =59ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =49ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =62ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =47ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =65ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =51ms TTL=51
216.58.221.163 の ping 統計:
パケット数: 送信 = 7、受信 = 7、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 47ms、最大 = 76ms、平均 = 58ms

ping -a

ping -aはIPアドレスをホスト名に解決します。

ping -a ”IPアドレス”

アドレスからホスト名を調べたい場合に便利なコマンドです。つまりDNSの逆引きを利用したPing方法になります。

C:\Users\Administrator>ping -a 211.28.21.13
TEST-PC[216.58.221.163]に ping を送信しています 32 バイトのデータ:
211.28.21.13 からの応答: バイト数 =32 時間 =67ms TTL=51
211.28.21.13 からの応答: バイト数 =32 時間 =44ms TTL=51
211.28.21.13 からの応答: バイト数 =32 時間 =54ms TTL=51
211.28.21.13 からの応答: バイト数 =32 時間 =63ms TTL=51

2行目先頭のアドレスからTEST-PCというホスト名が解ります。

ping -w

Windowsのエコー応答待ち時間はデフォルト4秒ですが、-wオプションを使用する事で応答待ち時間を変更する事が出来ます。

ping -w ”数” ”IPアドレス”


C:\Users\Administrator>ping -w 7 216.58.221.163
216.58.221.163 に ping を送信しています 32 バイトのデータ:
216.58.221.163 からの応答: バイト数 =32 時間 =64ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =40ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =49ms TTL=51
216.58.221.163 からの応答: バイト数 =32 時間 =58ms TTL=51
216.58.221.163 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 40ms、最大 = 64ms、平均 = 52msPing

Ping -l

フラグメントを指定します。デフォルトのPingは32バイトのパケットサイズを送信しますが-l オプションで任意のサイズを指定できます。

ping -l “パケットサイズ” ”IPアドレス”

パケットサイズを指定し下記のようにデータを飛ばします。

C:\Users\Administrator>ping -l 3000 192.168.179.1
192.168.179.1 に ping を送信しています 2000 バイトのデータ:
192.168.179.1 からの応答: バイト数 =2000 時間 =1ms TTL=64
192.168.179.1 からの応答: バイト数 =2000 時間 =1ms TTL=64
192.168.179.1 からの応答: バイト数 =2000 時間 =1msTTL=64
192.168.179.1 からの応答: バイト数 =2000 時間 =1msTTL=64

192.168.179.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 1ms、最大 = 1ms、平均 = 1ms

実際には3000バイトのパケットはMTUサイズを超えているのですが、フラグメント(断片化)してデータを飛ばしています。

ping -f

ping -fはフラグメント禁止コマンドです。

パケット内の Don’t Fragment フラグを設定します (IPv4 のみ)

ping -f ”IPアドレス”

-f」オプションを使用すると、IPヘッダのDon’t Fragment(DF)ビットにをセットしてパケットを送信します。

C:\Users\Administrator>ping -f 192.168.179.1
192.168.179.1 に ping を送信しています 32 バイトのデータ:
192.168.179.1 からの応答: バイト数 =32 時間 =2ms TTL=64
192.168.179.1 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.179.1 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.179.1 からの応答: バイト数 =32 時間 =1ms TTL=64

192.168.179.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 1ms、最大 = 2ms、平均 = 1ms

このコマンドだけだと、オプション無しのpingと結果が変わりません。次に紹介する -f オプション-l オプション と組み合わせることで効果を発揮します。

ping -f -l

オプションの -f-l を組み合わせてみましょう。

  • ping -l はパケットサイズを指定するコマンド
  • ping -f はフラグメント禁止するコマンド

この2つのオプションを組み合わせることでパケットサイズを指定しつつフラグメント(断片化)禁止でデータを飛ばします。

下記だとMTU値を超えた3000バイトを断片化せずにデータ送信しているため、受信ができず損失がすべて失敗しています。

C:\Users\Administrator>ping 192.168.179.1 -f -l 3000
192.168.179.1 に ping を送信しています 3000 バイトのデータ:
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。

192.168.179.1 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

Pocket Wi-fiやお使いのプロバイダ回線にによって送信できるパケットサイズに制限があります。下記のようにテストをするとパケット最大サイズが解ります。

同ネットワーク内のPCに1400バイトのデータをフラグメント禁止で送信した場合

C:\Users\Administrator>ping 192.168.179.1 -f -l 1400
192.168.179.1 に ping を送信しています 1400 バイトのデータ:
192.168.179.1 からの応答: バイト数 =1400 時間 =1ms TTL=64
192.168.179.1 からの応答: バイト数 =1400 時間 =2ms TTL=64
192.168.179.1 からの応答: バイト数 =1400 時間 =1ms TTL=64
192.168.179.1 からの応答: バイト数 =1400 時間 =1ms TTL=64

192.168.179.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 1ms、最大 = 2ms、平均 = 1ms

問題なく送受信ができました。

google宛てに1400バイトのデータをフラグメント禁止で送信した場合

C:\Users\Administrator>ping www.google.co.jp -f -l 1400
www.google.co.jp [216.58.199.227]に ping を送信しています 1400 バイトのデータ:
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。

216.58.199.227 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)

プロバイダ回線や網によって送信できるパケットサイズに制限がありパケット最大値が解ります。ビジネスイーサワイド、光フレッツ、Wi-Maxなどでテストしてみると各回線で最大パケットサイズが異なる事も解ります。

Pingコマンド1つを見ても様々なオプションがあります。色々なオプションを使いPingマスター目指します。それではー!

良ければ過去記事も見てみてください↓

ABOUT ME
なお
フルスタックエンジニアを目指すサラリーマン。インフラ、WEBを中心に色んなIT関連情報に手を出したいと思います。
ブログランキング

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA