路由最长匹配

http://book.51cto.com/art/200903/117468.htm

 

 8.4.2  最长匹配:第1级网络路由

路由查找过程是怎样确切地判断数据包的目的IP地址和路由表中的哪条路由匹配?如果有多于一条的路由表项和它匹配又将怎样?让我们来看一看。

一、最长匹配

在前面的路由查找讨论中,用到了最佳匹配这个术语。那么什么是最佳匹配呢?最佳匹配也可称为最长匹配。脱离开拓扑片刻,图8-20显示了路由3(172.16.0.0/26),具有最长匹配。最长匹配是什么意思呢?

 
图8-20  最长匹配路由是首选路由

首先,我们应清楚什么是匹配。从路由表中的路由与数据包的目的IP地址的最左侧开始,两者必须达到一个最少的匹配位数。这个最少匹配位数由路由表中相应路由的子网掩码决定(请记住,IP数据包仅包含IP地址,不包含子网掩码)。

最佳匹配(或最长匹配)是指路由表中与数据包的目的IP地址从最左侧开始存在最多匹配位数的路由。通常情况下,最左侧有着最多匹配位数(最长匹配)的路由总是首选路由。子网掩码的比特数不仅指出了最左边匹配的最小比特数,而且是路由查找匹配比特时考虑的因素。

在图8-20中,我们看到一个目的地址为172.16.0.10的数据包。路由表中的许多路由都可能会与该数据包的目的IP地址匹配。图8-20中显示了3条都与该数据包匹配的路由:172.16.0.0/12、172.16.0.0/18 和172.16.0.0/26。3条路由中,172.16.0.0/26 路由的匹配位数最长。请记住,这几条路由必须达到其子网掩码所指定的最少匹配位数,才会被视为匹配路由。

图8-20提及的可能是一个不太常见的例子,它只是用来解释最长匹配的概念。在这个例子中,172.16.0.0/12和172.16.0.0/18将永远也不会被使用到,因为172.16.0.0/26总是最长匹配。这时因为所有的3条路由共享同样的32位比特。如果有多条路由具有同样的网络地址,但是子网掩码不同,则路由表查找过程永远使用最长掩码那条路由。在这个例子中,路由表查找过程永远使用路由172.16.0.0/26。

二、示例:第1级最终路由

用于确定最长匹配的子网掩码并不总是明确的。让我们通过几个示例详细地分析一下其中的原因。

在图8-21中,PC1向R3的串口192.168.1.2发送ping命令。

 

 
图8-21  示例:第1级最终路由

 

R1收到了该数据包。示例8-13显示了R1路由表。

示例8-13  R1的路由表

R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
<some output omitted>
Gateway of last resort is not set
       172.16.0.0/24 is subnetted, 3 subnets
C         172.16.1.0 is directly connected, FastEthernet0/0
C         172.16.2.0 is directly connected, Serial0/0/0
R         172.16.3.0 [120/1] via 172.16.2.2, 00:00:25, Serial0/0/0
R      192.168.1.0/24 [120/1] via 172.16.2.2, 00:00:25, Serial0/0/0

还记得路由查找过程中步骤1的第一个部分吗?图8-22演示了路由表查找到192.168.2.1数据包过程的步骤。

 

 
图8-22  路由表查找过程:步骤1
 

你可能感兴趣的:(网络,路由,数据包)