LoginSignup
21
19

More than 5 years have passed since last update.

pingを受け取ったかを確認する

Last updated at Posted at 2016-05-07

pingを打ってパケットが返ってくるのはわかるけど、このIPアドレスでいいんだっけ?というのを確かめたいので、送信先で確かめたい。
→送信先でtcpdumpを使えばおk。

Vagrantで立ち上げたUbuntuにpingを送る例で考える。

ゲストOSでifconfigでIPアドレスを調べる。

guest$ ifconfig
:
eth1      Link encap:Ethernet  HWaddr 08:00:27:29:40:3f
          inet addr:192.168.33.10  Bcast:192.168.33.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe29:403f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13041 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7831 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1019013 (1.0 MB)  TX bytes:628251 (628.2 KB)
:

192.168.33.10であることがわかる。

ホストOSでpingを打つ。

host$ ping 192.168.33.10
PING 192.168.33.10 (192.168.33.10): 56 data bytes
64 bytes from 192.168.33.10: icmp_seq=0 ttl=64 time=0.395 ms
:

ゲストOSでtcpdumpする。-iでインターフェースを指定しないとループバック(127.0.0.1)を除くもっとも小さい番号で有効になっているものが選ばれるので、なにも来てなかったらインターフェースを確認する。
引数にicmpを指定すると、pingのエコー要求とエコー応答が見られる。

guest$ sudo tcpdump -i eth1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:33:32.169761 IP 192.168.33.1 > 192.168.33.10: ICMP echo request, id 45906, seq 0, length 64
13:33:32.169808 IP 192.168.33.10 > 192.168.33.1: ICMP echo reply, id 45906, seq 0, length 64
:

ホストOSでtcpdumpすると、エコー応答が見られる

host$ sudo tcpdump icmp
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pktap, link-type PKTAP (Packet Tap), capture size 262144 bytes
22:38:35.319694 IP 192.168.33.10 > 192.168.33.1: ICMP echo reply, id 45906, seq 302, length 64
:

こちらもインターフェースを指定するとエコー要求が見られる(指定しない時は何を見ている?)。

host$ sudo tcpdump -i vboxnet0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vboxnet0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:42:30.216089 IP 192.168.33.1 > 192.168.33.10: ICMP echo request, id 45906, seq 536, length 64
22:42:30.216375 IP 192.168.33.10 > 192.168.33.1: ICMP echo reply, id 45906, seq 536, length 64
:

ちなみに応答だけ見たいときは

$ sudo tcpdump 'icmp[0] == 0'

要求だけ見たいときは

$ sudo tcpdump 'icmp[0] == 8'

とすることができる。orで指定することも可能。

$ sudo tcpdump  'icmp[0] == 0 or icmp[0] == 8'

tcpdumpgrepしてもなかなか表示されないので、-lオプションを使う。-lオプションをつけるとラインバッファになって、行ごとに出力してくれる。

$ sudo tcpdump -l | grep echo
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
14:03:51.093896 IP 192.168.33.1 > 192.168.33.10: ICMP echo request, id 45906, seq 1812, length 64
14:03:51.093935 IP 192.168.33.10 > 192.168.33.1: ICMP echo reply, id 45906, seq 1812, length 64
:

参考資料

21
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
19