有类路由查找:路由器首先匹配主网络号,如果主网络号存在,就继续匹配子网号,且不考虑缺省路由,如果子网无法匹配,丢弃数据包;如果主网络号不存在,使用缺省路由(缺省路由存在前提)。
无类路由查找:不区分A,B,C,D类网络类型,按照比特逐位查找,如果没有找到最具体的匹配,就使用缺省路由。
有类路由查找例子:
R 10.1.0.0/16 | via 1.1.1.1 |
R 10.2.0.0/26 | via 1.1.1.2 |
R* 0.0.0.0/0 | via 1.1.1.3 |
现在假设有3个IP报文,报文A的目标IP是10.1.1.1、报文B的目标IP是10.3.1.1、报文C的目标IP是11.11.1.1
报文A:目标IP为10.1.1.1,所在的主网络为10.0.0.0,目前的路由表中存在10.0.0.0的子网路由,此时路由器要进一步查找子网路由,是否能够精确匹配,我们看到10.1.0.0/16可以匹配我们的目标地址,所以报文A根据这条路由进行转发。
报文B:目标IP为10.3.1.1,所在的主网络为10.0.0.0,目前的路由表中存在10.0.0.0的子网路由,此时路由器要进一步查找子网路由,是否能够精确匹配,我们看到路由表中的两条子网路由10.1.0.0/16和10.2.0.0/16均不能匹配我们的目标地址,根据有类路由协议的原则,它不会选择缺省路由,所以报文B被路由器丢弃。
报文C:目标IP为11.1.1.1,所在的主网络为11.0.0.0,目前的路由表中不存在11.0.0.0的子网路由,此时路由器直接采用缺省路由,所以路由器采用缺省路由对报文C进行转发。