如果网络上的主机接收到一个具有与该源IP的本地ARP表中的MAC地址不同的MAC源地址的IP数据包,会发生什么情况。
该IP的ARP表条目曾经并将通过有效的ARP响应来填充。
显然,在这种情况下,linux主机不会仅仅发送应答包(ICMP回送响应或TCP /ACK ...etc)。
我认为接收主机只是获取源IP,并试图在其本地表中找到相应的MAC地址。
首先,非常感谢到目前为止的答案,但它们只涉及ARP数据包和表处理。这并没有回答我的问题,所以我认为我必须清理一下这个场景:

如果主机Hb向10.2.0.5 (主机Ha)发送ping请求,则Ha接收具有源IP 10.1.0.3的ICMP分组,并且源MAC地址是路由器的MAC地址。但是主机Ha的ARP表有一个条目: 10.1.0.3 -> Hb MAC地址。因此,MAC地址不同!
现在我注意到主机Ha只是不发送回复包(没有数据包离开接口)。现在的问题是,主机Ha是出于什么原因这样做的。
发布于 2019-07-19 09:46:50
首先,MAC地址表没有IP地址。您所描述的是ARP表,它包含将IP绑定到相应的MACs。
因此有2个ARP条目是静态的和动态的。在大多数情况下,您将使用动态,因此,如果主机收到相同的IP地址与不同的MAC地址,他将只是更新动态ARP条目与新的MAC。对于静态主机,除非手动修改arp记录,否则不会响应。
linux主机没有响应的原因可能更多,例如,如果网络使用DHCP欺骗和DAI,如果用户将手动设置地址而不是使用DHCP,它将过滤这些数据包。
https://networkengineering.stackexchange.com/questions/60516
复制相似问题