连接问题 - ARP、MAC 和 IP

连接问题 - ARP、MAC 和 IP

我正在尝试诊断昨晚设置新的基于 PC 的路由器时遇到的一些连接问题。

有一段时间一切都运行正常,但后来我突然发现无法 ping 新 PC,也无法从该 PC ping 其他机器。最后,我在我的机器上设置了 wireshark 进行收集,并从新 PC ping 该机器。我看到 ping 请求到达我的机器并发送了响应,但在新 PC 上仍然看不到任何东西。(它运行的是嵌入式版本的 pfSense - FreeBSD 发行版)

回想起来,我唯一能想到的可能性是,这与我一直为新 PC 分配与现有路由器相同的 IP 地址 (192.168.1.1) 以及为旧路由器分配另一个 IP 地址 (192.168.1.42) 有关。我最终这样做了几次,但从未重新启动过主 PC,所以我想知道 ARP 表是否以某种方式被弄乱了。

那么,如果数据包的 IP 地址匹配,但 MAC 地址不匹配(或相反),该怎么办?它们会被忽略吗?

此外,还有其他诊断工具或方法我可以使用吗?(除了再次打开和关闭不同的东西......)

答案1

您所描述的情况表明:

  • 路由器知道在 L2 网络上您的 PC 的寻址位置以便发送 ping 请求 - 因此它的 ARP 缓存被认为是正确的。
  • 但是您的 PC 不知道该向路由器寻址以便发送 ping 响应 - 因此它的 ARP 缓存可能不正确。

首先要排除的两个明显问题是:

  1. 您的旧路由器没有继续尝试调出 IP 地址 192.168.1.1
  2. 当您的新路由器收到 ping 请求(ICMP 回显)时,它不会对其进行防火墙保护。

假设不是这两件事,那么您可以继续检查 ARP 条目是否正确。请记住,除非您使用静态 ARP 条目(我假设您没有使用静态 ARP 条目),否则它们会根据需要动态存储,并在一段时间后过期。这意味着它们不会在重新启动或长时间内持续存在。因此,如果您的旧路由器肯定不再使用旧 IP 地址,那么它不应该是问题的原因。

  1. 记下您的 PC 和新路由器的正确 MAC 地址。您可以从ifconfig或获得此信息ipconfig(取决于操作系统)。
  2. 对照每个设备上的 ARP 条目仔细检查。您可以使用arp -a或查看 ARP 缓存中的当前条目以arp -an跳过名称解析。
  3. 如果一台机器的 ARP 缓存与另一台机器的 MAC 地址不一致,反之亦然,则尝试使用 删除它arp -d <ip>。如果返回相同的地址,那么网络上可能确实有一台恶意机器。

顺便说一句,您还可以确保 Wireshark 捕获的请求和响应中显示的 MAC 地址与您从机器接口记录的 MAC 地址相匹配。

相关内容