Windows Server 2008 忽略具有较低度量的持久路由

Windows Server 2008 忽略具有较低度量的持久路由

我在 10.100.20/24 子网上有三台 Windows Web Server 2008 SP2 计算机。我需要设置持久路由规则,以便到同一子网的传出流量通过硬件负载平衡设备。

在 Server 2003 中,使用以下命令添加持久路由非常简单:

route add -p 10.100.20.0 mask 255.255.255.0 10.100.20.157

在服务器 2008 中,相同的命令确实添加了类似的持久路由,但系统基本上会忽略它,即使它的度量低于默认记录。

以下是 Server 2008 的输出route print

IPv4 Route Table

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric

          0.0.0.0          0.0.0.0    10.100.20.157    10.100.20.178    276
      10.100.20.0    255.255.255.0         On-link     10.100.20.178    276
      10.100.20.0    255.255.255.0    10.100.20.157    10.100.20.178     21
    10.100.20.178  255.255.255.255         On-link     10.100.20.178    276
    10.100.20.179  255.255.255.255         On-link     10.100.20.178    276
    10.100.20.255  255.255.255.255         On-link     10.100.20.178    276
        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
        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     10.100.20.178    276
    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     10.100.20.178    276

Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric

      10.100.20.0    255.255.255.0    10.100.20.157       1
          0.0.0.0          0.0.0.0    10.100.20.157  Default

为了说明该问题,以下是 Server 2008 中的跟踪路由的输出:

Tracing route to 10.100.20.1 over a maximum of 30 hops

  1)    <1 ms    <1 ms    <1 ms  10.100.20.1

Trace complete.

如您所见,度量值较低的 21 规则被忽略,路由直接转到 10.100.20/24 子网上的机器。路由应该先经过 10.100.20.157,然后再转到 10.100.20.1。在 Server 2003 中,这可以正常工作,但 Server 2008 似乎忽略了度量值较低的规则。如果我手动删除默认路由,以便我的自定义路由记录成为 10.100.20.0 的唯一路由记录,那么它将通过负载平衡机器正确路由。

我曾与 Microsoft 技术支持人员合作,他们提出的解决方案是将 NIC 设置为忽略所有默认路由记录,并将每条路由规则添加为持久路由。我无法手动设置所有规则以使其正常工作,但我可以与 Microsoft 一起解决这个问题。

如果有办法让 Server 2008 真正遵守度量规则,或者编写脚本来处理每次初始化 TCP 堆栈时发生的事件以删除默认路由,或者编辑注册表以在 TCP 初始化时删除默认路由,那么在我看来,其中任何一种解决方案都会更好。

答案1

我认为如果 10.100.20.0/24 网络直接连接,服务器将忽略路由表并只使用该链接,而不管度量标准如何。

答案2

如果目标 IP 位于直接连接的网络上,Windows 将永远不会查找潜在路由。

就这么简单。

相关的是,一些 VPN 软件会覆盖这一点,因此当 VPN 和本地网络具有相同的子网时,VPN 就会工作。

答案3

我刚刚遇到了类似(相同?)的 VPN 路由问题。VPN 连接在另一端有 192.168.152.0/22 子网,因此我添加了一个具有低度量的持久路由来访问该网络。此路由始终被忽略。我通过将所有 4 个 C 类子网添加为持久路由解决了该问题,即使不忽略默认路由,它也能按预期工作。

答案4

这有帮助吗? https://superuser.com/a/455968/253137

简而言之:网络和共享中心,更改适配器设置,高级,高级设置,然后更改适配器的顺序。

相关内容