• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

MTU技术白皮书-6W100

手册下载

MTU技术白皮书-6W100-整本手册.pdf  (519.45 KB)

  • 发布时间:2024/7/22 19:31:47
  • 浏览量:
  • 下载量:

MTU技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2024 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。



概述

1.1  MTU的概念

MTUMaximum Transmission Unit,最大传输单元)是计算机网络中的一个重要概念,指的是网络中发送端可发送的单个报文最大字节数。MTU的大小对网络性能有直接影响,过大的MTU值会导致报文分片或被丢弃,增加报文处理开销;过小的MTU会导致报文的有效载荷减少,导致传输效率低下。

1.2  MTU的作用

在不同的网络技术与运行协议中,报文的最优大小是变化的,这就要求MTU值的灵活设置。合理调整MTU值至关重要,因为这直接影响到网络的数据传输效率和稳定性。一个适宜的MTU值能够减少数据包的分片需求,提高带宽利用率,同时降低延迟和丢包的风险。因此,在设计和维护网络时,根据具体的网络环境和应用场景找到最适宜的MTU设置,是优化网络性能的关键步骤之一。


MTU的技术实现

2.1  MTU的分类

1所示,MTU根据表达的范围不同,主要分为两类。

·     IP MTU:指在不包含链路层头部和尾部的情况下,IP层报文的最大尺寸,这个概念主要应用于IP网络层。

·     MPLS MTU:指MPLS报文的最大尺寸,这个概念主要应用于MPLS网络。与IP MTU类似,MPLS MTU也是指除去链路层头部信息的报文大小,但它额外包括了MPLS标签的大小。在MPLS网络中,报文会被封装上一个或多个MPLS标签,这导致MPLS MTU要比传统的IP MTU大。

图1 IP MTUMPLS MTU示意图

 

2.2  MTU的分片机制

分片是为了避免单个报文超过链路的承载极限,IP协议在传输报文时,将一个完整的报文分为若干个分片进行分别传输的机制。MTU就规定了这个“承载极限”,超过MTU长度的报文通常会被分片或者丢弃,下面将分别介绍IP MTUMPLS MTU的分片机制。

2.2.1  IP MTU的分片机制

2所示,设备在发送IP报文时,判断报文是否分片、以及报文分片的过程为:

(1)     如果IP报文的长度未超过设定的IP MTU,则直接发送报文;如果IP报文的长度大于设定的IP MTU,则进行后续判断。

(2)     如果报文允许分片,则对报文按照IP MTU长度进行分片处理;如果不允许分片,则丢弃报文,如果设备是报文转发过程中的中间设备,则还会向报文的源端发送ICMP/ICMPv6协议消息,以通知对方报文太大且无法分片导致报文被丢弃。

在不同的协议栈中,报文是否允许分片的情况存在差异。

¡     对于IPv4报文,IP头中的“片偏移”字段中存在一个DFDon’t Fragment,不允许分片)标记位。该标记位置位(即取值为1)时,表明报文在传输过程中,设备不得对该报文进行分片;该标记位未置位(即取值为0)时,表明报文可以被分片。DF通常在使用Path MTU或为了安全性考虑需要确保数据完整性等场景被设置为1

¡     对于IPv6报文,没有DF标记位,但IPv6天然要求报文只能在报文发送的源端被分片,在转发过程中,中间设备不能对报文分片。

(3)     每一个分片都会携带原报文的IP头,设备发送分片后,这些分片将在目的设备中进行重组,恢复出完整的原报文。

图2 IP MTU分片机制

 

2.2.2  MPLS MTU的分片机制

MPLS标签栈位于链路层帧头和网络层报文头之间。在MPLS转发过程中,即使原始IP报文的长度没有超过设定的IP MTU,一旦添加了MPLS标签,报文的总长度可能会超过链路层允许的范围,从而导致报文无法正常转发。为了防止这种情况,设备上定义了MPLS MTU,在进行MPLS转发时将增加标签后的报文长度与MPLS MTU比较。

3所示,设备在封装MPLS报文前,判断报文是否分片、以及报文分片的过程为:

