我在一个使用3个子网10.0.0.0/16,10.1.0.0/16和10.2.0.0/16的公司工作。 这三个子网使用三层交换机(10.0.100.200,10.1.100.200,10.2.100.200)连接,每个子网上的所有机器都使用三层交换机作为默认网关,然后将该stream量引导到真实网关目前是10.1.0.2
我最近在10.0.0.1上configuration了一个新的网关,并且已经开始testing这个新的网关,对于我在10.0.0.0/16子网上的客户端机器,这不是一个问题,我只是将通过DHCP分配的默认网关更改为这些机器到新的地址,stream量通过新的网关,而不是去三层交换机。
我想在另外一个网站上testing一下,因为我们在每个build筑中有不同的团队需要访问不同的网站,我想确保在我们切换之前,每个团队都可以访问他们需要做的工作。
因此,在10.2.0.0/16networking上的Windows工作站上,我尝试将机器的默认网关设置为10.0.0.1,我检查了stream量到达的位置,并且仍然通过旧网关(使用tracert到8.8.8.8它到达那里,但通过旧的网关,使用tracert 10.0.0.1,达到10.0.0.1)。 我相信三层交换机上的静态路由表将覆盖默认网关设置。
我想弄清楚是否可以在有问题的机器上设置一个静态路由,这样他们就可以将网关stream量指向10.0.0.1,并避免它被三层交换机覆盖。
我用了:
route add 0.0.0.0 mask 0.0.0.0 10.0.0.1 if 0x2
这被Windows所接受,但重复我的tracerttesting,stream量仍然通过旧的网关出去。 我希望我能做到:
route add 0.0.0.0 mask 0.0.0.0 10.0.0.1 if 0x2 route add 10.0.0.1 mask 0.0.0.0 10.0.100.200 if 0x2 route add 10.0.100.200 mask 0.0.0.0 10.2.100.200 if 0x2
但是这也失败了,运行Windows报告的第二个和第三个命令:
The route addition failed: The specified mask parameter is invalid. (Destination & Mask) != Destination.
所以我知道我正在运行的命令不起作用,但是是否有可能强制Windows将stream量通过第三层交换机引导到我的新网关,或者我没有结果的search?
如果我需要修改第3层交换机上的静态路由,我不介意这样做,我在星期天有一个维护窗口,所以我可以做一些修补。 我宁愿不在工作时间这样做,原因很明显。
只是为了澄清站点之间的链接,每个第3层交换机都有以下连接:
gateway , fibre link 1, fibre link 2 10.0.100.200, , 192.168.10.1 10.1.100.200, 192.168.20.1, 192.168.10.2 10.2.100.200, 192.168.20.2,
所以为了让我的stream量从10.2.249.28(我的testing机器)到达10.0.0.1,需要经过10.2.100.200> 192.168.20.1> 192.168.10.1> 10.0.0.1
有问题的三层交换机是Netgear FSM7326P和GSM7328FS。
如果由于我开始怀疑我不能通过在Windows中设置静态路由来做到这一点,是否可以为三层交换机上的单个IP地址定义静态路由? 由于我目前正在testing,我只希望来自3或4台机器的stream量,我现在将configurationtesting以通过新的网关,我希望所有其他stream量继续像以前一样stream动。
系统上的默认网关定义其本地广播域上的哪个地址发送位于直接连接的子网之外的地址的数据。 由于10.0.0.1不在10.2.0.0/16之内,因此10.2.0.0上的主机仍然需要知道10.2.0.0内的哪个地址发送数据包才能被转发。 一旦数据包在10.2.0.0内到达网关,那么这个网关如何处理它。
基于访问控制列表的创新静态路由可能是可能的,这取决于您的networking设备。
在我看来,你最好的select是将新的路由器/网关(10.0.0.1)连接到其他子网。 根据所使用的硬件,您可以使用其他物理链路或相互兼容的中继协议来完成此操作。 一旦将新的网关连接到所有三个子网,您将能够手动连接其他计算机进行testing。
这就是说,我很困惑你到底在testing什么,要求所有这三个/ 16都能够select多个网关。 如果你只是想确保它的工作,你的初始子网testing似乎证实了这一点。
由于您正在使用Windows,这是有问题的。 在FreeBSD的Linux下,这不是问题。
Windows Server 2012 R2和Windows 8.1具有允许直接访问子网的PowerShell cmdlet,“Get-NetOffloadGlobalSetting”显示当前状态,“Set-NetOffloadGlobalSetting -NetworkDirectAcrossIPSubnets”允许您configuration该值。
尽pipePowerShell理解客户端操作系统上的“NetworkDirectAcrossIPSubnets”的语法,但该function仅适用于服务器,将其设置在客户端操作系统下会产生错误。
如果您的服务器需要Windows虚拟机需要访问其子网之外的网关,并且您无法使用NetworkDirectAcrossIPSubnets,则可以安装另一台虚拟机,并在运行unix的操作系统(例如pfSense)下运行路由器,其中可以有多个地址假设至less有一个地址与网关位于同一子网中,并且可以为Windows虚拟机执行1:1 NAT。