2008/06/11

もう一つのping … arping

コマンド/bin/pingは、通信確認用によく使われる。このコマンドは、IPのプロトコルの一つであるICMPのType 8、Echo Requestを対象ホストへ送信し、ICMP Type 0、Echo Replyが返ってくるかどうかを確認する(『ネットワークの疎通を確認するには?~ping/traceroute~』)
ただし、TCPやUDPで通信はできるのに、pingは失敗する、という場合もある。例えば、対象ホストでiptablesが働いていて、pingに応答しないよう設定されている場合などだ。Firewallなどのセキュリティ製品の場合、デフォルトでpingに応答しない場合もある。このような場合の代替手段の一つが、/usr/sbin/arpingだ。
このコマンドは、pingがICMPを利用する代わりに、ARPを利用する。ARPは、Ethernet環境において、IPアドレスからMACアドレスを得るために用いられるプロトコル。Echo Requestに応答しないよう設定されているホストでも、IPで通信する必要があれば、必ずARPには応答する。
# /usr/sbin/arping -I eth0.4001 192.168.56.192
ARPING 192.168.56.192 from 192.168.56.195 eth0.4001
Unicast reply from 192.168.56.192 [XX:XX:XX:XX:XX:XX] 0.703ms
Unicast reply from 192.168.56.192 [XX:XX:XX:XX:XX:XX] 0.672ms
Unicast reply from 192.168.56.192 [XX:XX:XX:XX:XX:XX] 0.983ms [CTRL]+[C]
Sent 3 probes (1 broadcast(s))
Received 3 response(s)
#
このコマンドを使用する場合の注意点は以下の通り。
  • root権限で実行しなければならない。
  • 同一セグメント内でしか使用できない(ARPの原理より明らか)
  • インターフェースが複数ある場合は、-I インターフェースで指定しなければならない(上の実行例参照)

0 件のコメント: