事象の発生
最近、社内ネットワーク上のあるサーバーにアクセスできないという奇妙な問題に直面しました。ローカルサーバーにはpingできるものの、ネットワーク経由で接続しようとするとどうしても繋がりません。さらに奇妙なことに、ネットワークアダプタを再起動すると一時的にサーバーにアクセスできるようになるのですが、その状態は長続きせず、すぐにまた同じ問題が発生します。
最初はサーバーに何らかの問題があるのではないかと思いましたが、社内ネットワークの転送は正常に動作しており、PCを再起動しても何の改善もありませんでした。
分析
基本的なトラブルシューティングを試した後、さらに深く原因を探ることにしました。これはネットワークの問題ではないかと疑い始め、診断を進めるためにARPキャッシュをクリアすることにしました。
arp -d
このコマンドはARPキャッシュのすべてのエントリをクリアします。このコマンドを実行した後、突然サーバーに一時的に接続できるようになりました。これは重要な手がかりです。この問題はARPアドレス解決と関係がある可能性があります。
ARP(アドレス解決プロトコル)は、ネットワーク層のIPアドレスをリンク層の物理アドレス(MACアドレス)に変換するための重要なネットワークプロトコルです。ARPキャッシュに問題があると、物理的な接続に問題がなくても、デバイス間の通信が影響を受けることがあります。
そこで、Wiresharkを使用してパケットキャプチャを行いました。
2522 40.288508 SichuanA_c8:71:a8 Chongqin_a6:16:53 ARP 42 192.168.1.203 is at 40:24:b2:c8:71:a8
2521 40.283279 Chongqin_a6:16:53 SichuanA_c8:71:a8 ARP 42 Who has 192.168.1.203? Tell 192.168.1.187
2416 33.707043 TP-Link_93:3a:90 Broadcast ARP 42 Who has 192.168.1.179? Tell 192.168.1.1
2415 33.290589 SichuanA_c8:71:a8 Chongqin_a6:16:53 ARP 42 192.168.1.203 is at 40:24:b2:c8:71:a8
2414 33.286865 Chongqin_a6:16:53 SichuanA_c8:71:a8 ARP 42 Who has 192.168.1.203? Tell 192.168.1.187
2410 32.666726 TP-Link_93:3a:90 Broadcast ARP 42 Who has 192.168.1.179? Tell 192.168.1.1
2406 31.745045 TP-Link_93:3a:90 Broadcast ARP 42 Who has 192.168.1.179? Tell 192.168.1.1
2361 29.082620 TP-Link_93:3a:90 Broadcast ARP 42 Who has 192.168.1.179? Tell 192.168.1.1
2356 28.319732 Chongqin_a6:16:53 SichuanA_c8:71:a8 ARP 42 192.168.1.187 is at b4:b5:b6:a6:16:53 (duplicate use of 192.168.1.203 detected!)
2355 28.319710 SichuanA_c8:71:a8 Chongqin_a6:16:53 ARP 42 Who has 192.168.1.187? Tell 192.168.1.203 (duplicate use of 192.168.1.203 detected!)
2352 28.058744 TP-Link_93:3a:90 Broadcast ARP 42 Who has 192.168.1.179? Tell 192.168.1.1
2174 27.034509 TP-Link_93:3a:90 Broadcast ARP 42 Who has 192.168.1.179? Tell 192.168.1.1
791 17.693940 Chongqin_a6:16:53 TP-Link_93:3a:90 ARP 42 192.168.1.187 is at b4:b5:b6:a6:16:53
790 17.693907 TP-Link_93:3a:90 Chongqin_a6:16:53 ARP 42 Who has 192.168.1.187? Tell 192.168.1.1
35 3.073782 Chongqin_a6:16:53 12:5c:4c:7a:38:db ARP 42 192.168.1.187 is at b4:b5:b6:a6:16:53
34 3.073760 12:5c:4c:7a:38:db Chongqin_a6:16:53 ARP 60 Who has 192.168.1.187? Tell 192.168.1.203
16 1.328884 TP-Link_93:3a:90 Chongqin_a6:16:53 ARP 42 192.168.1.1 is at 00:5f:67:93:3a:90
15 1.326707 Chongqin_a6:16:53 Broadcast ARP 42 Who has 192.168.1.1? Tell 192.168.1.187
重要な点はduplicate use of 192.168.1.203 detected
、つまりIPアドレスの競合が発生しています。ARPキャッシュが誤った情報で汚染されたため、ネットワークアダプタがサーバーへの正しい経路を見つけられなくなっています。ネットワークアダプタの再起動やARPキャッシュのクリアを行うと、これらの情報が一時的にリフレッシュされ、短期的な接続が可能になります。
明らかに異常な2台のデバイスが見つかりました。調査の結果、192.168.1.185のデバイスはDHCPを使用せず、サーバーと競合する固定IPを使用していたため、この問題が発生していたのです。これにより問題が無事解決。