我们都学过把原本大网络分成若干小网络的划分子网。|超网,你是我的“神”( 二 )


那既然提到了CIDR地址块 , 就不能不提到与之相对应的最长前缀匹配机制 。
这是因为我们在查找路由表项进行路由选择时可能得到不止一个匹配结果 。 这样就带来一个问题:我们应当从这些匹配的结果中选择哪一条路由呢?
直接公布正确答案:应当从匹配结果中选择具有最长网络前缀的路由 。
当路由器收到一个IP数据包时 , 它会将数据包的目的IP地址与自己本地路由表中的所有路由表项分别进行逐位对比 , 对比完毕后 , 选择与之匹配度最长的路由表项 。
举个例子:
我们都学过把原本大网络分成若干小网络的划分子网。|超网,你是我的“神”】假如本座5楼现在收到了一封X部门发往Y部门的邮件 , 已知Y部门的IP地址为:192.31.71.128 , 途经5楼的一个路由器现有的路由表项信息分别为:192.31.71.0/26、192.31.68.0/22 , 那么该路由器在收到这封邮件后应该发往哪个下一跳地址呢?路由表项对应的子网掩码下一跳地址192.31.71.0/2611111111.11111111.11111111.11000000192.31.31.19192.31.68.0/2211111111.11111111.11111100.00000000192.31.31.89目的地址:192.31.71.128所对应的二进制数为:11000000.00011111.01000111.10000000
Tips
这里需要解释的是 , 虽然CIDR不使用子网了 , 但由于目前仍有一些网络还在使用子网划分和子网掩码 , 为了更方便地进行路由选择 , CIDR所使用的32位地址掩码也可继续称为子网掩码 。
例如 , /20地址块的地址掩码是:11111111111111111111000000000000(20个连续的1) 。 斜线记法中 , 斜线后面的数字就是地址掩码中1的个数 。
将每一个路由表项所对应的子网掩码与目的地址的二进制展开式两两进行“逻辑与”运算后再转换为十进制可得:192.31.71.0、192.31.68.0 , 运算步骤如下图所示:
我们都学过把原本大网络分成若干小网络的划分子网。|超网,你是我的“神”
文章图片
我们发现:经过运算后所得到的地址都与对应路由表项相匹配 , 说明表中两条路由信息都可以作为下一跳地址进行分配 。
But!根据最长前缀匹配机制 , 我们应该选择路由表项1所对应的下一跳地址作为转发地址 , 这是因为网络前缀越长 , 地址块越小 , 路由就越具体 。 05、总结一下下~
CIDR消除了传统的A , B , C类地址和划分子网的概念 , 更有效地分配IPv4的地址空间 , 使IP地址从三级编址(网络号 , 子网号 , 主机号)又回到无分类的两级编址 , 如下图所示 。
我们都学过把原本大网络分成若干小网络的划分子网。|超网,你是我的“神”
文章图片
CIDR还使用“斜线记法” , 即在IP地址后面加上“/”然后指明网络前缀所占的位数 。 CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块” , 即构成超网 。
在使用CIDR时 , 在路由表中可能会有不止一个匹配结果 , 这时应当从所有匹配结果中选择能够匹配更长网络前缀的路由 , 因为网络前缀越长 , 其地址块就越小 , 所得路由就越具体 。