HCNP路由交换学习指南
上QQ阅读APP看书,第一时间看更新

1.4 最长前缀匹配

最长前缀匹配机制(Longest Prefix Match Algorithm)是目前行业内几乎所有的路由器都缺省采用的一种路由查询机制。当路由器收到一个IP数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位(Bit-By-Bit)比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。下面通过一个例子来详细地讲解这个机制。

在图1-19展示的网络中,路由器R4的路由表中除了直连路由之外,还有三条路由,它们分别是172.16.1.0/24、172.16.2.0/24以及172.16.0.0/16,这三个路由条目分别关联不同的出接口和下一跳IP地址。那么当R4收到一个到达172.16.2.1数据包时,它将把数据包转发给哪一台路由器呢?

图1-19 观察R4的路由表

大致上,R4将进行如下操作。

(1)将报文的目的IP地址172.16.2.1和路由条目1的目的网络掩码255.255.255.0进行“逻辑与”运算,将运算结果与路由条目1的目的网络地址的前面24bit(比特,也就是二进制的位)进行比对,如图1-20所示,结果发现有两个比特位不相同,因此判断出这个目的IP地址与路由条目1不匹配。R4将不会使用这条路由转发到达172.16.2.1的数据包。

图1-20 目的IP地址与路由条目1的目的网络掩码进行与运算,运算结果与路由条目1的目的网络地址进行比对

(2)将目的IP地址172.16.2.1和路由条目2的目的网络掩码255.255.255.0进行“逻辑与”运算,将运算结果与路由条目2的目的网络地址的前面24bit进行比对,如图1-21所示,发现每一个比特位都是相同的,因此该目的IP地址匹配这条路由,而且匹配结果是172.16.2.0/24,也就是说匹配长度为24。

图1-21 目的IP地址与路由条目2的目的网络掩码进行与运算,运算结果与路由条目2的目的网络地址进行比对

(3)将目的IP地址172.16.2.1和路由条目3的目的网络掩码255.255.0.0进行“逻辑与”运算,将运算结果与路由条目3的目的网络地址的前面16bit进行比对,如图1-22所示,发现每一个比特位都是相同的,因此该目的IP地址匹配这条路由,而且匹配结果是172.16.0.0/16,也就是说匹配长度为16。

图1-22 目的IP地址与路由条目3的目的网络掩码进行与运算,运算结果与路由条目3的目的网络地址进行比对

(4)有两条路由匹配目的IP地址172.16.2.1,路由条目2的匹配结果为172.16.2.0/24,而路由条目3的匹配结果为172.16.0.0/16,因此条目2的匹配度更长,最终R4将采用路由条目2来转发到达172.16.2.1的数据包,这些数据包被转发给R2。

经过上文的介绍,相信大家对最长前缀匹配机制有了一定的认知。实际上,目前行业内几乎所有厂商的路由器缺省都在使用该机制。而且,利用这个机制还能实现数据传输路径的冗余或负载分担。

在图1-23所示的某企业网络中,EBR-1及EBR-2是两台企业边界路由器,它们连接着一个企业网络,在该网络中,存在着192.168.0.0/24、192.168.1.0/24、192.168.2.0/24及192.168.3.0/24 4个网段,两台企业边界路由器都具备到达上述网段的IP连通性。现在路由器X与EBR-1及EBR-2建立了连接,并且运行了RIP,企业对EBR-1及EBR-2有着完全的操控权限,但是对X并不具备操控权限,只能简单地将路由信息通告给X。现在,企业的要求是,通过在EBR-1及EBR-2上完成相应的配置,使得X将到达上述4个网段的数据包转发到EBR-1,当EBR-1发生故障时,X将数据包平滑地切换到EBR-2。要实现上述需求非常简单,即让EBR-1向X通告到达192.168.0.0/24、192.168.1.0/24、192.168.2.0/24及192.168.3.0/24这4个网段的路由,而EBR-2仅向X通告一条192.168.0.0/ 22路由,实际上这条路由是这4个网段的汇总路由,可以简单地理解为192.168.0.0/22将192.168.0.0/24、192.168.1.0/24、192.168.2.0/24及192.168.3.0/24都囊括在内。关于汇总路由的概念,本书将在1.5节中详细介绍。完成上述部署后,X的路由表中将出现5条RIP路由。在网络正常时,发往这4个网段的数据包在到达X后,根据最长匹配原则,报文的目的IP地址将被EBR-1所通告的4条路由所匹配,因此被X转发给EBR-1,而当EBR-1或EBR-1与X之间的互联链路发生故障时,X的路由表中原来EBR-1所通告的4条路由消失,仅剩EBR-2所通告的路由,因此到达这4个网段的数据包将被该路由匹配,从而被转发给EBR-2,这就实现了数据转发路径的冗余。

图1-23 利用最长前缀匹配实现数据传输路径的冗余