特定のソースIPアドレスからpingを送りたいとき

人生で彼是5回くらいググっている気がするので写経しておく。

サーバに複数のネットワークインターフェースがついていたり、IPエイリアス(VIP)を付与していたりして、複数のIPアドレスを持っている場合、特定のIPアドレスをソースとしてpingを送りたい、というかICMP echo requestを送り付けたい場合とかがある。


そういうときはpingコマンドの"-I"オプションを使うとお手軽、と。

$ ping (ターゲットになるIPアドレス or ホスト名) -I (ソースとなるIPアドレス or インターフェース名)


実行すると、

$ ping 10.0.100.1 -I 10.0.101.200
PING 10.0.100.1 (10.0.100.1) from 10.0.101.200 : 56(84) bytes of data.
64 bytes from 10.0.100.1: icmp_seq=1 ttl=255 time=0.993 ms
64 bytes from 10.0.100.1: icmp_seq=2 ttl=255 time=0.832 ms

・・・・・

こんな感じで、fromのところが、ソースとして指定したIPアドレスになっていますね。
それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́

man

-I interface

interface is either an address, or an interface name. If interface is an address, it sets source address to specified interface address. If interface in an interface name, it sets source interface to specified interface. For ping6, when doing ping to a link-local scope address, link specification (by the '%'-notation in destination, or by this option) is required.