路由基础——最长前缀匹配

时间:2024-05-21 13:28:00

目录

前言

机制过程

实现冗余


前言

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

机制过程

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

路由基础——最长前缀匹配

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

路由基础——最长前缀匹配

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

路由基础——最长前缀匹配

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

路由基础——最长前缀匹配

(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.

至此,对最长前缀匹配机制有一定的认知。实际上,目前行业几乎所有厂商的路由器缺省时都使用这种机制,而且,利用这个机制还能实现数据传输路径的冗余或者负载均衡。

实现冗余

在图123所示的某企业网络中,EBR-1及EBR-2是两台企业边界路由器,它们连 接着一个企业网络,在该网络中,存在着192.168.0.0/24、192.168.1.0/24、192.168.2.0/24和192.168.3.0/24两台企业边界路由器都具备到达上述网段的IP连通性。现在路由器XEBR-1EBR-2建立了连接,并且运行了 RIP,企业对EBR-1EBR-2 有着完全的操控权限,但是对X并不具备操控权限,只能简单地将路由信息通告给X。 现在,企业的要求是,通过在EBR.1EBR.2上完成相应的配置,使得X将到达上述 4个网段的数据包转发到EBR-1,EBR-1发生故障时,X将数据包平滑地切换到EBR.2要实现上述需求非常简单,即让EBR-1X通告到达192.168.0.0/24192.168.1.0/24192.168.2.0/24 192.168.3.0/24 4 个网段的路由,而 EBR-2 仅向 X 通告一条 192.168.0.0/ 22 路由,实际上这条路由是这4个网段的汇总路由,可以简单地理解为192.168.0.0/22192.168.0.0/24192.1680/24192.168.2.0/24 192.168.3.0/24 都囊括在内。

路由基础——最长前缀匹配

路由基础——最长前缀匹配完成上述部署后,X的路由表中将出现5RIP 路由。在网络正常时,发往这4个网段的数据包在到达X后,根据最长匹配原则,报文的 目的IP地址将被EBR-1所通告的4条路由所匹配,因此被X转发给EBR-1,而当EBR-1 EBR.1X之间的互联链路发生故障时,X的路由表中原来EBR-1所通告的4条路由 消失,仅剩EBR2所通告的路由,因此到达这4个网段的数据包将被该路由匹配,从而被转发给EBR-2,这就实现了数据转发路径的冗余。