(1)     如果IP报文加MPLS标签栈的长度未超过设定的MPLS MTU,则直接发送报文;如果IP报文加MPLS标签栈的长度大于设定的MPLS MTU,则进行后续判断。

(2)     如果报文允许分片,则对报文除了MPLS标签栈的部分按照通过MPLS MTU换算而来的IP MTUMPLS MTU减去标签长度)进行分片处理;如果不允许分片,则为IP报文添加MPLS封装后直接发送报文。

在不同的协议栈中,报文是否允许分片的情况存在差异。

¡     对于IPv4报文,IP头中的“片偏移”字段中存在一个DFDon’t Fragment,不允许分片)标记位。该标记位置位(即取值为1)时,表明报文在传输过程中,设备不得对该报文进行分片;该标记位未置位(即取值为0)时,表明报文可以被分片。DF通常在使用Path MTU或为了安全性考虑需要确保数据完整性等场景被设置为1

¡     对于IPv6报文,没有DF标记位,但IPv6天然要求报文只能在报文发送的源端被分片,在转发过程中,中间设备不能对报文分片。

(3)     每一个分片都会携带原报文的IP头,设备对IP报文分片后,为每一个分片封装相同的MPLS标签,然后发送这些分片。这些分片将在目的设备中进行重组,恢复出完整的原报文。

图3 MPLS MTU的分片机制

 

MTU的配置与协商

3.1  MTU的配置与协商

3.1.1  配置接口的IP MTU

目前,网络管理员可以在各类型的接口下,通过mtu sizeip mtu sizeipv6 mtu size命令,配置它们发送报文时的IP MTU。其中mtu size命令对接口发送的IPv4报文和IPv6均生效,ip mtu size命令仅对接口发送的IPv4报文生效,ipv6 mtu size命令仅对接口发送的IPv6报文生效。

在接口下配置的IP MTU,仅影响该接口发送IP报文的大小。

3.1.2  配置MPLS MTU

1. 配置接口下的MPLS MTU

在接口视图下可以通过mpls mtu命令配置接口的MPLS MTUMPLS MTU会影响所有本地转发出去的MPLS报文,包括IPMPLS出的报文和MPLSMPLS出的报文。

如果没有通过mpls mtu命令配置接口的MPLS MTU,则根据ip mtu命令配置的IP MTUMPLS报文进行分片;如果没有配置ip mtu命令,则根据mtu命令配置的接口MTUMPLS报文进行分片。根据IP MTU和接口MTUMPLS报文进行分片的方法为:移除MPLS报文的标签栈,按照IP MTU或接口MTUIP报文进行分片,分片后将被移除的标签栈添加到每个分片上。

配置接口的MPLS MTU时,需要注意:

·     不建议将接口MPLS MTU值设置过小,否则容易导致报文分片从而影响性能,严重时甚至出现丢包现象。

·     同一个接口上,配置的MPLS MTU值不能大于生效的IP MTU值,否则有可能导致数据转发失败。

·     如果MPLS报文内封装的是L2VPN报文或IPv6报文,则即使报文长度大于MPLS MTU,也会不分片直接发送该报文,报文能否发送成功由接口的实际情况决定。

2. 配置MPLS L2VPN中的MPLS MTU

MPLS L2VPN分为VPLSVPWSVPLS为点到多点L2VPN业务,VPWS为点到点L2VPN业务。VPLS业务和VPWS业务均支持单独配置MTU值,其MTU值表示PW所能够承载的最大带标签报文长度。VPLS支持在VSI视图下通过mtu命令配置VSI下所有PWMTU值,即VSI下所有PW所承载的报文均需要满足MTU限制。VPWS支持在交叉连接和交叉连接组自动发现视图下通过mtu命令配置MTU值,该MTU值对交叉连接和交叉连接组自动发现视图下建立的所有PW所承载的报文进行MTU限制。

配置VPLSVPWSMTU时,需要注意:

·     建立PW的两端PE设备上需要为PW配置相同的MTU值,否则PW将无法UP

