在 FreeBSD 上,当我有一个具有两个 IP 的接口时:
ifconfig nic0 192.168.0.1 netmask 255.255.255.0
ifconfig nic0 alias 192.168.0.2 netmask 255.255.255.255
如果我 ping 别名,如果我正在 ping 的主机(例如 192.168.0.20)尚未在 ARP 缓存中,则会导致以下 ARP 请求:
Who has 192.168.0.20? Tell 192.168.0.1
换句话说,ARP请求源自接口主IP。
但是,在 Windows 7 或 Server 2008R2 上,如果我以类似的方式配置我的界面:
netsh int ipv4 set address "LAN" static 192.168.0.1 255.255.255.0
netsh int ipv4 add address "LAN" 192.168.0.2 255.255.255.255 skipassource=true
当我执行相同操作时,会导致以下 ARP 请求:
Who has 192.168.0.20? Tell 192.168.0.2
是否可以更改这一点,使得在 Windows 上 ARP 请求也始终来自主接口 IP?