在Windows下如果做这样的网络配置:
IP:192.168.1.1
Mask:255.255.255.0
GW:1.1.1.1
然后发现,当你ping或者随便访问某个192.168.1.0/24之外的IP时,它会发ARP
Request,询问1.1.1.1在哪。
有趣的是,如果在同一个二层广播域内(如连接在同一交换机上)的主机的IP是1.1.1.1,它居然还会回应MAC给192.168.1.1,可在192.168.1.1上arp
-a看到,于是,所有从192.168.1.1发出的到192.168.1.0/24之外的IP的访问均会丢给1.1.1.1。
更有趣的是,如果1.1.1.1把网关指向192.168.1.1,那么192.168.1.1和1.1.1.1能正常通信(1.1.1.1也能拿到192.168.1.1的MAC)!接在同一交换机上的不同逻辑网段,不通过路由也能通信了!
以上现象只在Windows上可以发生,Linux上是不能把网关指向与接口IP不同网段的地址的。
想请教一下,这是Windows在TCP/IP实现上的漏洞还是故意这么做的?是否违背了TCP/IP中规定的只有处同一逻辑网段(即IP段)时才能询问其MAC?