连接问题 – ARP,MAC和IP

我试图诊断一些连接问题,昨天晚上,当我build立新的基于PC的路由器。

一段时间以来,一切正常,但突然之间,我发现我无法ping通新电脑,也无法ping通其他电脑。 最后,我把wireshark放在我的机器上收集起来,并从新的PC上ping出那台机器。 我看到ping请求到达我的机器,并发送响应,但是我仍然没有看到新的PC上。 (正在运行pfSense的embedded式版本 – 一个FreeBSD发行版)

回想一下我能看到的唯一可能性,就是这个事实是我一直在给新的PC提供与我们现有路由器相同的IP地址(192.168.1.1),并为旧路由器分配另一个IP地址(192.168.1.42 )。 我结束了这么多次,从来没有重新启动我的主电脑,所以我想知道如果ARP表弄得混乱了。

那么,IP地址匹配的数据包会发生什么情况,但MAC地址不会(或者相反)呢? 他们只是被忽略了吗?

还有,还有更多的诊断工具或方法可以使用吗? (除了再次开启和closures不同的东西…)

你所描述的是:

  • 路由器知道在二层networking上为了发送ping请求而在哪里寻址你的PC,所以它的ARPcaching被认为是正确的。
  • 但是您的PC不知道在哪里寻址路由器以发送ping响应 – 所以它的ARPcaching可能不正确。

前两个很明显的要排除的是:

  1. 您的旧路由器不会尝试启动IP地址192.168.1.1
  2. 当新的路由器进入时,它不会对ping请求(ICMP回显)进行防火墙。

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

  1. 记下你的PC和新路由器的正确MAC地址是什么。 您可以从ifconfigipconfig (取决于操作系统)获取此信息。
  2. 仔细检查每个设备上的ARP条目。 您可以使用arp -aarp -an查看ARPcaching中的当前条目以跳过名称parsing。
  3. 如果一台机器的ARPcaching与另一台机器的MAC地址不一致,反之亦然,请尝试使用arp -d <ip>其删除。 如果它回来了相同的地址,那么也许你有一个在networking上的stream氓机器。

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