カテゴリー
2025年 Linux LPIC Ubuntu トラブルシューティング 技術一般 管理

複数の宛先に ping を打つことができる「fping」


にほんブログ村

Windows には「Exping」という便利なツールがあるのですが、ExpingはLinuxでは使えません。でも、Linuxには「fping」があります。今回は、「fping」の使い方をまとめてみました。

fping のインストール

「apt install」でインストールできます。

$ sudo apt update
$ sudo apt install fping

ping の使い方

基本的な使い方は、1つの宛先に対して ICMP Echo Request を送ります。通常の ping と同じです。

ICMP Echo Reply が返ってこれば「xxxx is alive」、返ってこなければ「xxx is unreachable」と表示されます。

KKIntt@jackson:~$ fping 172.16.26.1
172.16.26.1 is alive
KKInt@jackson:~$ fping 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
172.16.26.5 is unreachable

もちろん、IPアドレスだけでなく、ホスト名を指定することもできます。

KKInt@jackson:~$ fping www.yahoo.co.jp
www.yahoo.co.jp is alive

宛先の複数指定

単純に、ICMP Echo Request を送信したい宛先を並べて指定します。

KKInt@jackson:~$ fping 172.16.26.1 172.16.26.2 172.16.26.4
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive

範囲を指定しての宛先指定

-g オプションを使うことで、指定した範囲の IPアドレスに対して ICMP Echo Request を送信することが出来ます。

以下の例では、172.16.26.1から172.16.26.5までを範囲として指定しています。そのうち、4オクテッド目が3と5のIPアドレスからはICMP Echo Reply が返ってていません。

KKInt@jackson:~$ fping -g 172.16.26.1 172.16.26.5
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
172.16.26.3 is unreachable
172.16.26.5 is unreachable

サブネットマスクを指定しての宛先指定

-g オプションを使用すると、サブネットマスク単位で ICMP Echo Request を送信する範囲を指定することも出来ます。

「172.16.26.0/29」を指定する場合は、以下のように指定します。

最初の 172.16.26.0 はネットワークアドレス、最後の172.16.26.7 はブロードキャストアドレスになるため、「172.16.26.0/29」の場合、172.16.26.1 – 172.16.26.6 がPing の対象となります。

KKInt@jackson:~$ fping -g 172.16.26.0/29
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.6
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.6
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.6
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.6
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.5
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.3
172.16.26.3 is unreachable
172.16.26.5 is unreachable
172.16.26.6 is unreachable
kanta@jackson:~$ 

ファイルから読み込んで範囲指定

-f オプションを使用すると、ファイル読み込んでfpingを実行することが出来ます。

まず、ping-list というファイルを作成し、 以下のように宛先IPアドレスを記述しました。

KKInt@jackson:~$ cat ping-list 
172.16.26.1
172.16.26.2
172.16.26.4
172.16.26.7
172.16.26.8

-f オプションで対象のファイルを読み込んで fping を実行することで、ファイルに記載されている宛先 IPアドレスに対して ICMP Echo Request を送信することが出来ます。

KKInt@jackson:~$ fping -f ping-list
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive
172.16.26.7 is alive
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
172.16.26.8 is unreachable

結局はLinux上での操作ですので、ファイルの読み込ませ方は、いろいろできます。

「<」でファイルを fping に渡せますし、

$ fping < ping_list.txt 

cat で表示させたファイルの内容を fping に渡すことも可能です。

$ cat ping_list.txt | fping

送信回数指定

-c オプションを使用すると、ICMP Echo Request を送信する回数を指定することが出来ます。

3回送信したい場合は、以下のように実行します。

KKInt@jackson:~$ fping -c3 172.16.26.1
172.16.26.1 : [0], 64 bytes, 0.203 ms (0.203 avg, 0% loss)
172.16.26.1 : [1], 64 bytes, 0.234 ms (0.218 avg, 0% loss)
172.16.26.1 : [2], 64 bytes, 0.150 ms (0.195 avg, 0% loss)

172.16.26.1 : xmt/rcv/%loss = 3/3/0%, min/avg/max = 0.150/0.195/0.234

送信し続ける

ICMP Echo Request を送信し続けたい場合は -l オプションを使用します。

「Ctrl + C」で、Echo Request の送信を停止することができます。