·     建议合理配置PWMTU值,若进入PW的报文长度大于配置的MTU值,PW将会对该报文进行丢弃处理。

·     建议配置的MTU值不能大于网络中间设备的接口MTU值,否则有可能会导致数据转发失败。

3.1.3  RSVP-TE协商Path MTU

RSVPResource Reservation Protocol,资源预留协议)用于在网络中预留资源以满足服务质量(QoS)的要求。在RSVP-TERSVP Traffic Engineering)的环境下,它还支持通过协商PMTUPath MTU,路径最大传输单元)来优化数据传输。协商出来的PMTU用来确保在RSVP-TE建立的CRLSPConstraint-based Routed Label Switched Paths,基于约束路由的LSP)上传输的数据包,不会因为超过任何一台网络设备的处理能力而被丢弃或被分片。

4所示,RSVP-TE协商Path MTU的过程为:

(1)     Ingress节点在Path消息中携带接口的MTUMPLS TE隧道的Ingress节点向下游发送Path消息时,在Path消息的Adspec对象中携带隧道对应的物理出接口的MTUMTU值为物理出接口下通过mtu命令配置的接口MTU

(2)     中间节点协商MTUMPLS TE隧道途经的各个节点接收到Path消息后,它们会检查Adspec对象中的MTU值,将这个值与隧道对应的本地物理出接口下配置的接口MTU进行比较。如果本地接口MTU小于Adspec中的MTU值,则Adspec对象中的MTU值会被更新为较小的本地接口MTU;否则,保持Adspec中的MTU值不变。

(3)     Egress节点获取到Path MTU:经过修改的Path消息继续沿着MPLS TE隧道传输至Egress节点。Egress节点接收到的Path消息中,Adspec对象携带MTU就是沿途路径上遇到的最小MTU,即Path MTU

(4)     通过Resv消息Path MTU通告给Ingress节点Egress节点向上游发送Resv消息,在Resv消息的FLOW_SPEC对象(流规格对象)中携带协商出来的Path MTU这样,Ingress节点就可以知道沿途路径上允许的最大数据包大小,即Path MTU

图4 RSVP-TE协商Path MTU过程示意图

 

RSVP-TE协商出的Path MTU值被用作RSVP-TE建立的CRLSPIP MTU,用来指导数据包的分片处理。以适应网络中的MTU限制,确保数据包顺利传输。

3.1.4  IGP协商IP MTU

1. OSPFIP MTU协商

OSPF DD报文的格式如5所示。缺省情况下,设备上的OSPF接口发送DD报文时不使用接口的实际生效MTU值,而是用0代替。同时,OSPF接口不检查接收到的DD报文携带的MTU值,使得两端设备的接口MTU值不同也可以建立邻居关系。

如果待建立邻居关系的设备上的OSPF接口检查接收到的DD报文携带的MTU值,则各接口发送的DD报文携带的MTU值必须相同,否则邻居关系无法达到Full状态。

图5 OSPF DD报文格式

 

2. OSPFv3MTU协商

OSPFv3 DD报文的格式如6所示。缺省情况下,设备上的OSPFv3接口发送DD报文时使用接口的实际MTU值。同时,OSPFv3接口会检查接收到的DD报文携带的MTU值,如果两端设备的接口MTU值不同,则邻居关系无法达到Full状态。

图6 OSPFv3 DD报文格式

 

3. IS-ISMTU协商

IS-IS协议报文直接封装在链路层报文头后面,无法实现协议报文在IP层的自动分片。因此,运行IS-IS的设备与对端设备建立邻居关系时,双方会进行MTU大小的通信协商,来保证建立邻居双方接口MTU的一致性,从而避免双方MTU大小不一致导致较小的PDU可以通过,但是较大的PDU无法通过。因此,建立IS-IS邻居关系的两端设备的接口MTU必须一致,否则无法建立IS-IS邻居关系。

在实际网络环境中,多数设备的接口MTU是相同的,如果频繁发送达到接口MTU大小的Hello报文,会造成网络资源的浪费。为了解决此问题,IS-IS提供了发送不加入填充CLV的功能,即发送小型Hello报文。

