Cisco系列路由技术基础知识详解( 四 )


基于类的地址系统工作的不错 , 它在有效的地址使用和少量的网络数目间做出了较好的折衷 。但是随着因特网意想不到的成长出现了两个主要的问题:
已分配的网络数目的增长使路由表大得难以治理 , 相当程度上降低了路由器的处理速度 。
僵化的地址分配方案使很多地址被浪费 , 尤其是B类地址十分匮乏 。
为了解决第二个问题 , 可以分配多个较小的网络 , 例如 , 用多个C类网络而不是一个B类网络 。虽然这样能够很有效地分配地址 , 但是更加剧了路由表的膨胀(第一个问题) 。
在CIDR中 , 地址根据网络拓扑来分配 。连续的一组网络地址可以被分配给一个服务提供商 , 使整组地址作为一个网络地址(很可能使用超网技术) 。例如:一个服务提供商被分配以256个C类地址 , 从213.79.0.0到213.79.255.0 , 服务提供商给每个用户分配一个C类地址 , 但服务提供商外部的路由表只通过一个表项--掩码为255.255.0.0的网络213.79.0.0--来分辨这些路由 。
这种方法明显减少了路由表的增长 , CIDR RFC的作者估计 , 假如90%的服务提供商使用了CIDR , 路由表将以每3年54%的速度增长 , 而假如没有使用CIDR , 则增长速度为776% 。假如可以重新组织现有的地址 , 则因特网骨干上的路由器广播的路由数量将大大减少 。但这实际是不可行的 , 因为将带来巨大的治理负担 。
四、路由
1、路由表
假如一个主机有多个网络接口 , 当向一个特定的IP地址发送分组时 , 它怎样决定使用哪个接口呢?答案就在路由表中 。来看下面的例子:
目的 子网掩码 网关 标志 接口
201.66.37.0 255.255.255.0 201.66.37.74 U eth0
201.66.39.0 255.255.255.0 201.66.39.21 U eth1
主机将所有目的地为网络201.66.37.0内主机(201.66.37.1-201.66.37.254)的数据通过接口eth0(IP地址为201.66.37.74)发送 , 所有目的地为网络201.66.39.0内主机的数据通过接口eth1(IP地址为201.66.39.21)发送 。标志U表示该路由状态为“up”(即激活状态) 。对于直接连接的网络 , 一些软件并不象上例中一样给出接口的IP地址 , 而只列出接口 。
此例只涉及了直接连接的主机 , 那么目的主机在远程网络中如何呢?假如你通过IP地址为201.66.37.254的网关连接到网络73.0.0.0 , 那么你可以在路由表中增加这样一项:
目的
掩码
网关
标志
接口
73.0.0.0
255.0.0.0
201.66.37.254
UG
eth0
此项告诉主机所有目的地为网络73.0.0.0内主机的分组通过201.66.37.254路由过去 。标志G(gateway)表示此项把分组导向外部网关 。类似的 , 也可以定义通过网关到达特定主机的路由 , 增加标志H(host):
目的 掩码 网关 标志 接口
91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0
下面是路由表的基础 , 除了非凡表项之外:
目的 掩码 网关 标志 接口
127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
default 0.0.0.0 201.66.37.254 UG eth1
第一项是loopback接口 , 用于主机给自己发送数据 , 通常用于测试和运行于IP之上但需要本地通信的应用 。这是到特定地址127.0.0.1的主机路由(接口lo0是IP协议栈内部的“假”网卡) 。第二项十分有意思 , 为了防止在主机上定义到因特网上每一个可能到达网络的路由 , 可以定义一个缺省路由 , 假如在路由表中没有与目的地址相匹配的项 , 该分组就被送到缺省网关 。多数主机简单地通过一个网卡连接到网络 , 因此只有通过一个路由器到其它网络 , 这样在路由表中只有三项:loopback项、本地子网项和缺省项(指向路由器) 。
2、重叠路由
假设在路由表中有下列重叠项:

推荐阅读