在 Windows 2016 Server 上,我需要设置自定义路由,以便到特定目标 IP 地址的连接始终使用特定的源 IP。但是,虽然该route add
命令允许我指定接口,但不允许我指定源 IP。
该服务器具有一个具有多个 IP 地址的网络接口,例如10.0.0.10
和10.0.0.20
都绑定到此网络接口,并且可以通过以下任一 IP 访问该服务器:
c:>ipconfig
Ethernet adapter myAdapter:
IPv4 Address. . . . . : 10.0.0.10
Subnet Mask . . . . . : 255.255.255.0
IPv4 Address. . . . . : 10.0.0.20
Subnet Mask . . . . . : 255.255.255.0
Default Gateway . . . : 10.0.0.1
默认情况下,所有传出连接都使用10.0.0.10
作为源 IP。
我需要一条路由,以便到某个特定远程地址 ( 10.123.123.123
) 的所有连接始终来自第二个本地 ip ( 10.0.0.20
),因为 的设备10.123.123.123
配置为仅接受来自 的连接10.0.0.20
,而不是来自 的连接10.0.0.10
:
c:>telnet 10.123.123.123 111
This tcp connection should use 10.0.0.20 as the origin IP
我可以添加一条路线
route ADD 10.123.123.123 MASK 255.255.255.255 10.0.0.1 METRIC 1 IF 1
但是这不会改变源 IP 地址10.0.0.20
。传出连接仍然源自该 IP 10.0.0.10
。
当两个 IP 具有相同的接口号时,如何指定路由应使用哪个 IP 地址?
只有与 IP 的连接10.123.123.123
才会受到此路由的影响。
所有其他连接应继续使用原始 IP 10.0.0.10
。
由于这是一个复杂的遗留系统混乱问题,我正在寻找一种对影响其他连接的风险最小且不更改现有软件的解决方案。
因此,如果可能的话,我宁愿不改变此接口的全局指标,或拆分接口。仅影响 ip 的特定路由10.123.123.123
将是理想的选择。