3.1.5  配置SRv6网络中的MTU

为了合理的控制SRv6报文长度,SRv6网络中不仅存在接口IPv6 MTU,还引入专门的MTU

·     SRv6 Path MTU:专门用于控制源节点上封装的SRv6报文长度的MTU

·     SRv6 Reserved MTU:用于在源节点上,为SRv6报文转发过程中可能增加的报文头预留的MTU余量。

1. SRv6网络MTU设置的挑战

7所示在SRv6网络中,通过SRv6隧道转发原始报文时,SRv6源节点会为原始报文封装IPv6报文头,形成SRv6报文:

·     如果报文通过SRv6 BE方式转发,则在原始报文外层封装的IPv6报文头至少包含IPv6基本报文头,不含SRHSegment Routing Header,段路由扩展头)

·     如果报文通过SRv6 TE方式转发,则在原始报文外层封装的IPv6报文头至少包含IPv6基本报文头以及SRHSegment Routing Header,段路由扩展头)

由于新增IPv6报文头的影响,SRv6源节点封装后的报文长度可能变得非常长。如果网络中接口IPv6 MTU设置的较小,则SRv6源节点会根据链路上最小的接口IPv6 MTU将原始报文被分成多个片段,每个分片都携带了IPv6报文头,影响链路的带宽利用率。

图7 SRv6源节点报文封装示意图

 

同时,IPv6报文在转发路径上的中间节点(含EndpointTransit节点)转发时不允许进行报文分片,即IPv6报文头+Payload载荷报文的总长度超出了接口的IPv6 MTU值,这些中间节点不会将IPv6报文分片,而是直接将过长的SRv6报文丢弃,并发送一个ICMPv6差错报文告知SRv6源节点中间节点的接口IPv6 MTU值,要求SRv6源节点重新按照该IPv6 MTU值封装报文。因此,接口IPv6 MTU值较小时,还可能出现报文重新封装和重传过程,影响了整个链路的转发效率。

当然,管理员可以将某些节点接口的IPv6 MTU值设置得更大,但这样操作既破坏了全局IPv6 MTU的一致性,又增加了网络规划设计的难度。如果管理员将全局所有节点的接口IPv6 MTU调整变大来适应SRv6封装,则可能出现超长报文,超长报文可能无法被接收端正常接收、报文的转发延迟增加,数据位的错误风险增大导致重传,因此,过大的接口IPv6 MTU也会影响转发效率。

基于上述原因,在SRv6组网场景中,引入了SRv6 Path MTU来专门控制SRv6报文长度。

2. SRv6 Path MTU

SRv6 Path MTU不影响非SRv6报文,也不会对接口IPv6 MTU的机制产生影响。

SRv6源节点上配置SRv6 Path MTU后,在封装报文时,将计算封装后的IPv6报文头+Payload载荷的总长度:

·     如果总长度未超出SRv6 Path MTU和报文转发出接口的IPv6 MTU之间的较小值,则正常进行SRv6封装和转发。

·     如果总长度超出SRv6 Path MTU和报文转发出接口的IPv6 MTU之间的较小值,则SRv6源节点将对Payload载荷部分即原始报文(原始报文IPDF=0,允许分片操作)合理分片,分片后的报文再进行SRv6封装。从而保证最终封装的SRv6报文始终小于所有节点接口的IPv6 MTU

SRv6 Path MTU只需部署在SRv6源节点上,对SRv6报文的封装过程生效,对于中间节点无意义。通过SRv6 Path MTU和出接口的IPv6 MTU可以共同限制SRv6报文长度。一般而言,管理员将SRv6 Path MTU设置的比接口的IPv6 MTU略小,保证原始报文在封装40字节的IPv6基本报文头和一定长度的SRH扩展头之后,SRv6报文的IPv6报文头+Payload载荷报文的总长度仍小于接口的IPv6 MTU

SRv6 TE Policy中还可以指定显式路径Segment List粒度的SRv6 Path MTU,使得SRv6报文封装控制更加精细。

3. SRv6 Reserved MTU

