首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >网络设备硬核技术内幕 交换机篇 16 辟邪剑法(下)

网络设备硬核技术内幕 交换机篇 16 辟邪剑法(下)

作者头像
用户8289326
发布2022-07-27 13:06:55
发布2022-07-27 13:06:55
7380
举报

上回说到,自从黑木崖大规模招降纳叛,在江湖上混不下去的星宿老仙丁春秋也投靠了黑木崖。

星宿老仙有三大绝学:马屁、法螺、厚颜。

黑木崖的辟邪剑法也对外宣称三大绝学:IP包分片重组、包守恒算法和Netstream。

原来,辟邪剑法脱胎自葵花宝典,而交换机的这三大特性,本质上也是精简版本的路由器特性。

IP包分片重组,是路由器的基本功能。

在广域网络中,数据包会被添加一些隧道头部传输,而不同的链路又有不同的MTU,报文的分片重组不可避免。

下图是典型的启用了倒数第二跳弹出的MPLS V**网络中,数据包长度的变化情况。可见,如果P到P之间的链路MTU无法支持超过1518的以太网数据包,数据包会在P上被分片,在右边的PE上重组。特别地,在MPLS跨域时,这种情况更为常见。

而在局域网中这个特性并没有什么(练习辟邪剑谱以后没有了的东西)用。

局域网中开启该特性,是防止VXLAN数据包被分片切断:

如图,VXLAN报文被截断分片后,第二个分片已经不是VXLAN报文,被送到IP目的地址(对端VXLAN网关)后,是无法正确处理的。

但是,事实上,这个问题并不存在。

首先,无论是数据中心,还是园区网的汇聚和核心交换机,Jumbo Frame都是其入门条件。Jumbo Frame特性可以让交换机能够处理长达9K以上的数据包。如H3C的数据中心接入/核心交换机,以及园区汇聚/核心交换机,普遍支持Jumboframe帧长不小于10K字节。因此,由于增加VXLAN头部而导致IP报文分片的情形,是不可能发生。

那么,万一Jumbo Frame特性没有打开呢?很简单,在网络调试调测阶段,这种低级问题会导致VXLAN基本功能不通,从而立即被发现,并得以解决。

而交换机如果支持IP分片重组,会导致两个后果:

  1. 直通转发功能失效。直通转发是为了在数据中心网络中降低延时,收到数据包头以后,立即开始根据数据包头内容转发数据包,而无需收取整个数据包。这样,可以大大减少转发时延,并且让大包和小包的转发时延基本一致,降低网络抖动。直通转发唯一存在的风险是,有可能将极少数错包转发到下一跳。而IP分片重组必须收取所有IP数据包后重组再发送,这会导致数据包转发时延增加。甚至,会造成TCP乱序——后发的报文先被收到。这会触发TCP流控机制,使得拥塞窗口增加,从而让整体吞吐下降——最严重的情况下会让数十MB的RDMA数据块重传。
  2. 隐藏潜在的问题。由于IP分片重组掩盖了错误的MTU设置,在调试调测阶段发现不了问题,业务上线后传统手段又难以排查这种错误带来的时延、抖动增加以及RDMA性能下降,为网络管理员增加大量额外的工作。

因此,报文分片重组是一个没有任何意义的特性,只会增加局域网的故障率,降低数据传输效率,浪费用户宝贵的投资。

另一个ENP宣称的绝学是iPCA —— 包守恒算法。

我们在上一个专题《局域网SDN硬核技术内幕》中提到了,iPCA是Marvell发明的。iPCA的原理是在数据包的IP报文保留字段中,做特定标记,然后在各节点中汇总带有特定标记的数据包数量,以统计丢包个数。但是,iPCA的假设,是IP网络中总的数据包是守恒的,流入IP网络的数据包个数一定等于流出IP网络的数据包个数。大家想一想,这个结论正确吗?

当然是不正确的。

我们看看MPLS 跨域Option C的场景。

如图,在AS100和AS200之间,通过Option C实现MPLS VPN跨域,需要在两个AS的RR之间建立MP-EBGP。

EBGP是基于TCP连接的。从红色框的RR到绿色框的RR之间会建立TCP连接,同步带有VPNv4的路由信息。那么,无论是AS100,还是AS200,都有新生成的流出AS的数据包,也有流入AS终结于AS中的数据包!

也就是说,即使在运营商AS域这么大的IP网络范围内,IP数据包都是不守恒的,基于“IP包守恒”的丢包检测算法从何谈起呢?

因此,iPCA是一个自欺欺人的特性,在实践中也缺乏真实应用案例,是缺乏对技术热爱,缺乏对市场规律敬畏的产物。

最后一个所谓的绝学是NetStream。

NetStream本质上是基于自定义模板,提取报文字段并进行统计分析的功能。在局域网中,绝大多数报文需要提取的字段只有以太网MAC地址、IP地址、TCP/UDP端口,sflow就可以满足这方面需求。

而对于高精度统计、诊断丢包等需求,NetStream的采样率和实时性仍然不够。我们更需要的是INT这样的深入交换芯片内部,颗粒度细化到各队列缓存使用量的诊断手段,以及全局大数据分析手段来定位问题。

事实上,在大规模园区与数据中心网络内部,NetStream使用极少。该特性主要用于基于Segment Routing的SDWAN中,流量的采集监控。因此,这个特性引入局域网络,几乎没有任何实用价值。

原来,魔教教主虽已自宫,却并未练就神功,反而荒废了自身基本功能,传为了江湖的笑谈。

这期的一个小问题:

在数据中心网络中开启VXLAN功能时,如果不希望启用交换机的Jumbo Frame功能,服务器MTU和TCP MSS最大应当设定为多少?

上期遗留的问题:

什么真实业务场景需要处理拆除两层MPLS标签+拆除QinQ+拆除VXLAN数据包头的操作?

答案:运营商或超大型互联网企业,将骨干网光纤进行分光后对传输内容进行审计。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档