KKInt@jackson:~$ fping -l 172.16.26.1
172.16.26.1 : [0], 64 bytes, 0.226 ms (0.226 avg, 0% loss)
172.16.26.1 : [1], 64 bytes, 0.132 ms (0.179 avg, 0% loss)
172.16.26.1 : [2], 64 bytes, 0.125 ms (0.161 avg, 0% loss)
172.16.26.1 : [3], 64 bytes, 0.195 ms (0.169 avg, 0% loss)
172.16.26.1 : [4], 64 bytes, 0.205 ms (0.176 avg, 0% loss)
172.16.26.1 : [5], 64 bytes, 0.223 ms (0.184 avg, 0% loss)
^C <<< Ctl + c で終了
172.16.26.1 : xmt/rcv/%loss = 6/6/0%, min/avg/max = 0.125/0.184/0.226

送信間隔(ミリ秒)

-i オプションを使用すると、ICMP Echo Request を送信する間隔を指定することが出来ます。

指定する時間の単位はミリ秒なので、3秒間隔ならば「3000」と指定します。

KKInt@jackson:~$ fping -c3 -i 3000 172.16.26.1
172.16.26.1 : [0], 64 bytes, 0.185 ms (0.185 avg, 0% loss)
172.16.26.1 : [1], 64 bytes, 0.138 ms (0.162 avg, 0% loss)
172.16.26.1 : [2], 64 bytes, 0.186 ms (0.170 avg, 0% loss)

172.16.26.1 : xmt/rcv/%loss = 3/3/0%, min/avg/max = 0.138/0.170/0.186

ICMP Host Unreachableを表示させたくない

ICMP Echo Request が失敗した際に表示される「ICMP Host Unreachable 〜」というメッセージを表示させたくない場合の方法です。

「ICMP Host Unreachable 〜」は標準エラー出力なので、「2>」を指定してエラー出力を /dev/null に送ることで、メッセージの表示を抑えることができます。

KKInt@jackson:~$ fping -f ping-list 2> /dev/null 
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive
172.16.26.7 is alive
172.16.26.8 is unreachable

alive なホストのみ表示

-a オプションを使用すると、ICMP Echo Replyを返す(Alive)ホストのみを表示することができます。

以下の例では「ICMP Host Unreachable 〜」のメッセージを/dev/null に送って表示させないようにしています。

KKInt@jackson:~$ fping -a  -f ping-list 2> /dev/null 
172.16.26.1
172.16.26.2
172.16.26.4
172.16.26.7

-a オプションを使わなくても、以下のように grep で抽出することもできます。

KKInt@jackson:~$ fping -f ping-list 2> /dev/null | grep alive
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive
172.16.26.7 is alive

unreachable だけ表示

-u オプションを使用すると、ICMP Echo Reply を返さないホスト(unreachable)のみを表示することができます。

KKInt@jackson:~$ fping -u -f ping-list 2> /dev/null 
172.16.26.8

unreachable のメッセージも合わせて表示させたい場合は、fping の結果を grepに渡すことで unreachable のみ表示させることもできますね。

KKInt@jackson:~$ fping -f ping-list 2> /dev/null | grep unreachable
172.16.26.8 is unreachable

統計情報表示

-s オプションを使用すると、実行結果の統計情報を表示します。

KKInt@jackson:~$ fping -f ping-list -s
172.16.26.1 is alive
172.16.26.2 is alive
172.16.26.4 is alive
172.16.26.7 is alive
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
ICMP Host Unreachable from 172.16.26.11 for ICMP Echo sent to 172.16.26.8
172.16.26.8 is unreachable

       5 targets
       4 alive
       1 unreachable
       0 unknown addresses

       4 timeouts (waiting for response)
       8 ICMP Echos sent
       4 ICMP Echo Replies received
       4 other ICMP received

 0.207 ms (min round trip time)
 0.229 ms (avg round trip time)
 0.249 ms (max round trip time)
        4.107 sec (elapsed real time)

関連するブログ:

最近の人気ブログ TOP 10:

最近の記事:

カテゴリー
2022年 Azure Microsoft MS Azure Administrator MS Azure Fundamentals クラウド コンピューター 技術一般 管理 認定資格

MS Azure を学ぶ (1) リソースグループの作成と管理

Azure Administrator (AZ-104)に合格しましたので、覚えた内容を忘れないように、これから少しずつアウトプットしていきたいと思います。


にほんブログ村

リソースグループとは

リソースグループとは、Azure上のストレージや仮想マシンなどといったリソースを入れる箱のようなものです。各リソースをまとめて管理できます。

Learn Microsoft の画面

AWSなどでも同じような機能はありますが、必須になってはいませんが、Azureでは、各リソースは必ずどれかのリソースグループに所属する必要があり、必須となっています。

