2 路由器( 三 )


此例只涉及了直接连接的主机,那么目的主机在远程网络中如何呢?假如你通过IP地址为201.66.37.254的网关连接到网络73.0.0.0,那么你可以在路由表中增加这样一项:
目的 掩码网关标志接口
--------------------------------------- ----
73.0.0.0255.0.0.0 201.66.37.254 UGeth0
此项告诉主机所有目的地为网络73.0.0.0内主机的分组通过201.66.37.254路由过去 。标志G(gateway)表示此项把分组导向外部网关 。类似的,也可以定义通过网关到达特定主机的路由,增加标志H(host):
目的掩码网关标志 接口
----------- ------------------------------- ----
91.32.74.21 255.255.255.255 201.66.37.254UGH eth0
下面是路由表的基础,除了非凡表项之外:
 目的 掩码网关 标志接口
 ----------- --------------------------- -----
 127.0.0.1255.255.255.255 127.0.0.1UHlo0
default0.0.0.0 201.66.37.254UGeth1
第一项是loopback接口,用于主机给自己发送数据,通常用于测试和运行于IP之上但需要本地通信的应用 。这是到特定地址127.0.0.1的主机路由(接口lo0是IP协议栈内部的“假”网卡) 。第二项十分有意思,为了防止在主机上定义到因特网上每一个可能到达网络的路由,可以定义一个缺省路由,假如在路由表中没有与目的地址相匹配的项,该分组就被送到缺省网关 。多数主机简单地通过一个网卡连接到网络,因此只有通过一个路由器到其它网络,这样在路由表中只有三项:loopback项、本地子网项和缺省项(指向路由器) 。
2、重叠路由
假设在路由表中有下列重叠项:
目的 掩码 网关 标志接口
 ---------------------- --------------- -----
1.2.3.4255.255.255.255201.66.37.253 UGHeth0
1.2.3.0255.255.255.0 201.66.37.254 UGeth0
1.2.0.0255.255.0.0201.66.37.253 UGeth1
default0.0.0.0201.66.39.254 UGeth1
之所以说这些路由重叠是因为这四个路由都含有地址1.2.3.4,假如向1.2.3.4发送数据,会选择哪条路由呢?在这种情况下,会选择第一条路由,通过网关201.66.37.253 。
原则是选择具有最长(最精确)的子网掩码 。类似的,发往1.2.3.5的数据选择第二条路由 。
注重:这条原则只适用于间接路由(通过网关) 。把两个接口定义在同一子网在很多软件实现上是非法的 。例如下面的设置通常是非法的(不过有些软件将尝试在两个接口进行负载平衡):
 接口 IP地址 子网掩码
------------------------ -------------
eth0201.66.37.1 255.255.255.0
eth1201.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),因为新路由的子网掩码较长,它将覆盖原来的路由 。
3、静态路由
回头看看我们已建立的路由表,已有了六个表项:
目的 掩码 网关 标志 接口
------------------------------------------
 127.0.0.1 255.255.255.255127.0.0.1UH lo0

推荐阅读