为什么数据包通过网关发送到本地网络中的主机

最近,我在防火墙日志中发现,来往同一局域网的丢弃数据包数量越来越多...

我已经检查了两次,网络掩码还可以,没有其他路由了。

如果我从主机10.0.0.2/24 ping主机10.0.0.3/24,并且该主机存在于网络中,则一切正常,并且路由器不知道它(数据包从主机A直达主机B),但是如果主机B从网络数据包中消失,将转到默认网关...

我只在Windows机器上观察到过-所有Linux都可以...

任何人都知道Windows为什么要这样做以及从什么时候开始?

编辑

这是fireHOL的一些日志

2月5日20:36:26黑色PASS-未知:IN = lan0.20 OUT = lan0.20 MAC =(..)SRC = 10.0.0.2 DST = 10.0.0.3 LEN = 48 TOS = 00 PREC = 0x00 TTL = 127 ID = 14503 DF PROTO   = TCP SPT = 62931 DPT = 3050 SEQ = 3210101748 ACK = 0窗口= 8192 SYN URGP = 0 MARK = 0

丢弃的数据包不是ICMP,而是TCP SYN数据包,它是我们尝试连接到Firebird数据库的应用程序之一

最佳答案

我在网络上也发现了这个问题,花了几天的时间对它进行跟踪,直到我对自己在网络上捕获的内容不了解了。这是一个称为邻居不可达性检测的功能。

本质上,在初始ARP请求IP之后,如果Windows没有收到ARP答复,它将发送到默认网关,以查看网关是否可以找到设备所在的位置。当您在子网中ping未使用的IP(尚未经过ARP)时,您会看到此行为,第一个响应将是“目标主机不可达”,其余响应将显示“请求超时”。

当IPv4和IPv6网络堆栈组合在一起时,此行为在Windows Vista中开始。

您应该能够使用以下方式禁用此行为

netsh interface ipv4 set interface "<Interface Name>" nud=disabled store=persistent

请查看下面的链接,该链接指向“邻居不可访问性”下方的底部,以获取说明和更多信息。

https://blogs.technet.microsoft.com/networking/2009/04/24/source-ip-address-selection-on-a-multi-homed-windows-computer/

评论