上回说到,自从黑木崖大规模招降纳叛,在江湖上混不下去的星宿老仙丁春秋也投靠了黑木崖。
星宿老仙有三大绝学:马屁、法螺、厚颜。
黑木崖的辟邪剑法也对外宣称三大绝学: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分片重组,会导致两个后果:
因此,报文分片重组是一个没有任何意义的特性,只会增加局域网的故障率,降低数据传输效率,浪费用户宝贵的投资。
另一个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数据包头的操作?
答案:运营商或超大型互联网企业,将骨干网光纤进行分光后对传输内容进行审计。