![Windows 上具有 IP 别名的 ARP 可以像在 Unix 上一样运行吗?](https://linux22.com/image/801832/Windows%20%E4%B8%8A%E5%85%B7%E6%9C%89%20IP%20%E5%88%AB%E5%90%8D%E7%9A%84%20ARP%20%E5%8F%AF%E4%BB%A5%E5%83%8F%E5%9C%A8%20Unix%20%E4%B8%8A%E4%B8%80%E6%A0%B7%E8%BF%90%E8%A1%8C%E5%90%97%EF%BC%9F.png)
在 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?