由于某种原因,Windows 仅使用一个接口进行本地网络广播(指标最低的接口)。当客户端连接到 VPN 网络时,我希望它通过更改接口上 255.255.255.255 路由的指标值,使新网络成为广播的首选。Microsoft 有一个 DHCP 选项,可帮助调整接口指标:默认路由器指标基础(http://msdn.microsoft.com/en-us/library/cc227277.aspx)然而我无法让它工作。
客户端运行的是 Windows 8,但 Windows 7 上也存在类似的问题(不能说早期版本也存在,但肯定存在,因为自 Windows 2000 以来,Windows 将自己标识为“MSFT 5.0”)。服务器是 ISC DHCP 服务器 4.2(isc-dhcp42-server-4.2.4_2)。客户端通过 OpenVPN 隧道连接到服务器并接收 DHCP 信息。根据 Wireshark 捕获,供应商特定选项也会发送。但这并没有什么区别,表格与没有发送该供应商选项的表格相同。
这是 DHCP 配置:
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
option space ms-specific;
option ms-specific.metric-fix code 3 = unsigned integer 32;
subnet 172.16.130.0 netmask 255.255.255.0
{
range 172.16.130.80 172.16.130.130;
option routers 172.16.130.8;
option broadcast-address 172.16.130.255;
default-lease-time 600;
max-lease-time 7200;
vendor-option-space ms-specific;
option ms-specific.metric-fix 1;
}
这是连接后的客户端路由表
Address Mask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.13.8 172.16.13.80 20
0.0.0.0 0.0.0.0 172.16.130.8 172.16.130.80 30
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
172.16.13.0 255.255.255.0 On-link 172.16.13.80 276
172.16.13.80 255.255.255.255 On-link 172.16.13.80 276
172.16.13.255 255.255.255.255 On-link 172.16.13.80 276
172.16.130.0 255.255.255.0 On-link 172.16.130.80 286
172.16.130.80 255.255.255.255 On-link 172.16.130.80 286
172.16.130.255 255.255.255.255 On-link 172.16.130.80 286
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 172.16.13.80 276
224.0.0.0 240.0.0.0 On-link 172.16.130.80 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 172.16.13.80 276
255.255.255.255 255.255.255.255 On-link 172.16.130.80 286
172.16.13.0/24 是物理本地网络。172.16.130.0/24 是 VPN。如您所见,来自物理本地网络的路由具有较低的度量。我相信应该可以优先考虑 VPN,因为例如 Hamachi 也创建了虚拟接口并启用了“自动度量”,但连接后它的度量始终低于物理网络和 OpenVPN 隧道。我尝试在“ncpa.cpl”中的“高级设置”中更改适配器顺序,但也没有效果。
那么,有什么方法可以让我的 OpenVPN 隧道成为 255.255.255.255 广播的首选?如果我能在服务器端做到这一点就太好了,这样客户端就不必调整任何东西了。