ICMPリクエストは、サーバーが現在オンラインかどうかを確認するためによく使用されます。ノードの可用性の確認は、IPアドレスを指定してpingコマンドを使用して行われます。
ping xx.123.xx.123
Exchange of packets from xx.123.xx.123 to 32 bytes of data:
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64
この時点で、リモートサーバーが応答を送信しており、コマンドの出力からそのサーバーが利用可能であることがわかります。
この場合、リモートサーバーにはログにイベントデータは記録されません。しかし、ICMPリクエストを送信している相手を特定したい場合は、 tcpdump ユーティリティを使用します。
1. tcpdumpのインストール
apt update
apt install tcpdump
2. ネットワークインターフェースの確認
apt install net-tools
ifconfig
このコマンドはすべてのネットワークインターフェースを表示し、パケットをリッスンするインターフェースを選択します。この例では enp3s0 を選びます。
tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n
listening on enp3s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:52:20.352600 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 57, length 40
21:52:21.360715 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 58, length 40
ファイルに書き込むには、次のコマンドを使用します。
tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n >> /var/log/ping.log
このコマンドは、ICMPプロトコルを使用してこのホストにアクセスしたすべてのIPアドレスをファイルに記録します。
このコマンドを常に有効にしておくことはお勧めしません。ハードウェアリソースを消費するためです。この例はデバッグ目的で使用することを想定しています。
No Comments Yet