searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一条数据包从收到发--交换芯片篇(三)

2023-10-10 02:27:21
55
0

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 二层转发总结

    对于二层转发,其转发逻辑比较简单,但需要抽象的模块和元素也比较多,进而导致二层转发中需要考虑和排查的点比较多。

    

0条评论
作者已关闭评论
w****n
4文章数
0粉丝数
w****n
4 文章 | 0 粉丝
原创

一条数据包从收到发--交换芯片篇(三)

2023-10-10 02:27:21
55
0

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 二层转发总结

    对于二层转发,其转发逻辑比较简单,但需要抽象的模块和元素也比较多,进而导致二层转发中需要考虑和排查的点比较多。

    

文章来自个人专栏
网络转发
4 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0