このリソースグループは便利な機能で、例えば各リソースにタグを付けたい場合、リソースグループにタグをつければ、そのリソースグループ内のリソースにも同じタグを付けられますし、リソースグループを削除すれば、そ子に所属している全てのリソースも一斉に削除することもできます。

リソースグループの作成

まず、リソースグループを作成してみましょう。

管理画面トップのテキストボックスに「リソースグループ」と入力して検索します。

メニューに「リソースグループ」が見えました。これをクリックします。

リソースグループの管理画面が開きます。

「作成」をクリックして、リソースグループを新規作成します。

リソースグループの作成画面が開きます。

設定する項目は、以下の3つがあります。

  • サブスクリプション:自分のサブスクリプションを選択
  • リソースグループ:今回作成するリソースグループの名前を入力
  • リージョン:リソースグループを配置するリージョンを選択

サブスクリプションは、課金が発生した際に支払いを行うサブスクリプションを選択します。

リソースグループの名前の注意点ですが、同じ名前のリソースグループは作成できません。以下のようにエラーになります。

リージョンですが、リソースグループに関しては意味はないです。実際にリソースグループの中に入れる各リソースの方は、必ずしもリソースグループと同じリージョンである必要はありません。このリージョンの項目は、単に管理目的となります。

各項目の選択と入力が完了したら、「作成」をクリックします。

リソースグループの一覧に、先ほど作成したリソースグループの名前が表示されましたね。これでリソースグループの作成は完了です。

リソースグループの削除

不要になったリソースグループは削除ができます。

削除したいリソースグループ名をクリックします。

対象リソースグループの管理画面が開きます。

「リソースグループの削除」をクリックします。

削除対象のリソースグループ名を、ここで再度入力します。

削除しようとしているリソースグループが本当に正しいのかを確認するためです。

正しければ、「削除」をクリックします。

リソースグループの一覧から、削除したリソースグループ名が見なくなりました。削除完了です。

このリソースグループの削除で非常に重要なのは、リソースグループを削除すると、そのリソースグループに属している各リソース全てが削除されるという点です。これは非常に便利である反面、非常に危険でもあります。運用稼働中のリソースであっても簡単に削除できてしまうのです。それを回避する機能がロックです。

リソースグループのロック

繰り返しになりますが、リソースグループは、使用する各リソースが入る箱のようなものというお話をしました。リソースグループに所属している各リソースですが、リソースグループを削除すると、その中の全ても削除されてしまいます。

せっかく苦労して作成したシステムも、簡単に削除されてしまいます。

これを避けるために、ロック機能が用意されています。

使用できるロックは2種類となります。

  • 読み取り専用ロック:削除も変更もできなくなります。
  • 削除ロック:削除のみをできなくし、変更は許可します。

まとめると、以下のようになります。

ロックの種類変更削除
読み取り専用ロック  X    X  
削除ロック  ○   X  

では実際に、ロック機能を適用してみましょう。

先ほど作成したリソースグループ名をクリックします。

対象リソースグループの管理画面が開きます。

メニューの中から「ロック」をクリックします。

ロックの管理画面が開きます。

「追加」をクリックします。

ロックの種類のプルダウンメニューを開くと、「読み取り専用」と「削除」の2つがあるのが見えますね。

今回は、「削除」ロックを設定してみます。

ロック名は必須です。今回は「delet-lock」とします。

メモはオプションですが、このロックの内容ですとか目的などを入れておくと、後からの管理で便利になります。

「OK」をクリックして、削除ロックを適用します。

作成した削除ロックが適用されたのが分かりますね。

今回適用したのは削除ロックです。リソースグループの削除ができなくなります。それでは試してみましょう。

対象となるリソースグループの名前をクリックし、「リソースグループの削除」をクリックしてみます。

削除対象となるリソースグループの名前を入力し、「削除」をクリックしてみます。

「削除に失敗しました」のメッセージが表示されましたね。削除できなくなっています。

では今度は、削除ロックを解除してみましょう。

対象となるロック名の「削除」をクリックします。

削除が完了し、ロック名が消えました。

それでは、再度、リソースグループを削除してみましょう。

対象となるリソースグループ名をクリックし、「リソースグループの削除」をクリックします。

削除対象となるリソースグループ名を入力し、「削除」をクリックします。

リソースグループの削除が始まりました。

「削除しました」のメッセージが表示されました。

リソースグループの一覧を表示してみましょう。先ほど削除処理したリソースグループ名は見えなくなりました。削除されていますね。

関連する記事:

最近の人気ブログ TOP 10:

最近の記事: