最长匹配原则是我司支持IP路由的设备默认的路由查找方式(事实上几乎所有支持IP路由的设备都是这种查找方式)。当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的表项进行bit by bit的逐位查找,直到找到匹配度最长的条目,这叫最长匹配原则。
看上面的图,这是一个形象化的二维空间图。深灰色的空间172.16.0.0/16,这个网络号,我们称为主类网络号,所谓主类网络号,意思是该网络号按照其所属的IP地址类别区分后、对应上的默认的子网掩码长度后得到的网络号。如172.16.0.0这是一个B类地址,B类地址的默认子网掩码长度是16位,因此172.16.0.0/16本身就是一个主类网络号。再举另外一个例子,10.1.12.0/24,首先10开头的,这是一个A类地址,A类地址默认的掩码是255.0.0.0,因此10.1.12.0/24它的主类网络号是10.0.0.0/8。 我们首先顺着上面的图,从172.16.0.0/16开始往里走,下一个我们看到的网络号是172.16.10.0/24,这很明显是应用了VLSM可变长子网掩码之后,得到的一个172.16.0.0/16这个主类网络的一个子网(subnet)。所以所谓的子网,我们可以理解为是在网络号所属类别的默认掩码长度的基础上,将掩码“拉长”或者向主机位借位从而得到的一个子网络号。实际上172.16.0.0/16是将172.16.10.0/24囊括在内的一个区间。那么在这里,如果我们有一个IP:172.16.10.1,实际上这个IP既可以理解为在172.16.0.0/16网络内,也是在172.16.10.0/24网络内,当然,这里我们能看出来,谁更能精确匹配172.16.10.1这个IP呢?很明显是172.16.10.0/24更精确,我们说,它的匹配长度相比172.16.0.0更长。 当然子网172.16.10.0/24还可以进一步划分子网,得到172.16.10.0/30,甚至172.16.10.1/32,那么如果这些前缀都存在的情况下,当我要去查找172.16.10.1,谁的匹配度最高呢?很明显,是172.16.10.1/32这条主机前缀,或者说,主机路由,对吧?这就是最长匹配原则。
OK,现在回到172.16.0.0/16这个主类网络号,然后我们向外走,看上图。172.0.0.0/8实际上是将这个B类地址的掩码向左移了8bits,这样一来得到的这个网络号实际上是囊括了172.16.0.0/16在内的一个大的网络号,我们称其为超网。
下面我们总结一下路由器关于路由查找的几个重点内容:
|
|