双网卡的Windows路由配置(图)(内外网同时上)(重叠路由)
因为Windows 2000 下只允许配置一个默认网关,如果在网上邻居--〉属性里面把本地连接(内网)配上网关192.168.97.10,本地连接2(外网)配上网关10.42.29.10,表面上看是配置了2个网关,但是在DOS环境下输入route print命令查看路由表,在路由表下的default gateway只有1个网关。
实际上,如果我们的内部网Intranet只处于一个网段192.168.97.0,内部网内的ip地址范围192.168.97.1~192.168.97.254,连接内网的本地连接可以不用配网关,只配外网的本地连接2网关10.42.29.10。
当内网 1号主机 192.168.97.2要与 2号主机 192.168.97.3通讯,主机1检查目标地址ip 192.168.97.3的网段为 192.168.97.3与运算255.255.255.0为192.168.97.0,跟本主机处于同一网段,经交换机(根据MAC地址转发)直接把数据包发给目标主机,而不会走路由器。
当本机器要上外网的时候,经查找本机的路由表,在route print命令显示出来的路由表中,路由查询是从下往上查询的,最上面的路由条目为默认路由。经网关把数据包发出去,从而达到与外网通讯的目的。
如果内网还分好几个网段,这时候,如果内网的本地连接不设网关,显然是不能与内网的其他网段通讯的。例:如果内网主机192.168.97.1要与192.168.98.1通讯,该主机查找本地路表,由于没有找到192.168.98.0的相关路由表项,最后只好走默认路由,把数据包送到网关10.42.29.10,而这个网关是外部网的网关,该数据包显然是无法到达我们内部网的(设内外网的目的主要是为了隔绝,所以外网是无法把此数据包路由到内网的相应目的主机上的)
解决的办法:添加静态路由,由于内部网都是以192.168开头的,所以我们可以在DOS环境下输入: route add 192.168.0.0 mask 255.255.0.0 192.168.97.10 这又产生了一个问题,192.168.98.1的子网掩码为255.255.255.0,
重叠路由
假设在路由表中有下列重叠项:
目的 掩码 网关 标志 接口
1.2.3.4 255.255.255.255 201.66.37.253 UGH eth0
1.2.3.0 255.255.255.0 201.66.37.254 UG eth0
1.2.0.0 255.255.0.0 201.66.37.253 UG eth1
default 0.0.0.0 201.66.39.254 UG eth1
之所以说这些路由重叠是因为这四个路由都含有地址1.2.3.4,如果向1.2.3.4发送数据,会选择哪条路由呢?在这种情况下,会选择第一条路由,通过网关201.66.37.253。原则是选择具有最长(最精确)的子网掩码。类似的,发往1.2.3.5的数据选择第二条路由。
注意:这条原则只适用于间接路由(通过网关)。把两个接口定义在同一子网在很多软件实现上是非法的。例如下面的设置通常是非法的(不过有些软件将尝试在两个接口进行负载平衡):
接口 IP地址 子网掩码
eth0 201.66.37.1 255.255.255.0
eth1 201.66.37.2 255.255.255.0
对于重叠路由的策略是十分有用的,它允许缺省路由作为目的为0.0.0.0、子网掩码为0.0.0.0的路由进行工作,而不需要作为路由软件的一个特殊情况来实现。
回头来看看CIDR,仍使用上面的例子:一个服务提供商被赋予256个C类网络,从213.79.0.0到213.79.255.0。该服务提供商外部的路由表只以一个表项就了解了所有这些路由:213.79.0.0,子网掩码为255.255.0.0。假设一个用户移到了另一个服务提供商,他拥有网络地址213.79.61.0,现在他是否必须从新的服务提供商处取得新的网络地址呢?如果是,意味着他必须重新配置每台主机的IP地址,改变DNS设置,等等。幸运的是,解决办法很简单,原来的服务提供商保持路由213.79.0.0(子网掩码为255.255.0.0),新的服务提供商则广播路由213.79.61.0(子网掩码为255.255.255.0),因为新路由的子网掩码较长,它将覆盖原来的路由。