双网卡内外网路由问题 route -p add (转载
因为 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 ,因为新路由的子
网掩码较长,它将覆盖原来的路由。
或者 1. 设置其中接 internet 的网卡的网关为 192.168.0.1启用后就是默认网关;
2. 将连接单位内部网的网卡 IP 配好后,将网关设置为空(即不设网关。