8所示,在SRv6组网场景中,中间节点也可能存在一些特殊情况导致原本的SRv6报文长度进一步增加。例如,SRv6报文缝接场景,即SRH中的某个SID等于转发路径上Endpoint节点上的Binding SIDBinding SID所代表的Segment List将采用EncapsInsert方式封装到SRv6报文中。又如,SRv6 TI-LFA FRR场景,转发路径上的节点触发TI-LFA FRR倒换,Repair List将被封装到SRv6报文中。一旦出现了这类特殊情况,SRv6源节点上设置的SRv6 Path MTU可能就不再合适,并且中间节点转发SRv6报文时,仍可能出现IPv6报文头+Payload载荷报文的总长度超出接口的IPv6 MTU的情况。

图8 中间节点额外增加了SRv6报文长度示意图

 

为了解决上述问题,SRv6组网中引入了一个参数——预留的MTUReserved MTU)。Reserved MTU是一个工程经验值,大约等于SRv6报文缝接或TI-LFA FRR额外增加的IP报文头长度。在源节点上设置SRv6 Reserved MTU来进一步降低SRv6报文封装后的长度,为中间节点额外增加的报文长度预留空间。

SRv6 Path MTUSRv6 Reserved MTU和接口IPv6 MTU在不同产品上生效机制略有差异:

·     对于某些产品,SRv6源节点发送的SRv6报文的大小同时受SRv6 Path MTU减去Reserved MTU的值和接口IPv6 MTU控制,实际生效的MTU是二者的较小值。例如,SRv6 Path MTU配置为1700Reserved MTU配置为50,则先将SRv6 Path MTUReserved MTU相减,得到1650

¡     如果接口的IPv6 MTU1650,则SRv6源节点实际采用的MTU1650

¡     如果接口的IPv6 MTU1650,则SRv6源节点实际采用的MTU是接口的IPv6 MTU

·     对于某些产品,SRv6源节点先比较SRv6 Path MTU接口IPv6 MTU,取二者较小值。实际生效的MTU是较小值减去Reserved MTU再减去64字节。例如,SRv6 Path MTU配置为1600Reserved MTU配置为100

¡     如果接口的IPv6 MTU1600,则源节点实际采用的MTUSRv6 Path MTU减去Reserved MTU再减去64字节,即1436

¡     如果物理接口的IPv6 MTU1600,例如1500,则源节点实际采用的MTU是物理接口的IPv6 MTU减去Reserved MTU再减去64字节,即1336

注意

SRv6 Path MTU减去Reserved MTU要求大于等于1280字节,如果配置后二者相减小于1280字节,实际生效也以1280字节为准。

 

3.2  MTU配置生效的优先级

在配置MTU时,不同MTU配置的影响范围可能会产生重叠,此时设备仅会以其中某个MTU配置为准。MTU配置的具体优先级如1所示。

表1 MTU配置生效的优先级

MTU功能名称

优先级说明

配置接口的IP MTU

接口下如果同时配置了mtu sizeip mtu sizeipv6 mtu size命令,则接口发送报文时的IP MTUip mtu sizeipv6 mtu size命令的配置为准

手动设置MTU与路径MTU探测

如果二者同时配置,则以两者设置的最小值为准

配置接口的MPLS MTU

接口下配置的MPLS MTU值不能小于该接口下生效的IP MTU值,否则可能导致数据转发失败

配置L2VPN网络的MPLS MTU

VSI或交叉连接配置的MTU值不能大于网络中间设备的接口MPLS MTU值,否则有可能会导致数据转发失败


 

MTU扩展

4.1  MTUTCP MSS

TCP协议中,MSSMaximum Segment Size,最大报文段长度)是一个重要的概念,它定义了TCP传输的单个数据段可以包含的最大数据量,不包括TCP头部和IP头部,如9所示。

图9 TCP MSS示意图

 

