如果在L2转发流程中,查目的MAC地址表时发现L3 bit设置了,就进入L3转发流程。与L2交换相比,L3路由可以实现跨VLAN转发,而且它的转发依据的是目的IP,而不是目的MAC地址。
在L3转发中,首先对L3头部进行校验,校验和错的包直接丢弃。
然后在L3_ENTRY表中进行原IP地址查找,如果匹配不到,会将报文上报到CPU,由CPU进行相应处理,并更新L3接口表。
下一步进行目的IP地址查找,如果L3_ENTRY表中没有找到,就会在子网路由表中进行查找,在子网路由表中进行最长子网匹配的查找算法(LPM Table),如果子网路由表中还没有找到,也送到CPU进行处理。如果在查找路由表或子网路由表中找到了,就会得到下一跳指针,下一跳表项中包含了下一跳的MAC地址和接口表索引。在包转发出去时,用下一跳的MAC地址替换掉包的目的MAC地址,用接口表中的MAC地址和VLAN替换掉包的源MAC地址和VLAN。