我在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输出:
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.1之前,路由应该已经过10.100.20.157.在Server 2003中,这可以正常工作,但Server 2008似乎忽略了具有较低度量标准的规则.如果我手动删除默认路由,以便我的自定义路由记录是10.100.20.0的唯一路由记录,那么它将通过负载平衡机正确路由.
我使用过Microsoft技术支持,他们提出的解决方案是将NIC设置为忽略所有默认路由记录,并将每个路由规则添加为持久路由.我无法手动设置所有规则以正常工作,但我可以与Microsoft合作.
如果有办法让Server 2008遵守度量规则,或者在每次初始化TCP堆栈以删除默认路由时编写脚本来处理事件,或者在TCP初始化时编辑注册表以删除默认路由,在我看来,这些解决方案中的任何一个都会更好.
我认为如果10.100.20.0/24网络直接连接,服务器将忽略路由表,只是使用该链接,无论指标如何.