1 前言
前序章节里,介绍l2转发的基本思想和基本概念,提到了二层转发网络和二层转发域可能引起的网络问题。本章节,继续探讨L2转发。
2 L2转发思想
2.3 风暴抑制
如上图所示,由于报文在二层转发时没有类似ttl的终结机制,vlan域成环时,报文会一直在环内转发下去
如果此时是未知单播的广播复制,则会出现网络风暴。
此时,需要使能风暴抑制的策略,防止网络拥塞。
风暴抑制的策略,一般针对未知单播、广播等引起vlan域内广播泛洪的特殊报文进行配置。
2.4 解决环路
风暴抑制的策略,虽然一定程度解决了广播风暴引起的网络拥塞问题,但仍然没有避免网络成环,
需要有方法和手段识别网络的物理环路或vlan环路。
在二层协议里,定义了一些解决环路的协议,比如STP协议(stp/rstp/mstp)等。
通过运行的慢速协议,识别是否存在环路,发现存在环路时,按照策略选择环路端口,根据不同的粒度下发阻塞策略,
1)全局vlan策略;
2)多实例vlan策略;
3 交换芯片的L2 pipeline思想
3.1 二层转发中的必要元素设计
1)接口抽象;
2)vlan抽象;
3)解决环路的策略;
4)MAC表;
5)报文复制;
6)风暴抑制策略;
7)vlan映射;
3.2 L2 pipeline设计思想
1、首先检查报文是否是携带vlan;
2、vlan检查,该port是否在vlan中;
3、stg检查,forward状态下允许包进入,否则丢弃;
4、smac查找,找到进入下一步端口匹配;找不到则进行learning/drop/copytocpu;
5、port与smac匹配,则进行dmac查找;不匹配则learning/drop/copytocpu;
6、dmac查找,若为广播,则在vlan内广播;
若为组播,走组播流程;
若为单播,找不到,则进行vlan内广播;
若找到则检查L3 bit,若置位,则走L3流程,否则L2转发到port/tgid
转发逻辑中,需要考虑几种元素:
1)无tag,单层tag,多层tag等不同情况的查找,终结,添加等;
2)vlan映射;
3)stg检查和配置;
4)mac学习和漂移;
5)报文丢弃策略;
6)二层终结策略(是否匹配三层转发)
对于需要二层终结的表项,二层终结后进入三层转发。
4 二层转发总结
对于二层转发,其转发逻辑比较简单,但需要抽象的模块和元素也比较多,进而导致二层转发中需要考虑和排查的点比较多。