如果查目的MAC地址表的时候发现L3bit置位了,就进入到L3转发流程。与L2交L3交换可以实现跨VLAN转发,而且它的转发依据不是根据目的MAC地址,而是根据目的IP。
L3转发的流程是:首先对L3头部进行校验,校验和错的包直接丢弃;然后进行原IP地址查找,如果主机路由表中没有找到,会上报给CPU,CPU会进行相应的处理,并更新接口表;下一步进行目的IP地址查找,如果主机路由表中没有找到,就会在子网路由表中进行查找,在子网路由表中进行最长子网匹配的查找算法,如果在子网路由表中还没有找到,也送给CPU进行处理,如果在主机路由表或子网路由表中找到了,就会得到下一跳的指针。如果ECMP使能的话,会得到ECMP的指针和ECMP的个数,从而根据hash算法得到一个下一跳指针。下一条表项中包含了下一跳的MAC地址和接口表的索引。在包转发出去的时候,用下一跳的MAC地址替换掉包的目的MAC地址。用接口
表中的MAC地址和VLAN替换掉包的原MAC地址和VLAN。
与L3有关的几个重要的表:
图10 L3单播主机路由表
图11 L3子网路由表
图12 ECMP表
图15 INGRESS 下一跳表