web-dev-qa-db-ja.com

arpリクエストの原因となっているプロセスを見つける方法は?

ゲートウェイでtcpdumpを実行すると、ゲートウェイ自体から大量のarp要求が送信されます。なぜこれが起こるのか知りたい。これらのarpリクエストの原因となるプロセスを見つけるにはどうすればよいですか?

$ tcpdump -n arp 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:51:03.662114 ARP, Request who-has 211.123.123.251 tell 211.123.123.242, length 28
16:51:03.954113 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:04.002111 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:04.518111 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:04.954113 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:05.002110 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:05.518110 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:06.002112 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:06.210111 ARP, Request who-has 211.123.123.252 tell 211.123.123.242, length 28
16:51:06.518114 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:07.114111 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:07.210111 ARP, Request who-has 211.123.123.252 tell 211.123.123.242, length 28
16:51:07.314112 ARP, Request who-has 211.123.123.249 tell 211.123.123.242, length 28

以下は、ゲート構成です。

$ ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 6c:f0:49:a8:05:4c brd ff:ff:ff:ff:ff:ff
    inet 211.123.123.242/28 brd 211.123.123.255 scope global eth0
    inet6 fe80::6ef0:49ff:fea8:54c/64 scope link 
       valid_lft forever preferred_lft forever

このサブネットでは、211.123.123.242(ゲートウェイIP)のみが使用可能で、他のIP(211.123.123.246など)は使用できません。

更新:

これらの利用できないIPへのトラフィックを確認できます。これがこれらのARPの理由だと思います。これらのトラフィックが発生する理由はまだわかりませんが。おそらくispプロバイダーの設定ミスです。

$ tcpdump Host 211.103.252.245
23:50:11.414705 IP 59.34.131.5.7099 > 211.123.123.245.17701: Flags [S.], seq 3745049197, ack 1625918577, win 8760, options [mss 1460], length 0
23:50:12.991258 IP 75.126.1.222.80 > 211.123.123.245.1078: Flags [S.], seq 651817046, ack 152032452, win 17473, length 0
7
Ping Yin

DHCPサーバーを実行している場合、この動作は非常に一般的です。サーバーは、リース範囲内のアドレスをプローブして、空いているアドレスを確認します。 ARPを使用してネットワークで使用されているアドレスを追跡する他のネットワーク監視ソリューションもあります。

私が知る限り、UNIXのようなシステムには、どのプログラムがarp要求を開始するかを確認するシステムはありません。 strace/ktrace/dtraceを使用してシステムコールを見つけることができます。

結局、あまり心配する必要はありません。大量のARPパケットが問題を引き起こす可能性がありますが、それが1000ppsの範囲に入った場合のみです。 1秒あたりの数パケットは心配する必要はありません。

8
pehrs

ルータでのARP要求は予想される動作です。 ARP要求が使用されるため、ルーターは特定のルートのネットワーク上のネクストホップアドレスを認識します。その基本的な仕事は、IPアドレスをMACアドレスにマッピングすることです。

上記で提供したサンプルから、それが過度にARPしているようには見えません。

6
emtunc

ARPパケットがLinuxボックスから発信されている場合は、-pid-owner XXXオプションを使用して大量のiptablesルールを生成してみることができます(パケットを作成するプロセスのpidがXXXの場合に一致します。広い範囲をカバーする必要があります。 pid番号)。実際にパケットを送信するプロセスが、他の何かの短期間発生しないことを願っています。

または、(はるかに少ない)--uid-owner XXXオプションを使用して、パケットを送信したプロセスの所有者のuidを見つけることもできます。

接線上で、211.123.123.242がゲートウェイであり、このネットワークからのさまざまなIPに対応するMACアドレスを検索する場合、ネットワークの外部から配信するパケットが含まれている可能性があります。存在しないアドレスと通信しようとする人と理由は、ゲートウェイボックスでARP要求の発信者を探すよりも、実際に調査するほうが興味深い場合があります。

4
Paweł Brodacki

ARP要求は正常です。このプロトコルは、MACを備えた一部のマシンの場所を知るために使用されます。その後、ARPを介してIPが構築されます。 ARPはARPモジュールとしてカーネルに組み込まれています。 this および this を確認します

1
MealstroM