为什么数据包要通过网关进入本地networking的主机

最近我发现我的防火墙日志越来越多的数据包从同一局域网中传出…

我已经检查了两次,networking掩码是好的,没有额外的路线…

如果我从主机10.0.0.2/24 ping主机10.0.0.3/24 ,并且这台主机在networking中存在,一切工作正常,路由器不知道它(包直接从主机A到B),但如果主机B从networking包中消失将去默认网关…

我已经观察到这只适用于Windows机器 – 所有Linux都可以…

任何人都知道为什么Windows正在做这样的事情,从那时起?


编辑

这里是fireHOL的一些日志

Feb 5 20:36:26 black PASS-unknown: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 WINDOW = 8192 SYN URGP = 0 MARK = 0

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

我在networking上也发现了这一点,并花了几天的时间来logging下我在networking上捕获的内容。 这是一个称为Neighbor Unreachability Detection的function。

本质上,在IP的初始ARP请求之后,如果Windows没有收到ARP应答,它将发送到默认网关,以查看网关是否可以find设备所在的位置。 当您ping您的子网中未使用的IP(尚未被ARP欺骗)时,您可以看到这种行为,第一个响应将是Destination Host Unreachable,其余的将显示Request超时。

当IPv4和IPv6networking堆栈合并时,此行为在Windows Vista中开始。

您应该能够使用禁用此行为

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

查看下面的链接,在Neighbor Unreachability下的底部,获取解释和更多信息。

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