TCP MSS的目的与MTU类似,也是为了优化网络传输,减少分片,提高效率。在TCP握手阶段,双方交换各自的MSS值,每一方都会告知对端它们可以接受的最大MSS值,对方会记录下来。后续在发送TCP报文时,设备会限制TCP报文的大小不超过对端的MSS值。如果收到了大于TCP MSS长度的报文,设备需要按照分片机制对报文进行分片或丢弃处理。

TCP MSS的缺省取值通常是基于设备接口的IP MTU值减去固定的IP头和TCP头的长度来确定。例如,例如,如果IP MTU1500字节,考虑到IP头(通常20字节)和TCP头(通常20字节),那么MSS值会被缺省设置为1460字节。

TCP MSS值也可以手动配置,但如果TCP MSSIP MTU的配置产生冲突,例如在同一接口下TCP MSS设置地比IP MTU更大,则设备将两者中的更小值作为生效值。例如,在一个接口下,如果TCP MSS被设置为1600字节,而IP MTU被设置为1500字节,则此接口实际生效的TCP MSS146015002020)字节。

选择合适的MSS对于网络性能至关重要。如果MSS设置得过大,超过了网络路径中某个节点的MTU,就会导致IP层分片,这会增加重传的可能性,并降低网络效率。反之,如果MSS设置得过小,虽然可以避免分片,但会增加因为头部开销所占比例过高而导致的网络效率降低。因此,合理设置MSS可以减少网络延迟,提高数据传输效率。

4.2  MTUJumbo

以太网的标准缺省MTU值为1500字节,这个标准在以太网发展的过程中一直未发生变化,随着可编程网络、软件定义网络等技术的发展,单个报文中携带的控制字段长度呈爆炸性增长,1500字节的MTU值将导致报文数量激增,为此带来的额外开销十分影响网络传输的效率。于是出现了巨型(Jumbo)帧的概念。

Jumbo帧最初是由Alteon Networks1990年代中期推出的,用于其以太网交换机产品,目的是为了提高网络吞吐量并降低CPU的处理负担。随着网络带宽的需求增加,尤其是在数据中心和企业后端网络中,Jumbo帧逐渐成为提高数据传输效率的一种有效手段。

Jumbo帧通过允许MTU被设置为大于1500字节的值,从而减少每传输单位数据所需的帧数量。这样不仅减少了头部开销的总量,还减少了因处理大量小帧而产生的中断频率,从而降低了网络设备的CPU使用率。对于大量数据传输需求较高的应用,如大规模文件传输、备份操作或视频流,使用Jumbo帧可以显著提升网络传输效率。

软件转发、硬件转发与MTU

H3C设备进行软件转发时(例如协议报文转发以及基于策略转发),报文长度受各协议功能配置的MTU的影响,过长的报文可能会被分片或丢弃。

而在进行硬件转发时(例如常见的数据报文查表转发),报文长度不受各协议功能配置的MTU的限制,设备可以发送任意长度的报文。但在接收报文时,如果报文长度超过了链路能承载的Jumbo帧大小(例如99649416字节等,以设备的实际情况为准),设备会丢弃该报文。

MTU取值规划

6.1  手动设置MTU

6.1.1  MTU缺省值

IEEE 802.3标准开始,1500字节就被确定为以太网数据帧数据部分的最大长度。这一标准对整个网络领域的设备和协议涉及产生了深远影响,并沿用至今。

先进的网络需求、技术发展、应用场景的演变以及对传输效率的要求提高使得报文长度越来越大,因此,目前大部分设备上接口的IP MTUMPLS MTU缺省值为IEEE 802.3标准定义的最大长度——1500字节。使用此缺省值可以在保持以太网数据传输兼容性的同时,尽可能地保障报文的完整传输,以提高传输效率。

某些特殊接口下的MTU缺省值会小于1500,是考虑到此类接口通常要增加特殊封装内容以后才发送报文:例如,VSI虚接口的MTU缺省值通常为1444,目的是内层报文增加VXLAN报文头(外层VXLAN8字节+外层UDP8字节+外层IP20字节或40字节)后报文长度仍不超过标准规定的最大长度1500

考虑到很多情况下报文长度仍需超过1500字节,因此,在如下场景中推荐直接使用缺省的MTU值:

