取消
显示结果 
搜索替代 
您的意思是: 
cancel
6910
查看次数
100
有帮助
16
评论
Qingboy
Level 1
Level 1
对于交换芯片来说,L2转发是一个最基本的功能。L2功能主要包括ingress过滤、MAC学习和老化、根据MAC+VLAN转发、广播与洪泛、生成树控制等基本功能。
从端口进入交换芯片的包首先检查TAG,对于tagged包,判断是否是802.1p的包,(802.1p的包vid为0),对于untagged的包和802.1p的包,根据系统配置加上tag(这些配置包括:基于MAC的vlan、基于子网的vlan、基于协议的vlan和基于端口的vlan)。经过这一步以后,到交换芯片内部的包都变成802.1Q的tagged包了(vid为1-4094,4095保留),如果设置了ingress过滤,就会检查本端口是否在该vid对应的VLAN中,对于本端口不在该vid对应的VLAN中的包就丢弃。对于没有设置ingress过滤,或者设置ingress过滤但本端口在该vid对应的VLAN中的包进行STP端口状态检查,对于BPDU以外的包,只有端口处于forwarding状态,才允许包进入。然后进行原MAC地址检查,以原MAC+VID的哈希为索引查找L2 TABLE,如果没有找到,就把这个表项(原MAC+VID)以及对应的端口写到L2 TABLE中,这个过程称为MAC地址学习。当然地址学习的方法有很多种,可以是硬件学习,也可以是软件学习,可以根据PORT表中的CMI字段的配置来进行。
下一步进行目的MAC地址检查:目的MAC地址为广播地址(0xffffffff)的包,在vlan内广播出去;目的MAC地址为组播地址的包,进行组播流程的处理;对于单播包,查找L2 TABLE,如果没有找到,就在vlan内进行洪泛;如果找到,检查表项中的L3 bit是否设置,如果设置了L3 bit,就进行L3流程的转发;否则就转发到L2 TABLE表项中的端口去,在egress方向,也有egress过滤设置(默认是使能的),如果egress端口不在vlan中也是不能转发的。至此,L2转发流程完成了。
与地址学习相反的过程是地址老化。地址老化的机制是:ASIC内部有个定时器,称为age timer,命令行可以对这个寄存器进行设置,每次查找L2 TABLE时(包括原地址查找和目的地址查找,可以配置),如果命中,就会设置hit标志。当老化时间到后,ASIC把hit标志清除,当下一个老化时间到后,ASIC把hit为0的地址设置为无效,这就是为什么实际地址老化的时间为1~2倍agingTime的原因。
评论
one-time
Level 13
Level 13
感谢楼主分享,谢谢!
Yuan Li
Spotlight
Spotlight
解释到位,谢谢分享
Barefoot
Level 1
Level 1
原理解析透彻,有流程图就更好了。
xiaopeng
Community Member
thanks for sharing
Yongluo
Community Member
2层转发是数通学习的基础,很详细
helloworld1
Community Member
基于芯片的2层转发原理,有图就更好了
embedway
Community Member
解释到位,详细,谢谢分享
Peter.Christy
Community Member
解析透彻,谢谢分享
Merer
Community Member
如果能像这样将每个协议交互过程单独详细说明一个帖子就很不错了。
王征
Community Member
最后一段不是很理解,希望能补充配图和sdk指令说明
Xiang
Community Member
L3转发流程

如果查目的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。
Xiang
Community Member
贡献一个三层转发流程:lol
yanli1
Community Member
Xiang 发表于 2019-6-23 11:55
贡献一个三层转发流程

到位,非常感谢,所以很多低端设备CPU性能是瓶颈
BerryABC
Community Member
现在都能做到线速转发了吧?
rainbow1
Community Member
楼上的,很多场景下小包吞吐量还是没那么高的
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:









快捷链接