前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络设备硬核技术内幕 交换机篇 7 思过崖前的创新

网络设备硬核技术内幕 交换机篇 7 思过崖前的创新

作者头像
用户8289326
发布2022-07-27 12:59:34
3560
发布2022-07-27 12:59:34
举报
文章被收录于专栏:帅云霓的技术小屋

上回提到,令狐冲在思过崖见到一位仙风道骨的老者,提点令狐冲半夜去思过崖后的山洞受教。

老者名叫风清扬,是华山派元老,由于长期加班过度,身体不适,隐居思过崖以种菜度日。

老者问:

少侠,每次你如果想和一个人通话,需要做什么?

令狐冲答:

查电话簿,找到这个人电话号码,打他电话。

老者问:

那么,下次再想和他通话,需要做什么?

令狐冲答:

在手机通话记录里面找到直接拨打。

老者又问:

那,如果将路由表缓存到交换机ASIC,是不是可以在交换机的ASIC直接查找路由表进行转发?

令狐冲翻了翻白眼,在思索着——

交换机内部的MAC表项存储在CAM存储器中,CAM可以根据查找内容精确匹配,如精确匹配MAC地址并查找出接口。这种存储器存储的表项又被称为LEM (Large Exact Match),如下图所示:

而路由器查找路由表的方式并非如此。路由器执行的是最长匹配查找,查找的表项被称为LPM(Longest Perfix Match)。如下图所示:

由于路由器执行的是三层转发,转发数据包时,原来的以太网头部将被剥离,替换为新的以太网头部,其源地址为路由器出接口MAC地址,目的地址为对端MAC地址,因此,路由表项还需要关联到ARP表项:

令狐冲在苦苦思索应当如何让交换机具有查找这些表项的能力。

老者拍拍令狐冲肩膀:

少侠,你想想,若在路由表中存储的不是Destination IP Section/Mask这种网段/掩码的方式,而是将IP地址直接存在LEM表中……

令狐冲一拍大腿。就这么干!

三层交换机的转发流程为:

  1. 根据数据包的MAC地址,在CAM中查询LEM表。如果查询到的出接口为二层port,则直接二层转发,如果查询不到,则在VLAN内泛洪。如果出接口为VLAN Interface,则进入三层转发流程。;
  2. 三层转发流程中,根据数据包的IP地址查询FIB(Forwarding Information Base)表,如果查询到,则根据目的IP地址,在出接口上查询ARP。
  3. 若没有ARP表项,触发ARP学习;若有,则将数据包的目的MAC改为ARP表项中的目的MAC,源MAC改为出方向VLAN Interface的MAC并发送;
  4. 如果在FIB表中查询不到目的IP,则将数据包送到CPU,让CPU查找路由表,并根据路由表查询结果,将FIB表下发到交换机ASIC内部的CAM中。这样,后续指向该IP地址的数据包均可以匹配CAM中这条FIB表,进行快速交换了。

这叫做“一次路由,多次交换”,基于这种机制的交换机叫做三层交换机,能够实现跨VLAN网段的交换,在局域网中可以部分替代路由器的功能。

令狐冲一头扎进实验室,造出了中国第一台三层交换机——S3526,从此,令狐冲又可以和小师妹愉快地线速转发情书了。

好景不长。

由于华山派弟子的扩张,核心三层交换机的CAM表中,需要存储每一个弟子的信息,很快,出现了CAM表存储不下FIB表的情况。大量找不到FIB表的数据包被上送到CPU,CPU疲于奔命,网络大量丢包。

令狐冲临危受命,改进三层交换机。

欲知后事如何,请看下回分解——

上次遗留的思考题:

VLAN ID=0的数据包代表什么?它是在什么协议中用到?

答案:VLAN ID=0的数据包在Profinet RT中使用,代表高优先级实时信令。只有支持Profinet的交换机才能够正确处理这样的数据包,否则会丢弃或修改为默认的VLAN ID(PVID)。

今天的思考题:

在“一次路由,多次交换”的转发流程中,有一个隐藏的小错误,请指出。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档