IP MTU导致VXLAN应用障碍的分析

2021-09-09 07:08韩英贤
江苏通信 2021年4期
关键词:分片城域网上联

韩英贤

中国电信股份有限公司无锡分公司

0 引言

无锡城域网启动城域网虚拟化试点,引入vBRAS资源池规模承载小流量、大并发的ITMS业务。vBRAS资源池集中部署,将硬件BRAS承载的ITMS业务迁移至vBRAS,ITMS割接需宽带接入网POP交换机(DCSW)通过VXLAN隧道将二层业务报文上送vBRAS。

某天,某局点覆盖OLT的ITMS业务从上联的硬件BRAS(国脉Ne40e、春申路M6000)割接到vBRAS后,部分终端(e8-C、天翼网关)TR069配置下发不成功,针对出现障碍的终端,ping大包(2000 bytes)不通。

1 分析过程

1.1 VXLAN隧道对IP MTU值的要求

由于障碍现象为对出现障碍的终端ping大包不通,初步判断有网络设备中继端口的IP MTU值设置过小,导致VXLAN报文分片。

VXLAN(Virtual eXtensible Local Area Network,虚 拟 扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内的扩展。VXLAN作为一种隧道技术,隧道的起始和终点为VTEP(VXLAN Tunnel End Point),VTEP对报文进行VXLAN隧道的封装和解封装;VXLAN可以将二层以太网帧封装在VXLAN隧道中,因此可以实现跨三层的二层组网,组建大二层网络。

VXLAN的报文格式如图1所示。

图1 VXLAN的报文格式

VXLAN报文是在原始二层以太网帧的外面加1个8字节的VXLAN头,包括24比特的VNI字段,用于标识不同的用户,实现用户之间的隔离。之后再加UDP头,这个UDP头的目的端口固定为4789,源端口通过原始以太网帧哈希后获得。在UDP外会加上IP头,源地址为源Vtep地址、目的地址为目的Vtep地址。

根据标准,VXLAN报文不能进行分片处理,如三层网络中的中间设备将VXLAN报文分片,Vtep会将分片后的报文丢弃。为了确保VXLAN报文不被中间设备分片处理,需要修改VXLAN隧道途经所有设备中继端口的IP MTU值。

目前,城域网内VXLAN报文的最大报文尺寸1558 bytes,测算依据如下:

原始二层以太帧的IP负荷(包括IP报头):1500 bytes

vlan头(包括qinq):8 bytes

原始二层以太帧头:14 bytes

vxlan头:8 bytes

UDP头:8 bytes

外层IP报头:20 bytes

为确保VXLAN报文不被分片,IP MTU值需根据最大VXLAN报文的大小设置。城域网的中继均为以太链路,以太端口的默认IP MTU值为1500 bytes。为确保VXLAN报文不分片,城域骨干网三层中继端口的IP MTU均设置为1600 bytes。

1.2 检查VXLAN报文沿途设备中继端口的IP MTU值

由于障碍现象为ping大包不通,因此首先检查VXLAN隧道途经设备端口的IP MTU值配置。

在宽带接入网POP交换机与vBRAS之间建vxlan隧道,检查沿途设备(包括POP交换机、硬件BRAS、CR、核心交换机、vBRAS)三层中继端口的IP MTU值,均为1600 bytes,没有问题,网络拓扑如图2所示。

图2 网络拓扑图

1.3 检查障碍终端的类型

由于只有部分终端不能下发配置,通过检查障碍终端类型确定是否和终端型号有关。通过TR069网管服务器、终端MAC地址等信息,发现障碍终端均为友华,但仅部分友华终端不能下发配置。

1.4 M6000关闭下联POP交换机承载vxlan报文的子接口

由于之前已迁移50万ITMS业务(POP交换机均上联华为硬件BRAS),未发现此类问题。本次迁移涉及的硬件BRAS包括一台中兴M6000。因此先在M6000上关闭下联POP交换机承载VXLAN报文的子接口,VXLAN报文均通过另1台硬件BRAS Ne40e转发,障碍终端ping大包能通,下发配置正常。确定障碍点在M6000。同时,由于POP交换机双上联2台硬件BRAS,通过Ne40e转发的VXLAN报文正常,因此该障碍只影响部分终端。

1.5 检查M6000中继端口的IP MTU配置

根据维护经验,对终端管理地址ping大包不通,原因均为VXLAN报文被分片,因此仍然怀疑VXLAN报文在M6000被分片。

在vBRAS侧对障碍终端ping大包,在障碍终端侧抓包,发现终端侧已正常收到ping的request报文,并已回应ping echo报文。说明从vBRAS侧发往终端的报文没有问题。尽管vBRAS侧不方便抓包,但仍可判断是终端回应的ping echo报文在M6000被分片。

再检查M6000相关中继的IP MTU值,由于MTU值只针对出方向有效,因此重点检查M6000上联CR的10GE端口。发现M6000的端口分别有三个MTU值,MTU(默认 9216 bytes)、IP MTU(默认 1500 bytes)、MPLS MTU(默认 1550 bytes),MTU针对二层以太帧,IP MTU已根据要求改为1600 bytes,MPLS MTU为默认值1550 bytes。将MPLS MTU也改为1600 bytes后,障碍终端大包能ping通,且配置下发正常。障碍解决。

1.6 障碍原因分析

M6000三层端口的MTU值设置区分为IP MTU和MPLS MTU,从POP交换机发出的VXLAN报文外层报头的目的地址为vBRAS loopback地址,该地址为/32掩码路由,通过isis宣告,M6000针对/32位IGP路由会自动生成MPLS标签,通过MPLS标签转发。因此VXLAN报文从M6000上联CR端口转发时,按照MPLS标签转发,是MPLS MTU值生效,IP报文增加MPLS标签(4 bytes)后,最大IP报文达到1554 bytes(ITMS原始二层报文中未含vlan标签),由于默认MPLS MTU为1550 bytes,所以VXLAN报文在出M6000时被分片,导致该报文在vBRAS侧被丢弃。华为硬件BRAS(Ne40e、Me60)端口三层MTU值不区分IP和MPLS报文,因此三层MTU值设置为1600 bytes后,对IP和MPLS报文均生效,所以经过华为硬件BRAS的VXLAN报文不会被分片。

只对友华终端有影响的原因,是由于友华终端Wan口IP MTU默认为1500 bytes,其余终端均为1492bytes,因此只有友华终端回应的报文经过M6000时,最大报文长度由于超过了M6000 默认MPLS MTU值而被分片。

2 解决措施

本次障碍的原因是VXLAN报文在M6000上联端口出方向被分片,导致分片报文在vBRAS侧被丢弃。与华为BRAS不同,中兴M6000上联端口的IP MTU和MPLS MTU需分别设置,尽管IP MTU已设置为1600 bytes,MPLS MTU仍为默认的1550 bytes。M6000在转发VXLAN报文时,默认为MPLS转发,基于IP转发的VXLAN报文最大为1550 bytes(上联端口报文不含vlan id),加上4 bytes MPLS标签后,报文最大长度为1554 bytes,超出了M6000默认的端口MPLS MTU,导致报文分片。

解决措施:城域网内所有M6000上联CR的中继端口MPLS MTU均设置为1600 bytes。

3 结束语

随着网络云化、BRAS池化、网业分离等城域网架构逐步调整,VXLAN技术将在城域网、数据中心得到广泛应用。由于VXLAN报文不能被分片的特性,在城域网、数据中心部署基于VXLAN的应用时,需重点关注MTU值的问题,包括IP MTU和MPLS MTU。在分析VXLAN报文长度和转发方式的基础上,需注意不同厂商设备的配置差异,建议现网部署时,网络设备三层端口的IP MTU和MPLS MTU均设置为1600 bytes。

猜你喜欢
分片城域网上联
上下分片與詞的時空佈局
IP城域网/智能城域网BGP收敛震荡的分析方法
牛年春联集锦
分片光滑边值问题的再生核方法
CDN存量MP4视频播放优化方法
基于模糊二分查找的帧分片算法设计与实现
面向FTTH业务的IP城域网优化改造设计
小试身手
IP城域网建设中技术及应用情况分析
城域网NAT444技术的应用研究