·     家庭网络和小型园区网络:此类网络通常配置简单,1500字节的MTU值足够满足日常需求。

·     不确定路径MTU的互联互通场景:1500字节是互联网普遍使用的MTU值,如果不知晓报文转发过程中各设备的具体MTU值设置,使用缺省的1500字节MTU值可以尽可能地保障兼容性和互操作性。

6.1.2  手动调整MTU

在如下场景中,建议手动调整MTU至大于1500字节的值:

·     数据中心网络:数据中心的数据传输量十分巨大,为了尽可能地提高数据传输效率,建议直接将数据中心内部网络设备的MTU值都调整为允许设置的最大值。

·     高带宽需求或者内部网络:在高带宽需求网络中,较大的MTU可以避免报文分片,提高传输速率;在控制严格、内部配置一致的网络中,可以使用较大的MTU值以提高传输效率,而不必担心安全风险。

在如下场景中,建议手动调整MTU至小于1500字节的值:

·     老旧网络环境:老旧设备可能不支持1500字节的MTU值,因此减少MTU值设置可以保障报文顺利传输。

·     VPN和多重封装网络:在此环境中减少MTU值可以避免由于封装开销导致报文长度大于1500字节,从而造成分片或丢包。

·     安全考虑:减少MTU值可以防止网络受到超大数据包攻击。

6.2  路径MTU探测

路径MTU探测(Path MTU Discovery)是一种网络通信机制,用于确定报文在源端和目的节点之间传输路径的MTU最小值,从而避免IP分片,减少资源浪费。

10所示,路径MTU探测的过程为:

(1)     报文的源端一开始假设一个较大的MTU来发送报文,如果是IPv4报文,还会将DF置位。

(2)     报文传输过程中,如果某个设备的MTU小于报文长度,则会丢弃报文并向源端发送ICMP/ICMPv6协议消息,通知报文因大小超过本地的MTU而被丢弃,并且其中包含了自身的MTU值。

(3)     源端收到ICMP/ICMPv6错误消息后,降低自身MTU值为该消息中的MTU值,并重新发送更短的报文。

(4)     上述过程可能重复多次,直到找到一个可以成功将报文传输到目的节点的MTU大小,此MTU也是报文传输路径中所有节点的最小MTU值。

图10 路径MTU探测过程

 

为了避免手动规划MTU值导致的潜在分片和丢包风险,可以使用路径MTU探测功能帮助设备自动设置MTU值,帮助确保了数据包以最有效的方式传输。

典型应用场景

7.1  数据中心互联组网中的MTU取值规划

11所示,数据中心的边缘设备为EDEdge Device,边缘设备)。ED之间建立VXLAN-DCI隧道,该隧道采用VXLAN封装格式。ED与数据中心内部的VTEP建立VXLAN隧道。EDVXLAN隧道或VXLAN-DCI隧道上接收到报文后,解除VXLAN封装,根据目的IP地址重新对报文进行VXLAN封装,并将其转发到VXLAN-DCI隧道或VXLAN隧道,从而实现跨数据中心之间的互通。

图11 数据中心互联典型组网图

 

VXLAN网络中,尽量不要对VXLAN报文进行分片,因为有些设备在收到分片的VXLAN报文后可能会直接丢弃掉报文,或者部分中间设备不支持分片,这些情况都会导致跨数据中心的数据丢失,从而影响数据中心的数据传输稳定性。

因此,需要进行MTU取值规划,使得报文在经过传输路径中的每一跳时,长度都不超过这一跳的MTU值。推荐网络中每一跳的MTU值都设置为最大值,以获得最高的传输效率,并修改服务器发送的报文大小,使其在增加VXLAN封装(外层VXLAN8字节+外层UDP8字节+外层IP20字节或40字节)后,长度仍不超过传输路径上MTU的最小值。

参考文献

·     RFC 894A Standard for the Transmission of IP Datagrams over Ethernet Networks

·     RFC 1191Path MTU Discovery

·     RFC 2460Internet Protocol, Version 6 (IPv6) Specification

 

新华三官网
联系我们