AI 助理
备案 控制台
文档
产品文档

设置巨型帧和修改MTU

更新时间:
一键部署
产品详情
相关技术圈
我的收藏
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

网络最大传输单元MTU(Maximum Transmission Unit)决定了网络上单次可传输数据包的最大尺寸,包含IP数据包头和载荷,不包含以太网头部。理论上MTU越大,可在单个数据包中传递的数据越多,网络通信越高效。本文介绍巨型帧相关功能以及如何修改ECS实例网卡的MTU。

巨型帧(Jumbo frames)

巨型帧是指有效负载超过IEEE 802.3标准所限制的1500字节的以太网帧,增大的有效载荷百分比有助于提高链路利用率,获得更好的网络性能。阿里云支持8500字节的巨型帧,允许您发送8500字节载荷的以太网帧。

当前所有ECS实例都支持1500 MTU,8代主售实例规格族(g8i/c8i/r8i/g8a/c8a/r8a/g8ae/c8ae/r8ae/g8y/c8y/r8y)还可以支持8500 MTU。更多信息,请参见 实例规格族。

注意事项

能否使用巨型帧进行网络通信还需要考虑到网络链路以及对端主机的MTU限制,超过MTU限制的数据包将会被阿里云转发组件分片或丢弃。更多信息,请参见 超过链路MTU时的处理。

重要

目前已知在以下场景使用巨型帧可能存在连通性或性能问题:

  • 使用非TCP(UDP/ICMP)的巨型帧访问云服务或者目的主机使用负载均衡产品时,可能由于分片报文无法被负载均衡器正常转发而丢弃,造成网络不通的风险。更多信息,请参见 云网络产品MTU限制。

  • 使用非TCP(UDP/ICMP)的巨型帧在MTU不匹配的场景下进行通信时,可能因为分片而导致网络性能下降。更多信息,请参见 ECS互访链路MTU限制和 云网络产品MTU限制。

因此,建议在使用支持巨型帧的ECS实例部署业务之前,先测试业务场景下是否存在因为MTU不匹配带来的连通性和性能问题,并管理好这些场景下的数据包尺寸以降低不必要的性能损失。

开启/关闭巨型帧

您可以通过以下方式开启、关闭ECS实例的巨型帧。

  • 方式一:

    在 实例创建页,选择支持巨型帧的实例规格时,可选择开启、关闭巨型帧。

    image

  • 方式二:

    实例创建完成后,在ECS实例操作列开启、关闭巨型帧。

    1. 登录 ECS管理控制台。

    2. 在左侧导航栏,选择实例与镜像 > 实例

    3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

    4. 找到已创建的支持巨型帧的实例,在操作列选择icon1 > 网络和安全组 > 修改巨型帧配置。

    5. 修改巨型帧配置对话框,根据实际需要开启、关闭巨型帧。

      jumbo.png

  • 方式三:

    通过调用 ModifyInstanceAttribute接口开启、关闭巨型帧。

通过方式二或者方式三开启、关闭巨型帧后,根据操作系统的不同,您还需要完成如下操作才能使配置生效:

  1. 重启ECS实例。

  2. (可选)登录系统内部修改MTU配置,仅Windows系统开启巨型帧场景需要完成该操作。具体操作,请参见 修改ECS网卡MTU。

    说明
    • Linux系统的DHCP服务器会自动获取MTU,重启后无需手动修改即可在实例内部看到开启或者关闭后的MTU(开启8500、关闭1500)。

    • Windows系统关闭巨型帧后,重启后无需再登录系统内部手动修改MTU配置即可生效(即MTU为1500)。

ECS互访链路MTU限制

在阿里云网络内,链路默认支持1500 MTU,对于不支持巨型帧的ECS实例通信时,只需要关注VPN网关等网络组件自身的MTU限制即可。更多信息,请参见 云网络产品MTU限制。

支持巨型帧的ECS实例作为源主机时,目的主机在不同通信场景下的链路最大MTU限制如下表所示:

目的主机

允许的最大MTU

“同VPC内” 或 “同region对等连接的VPC内” 开启巨型帧的ECS实例

8500

“同VPC内” 或 “同region对等连接的VPC内” 未开启巨型帧的ECS实例

1500

“通过CEN实现互通的VPC内”任意ECS实例

“通过高速通道连接的线下IDC内”的主机

“通过EIP、PIP访问”的外部主机

更多信息,请参见 VPC对等连接概述、 VPC连接。

重要

对于超过链路最大MTU限制的数据包,阿里云转发组件会依据RFC标准对报文进行分片或协商,但是这只能保证连通性,不能保证网络通信的性能。因此在链路最大MTU为1500的通信场景下,尽量避免使用巨型帧进行UDP、ICMP通信。对于阿里云上转发组件在数据包大于链路最大MTU场景下的行为,请参见 超过链路MTU时的处理。

云网络产品MTU限制

除此之外,在使用非TCP协议(UDP、ICMP)访问特定网络产品时,需要注意不同网络产品自身的MTU限制。当前阿里云云产品普遍不支持巨型帧,部分网络产品的最大MTU限制如下表所示:

网络产品

支持的最大MTU

说明

NAT网关

1500

负载均衡(包括ALB、NLB、CLB)

ALB和CLB不支持分片报文的转发,因此使用UDP/ICMP进行通信时,需要严格控制源ECS实例发出的数据包的整包大小不超过1500。

云服务(OSS,RDS等)

由于流量会经过负载均衡产品,需注意负载均衡产品的限制。

全球加速

云防火墙

私网连接PrivateLink

VPN网关

1399

更多信息,请参见 MTU配置说明。

重要

对于超过云产品最大MTU限制的数据包,阿里云转发组件会依据RFC标准对报文进行分片或协商,但是这只能保证连通性,不能保证网络通信的性能。因此在云产品最大MTU为1500或1399的通信场景下,尽量避免使用巨型帧进行UDP、ICMP通信。对于阿里云上转发组件在数据包大于云产品最大MTU场景下的行为,请参见 超过链路MTU时的处理。

超过链路MTU时的处理

为了保证网络连通性,当数据包超过网络链路最大MTU限制时,阿里云转发组件会依据RFC标准进行如下处理。

TCP-固定MSS

在TCP建立连接期间,两个主机会为连接通告自己的 最大分段大小 (MSS),MSS表示系统在TCP分段(不包括TCP和IP标头)中接受的最大数据包长度。MSS与MTU的关系为:MSS = MTU - (IP标头 + TCP标头)。因此,为了保证数据包正常通信,MSS加上TCP标头(20字节)和IP标头(对于IPv4是20字节,对于IPv6是40字节),必须小于或等于网络链路的最大MTU限制。

对于MSS值与链路MTU不匹配时,阿里云网络转发组件会修改MSS值,从而降低同步序列编号SYN(Synchronize Sequence Numbers)数据包中发送者通告的MSS值或SYN-ACK数据包中接收者通告的MSS值。

非TCP(UDP/ICMP)-路径MTU发现(PMTUD)

对于非TCP数据包,缺乏类似TCP MSS的端到端MTU协商机制,阿里云转发组件通过PMTUD机制去帮助用户探测和协商MTU。

当数据包超过路径上的MTU限制时,按照标准,如果没有设置Don't-Fragment (DF) 位,转发组件需要对该数据包按照链路MTU进行分片转发;如果DF位为1,则该数据包会被直接丢弃。数据包被丢弃后:

  • 对于IPv4协议,转发组件会发送一个包含 Fragmentation-Needed (代码4,类型3)的ICMP数据包给发送方,指示链路可以接受的MTU。

  • 对于IPv6协议,转发组件会发送一个 Packet-Too-Long (类型2)的ICMPv6数据包给发送方,指示链路可接受MTU。

重要
  • PMTUD机制是以丢包为代价地协商MTU,只能保证网络连通性,构造和响应PMTU、以及对分片报文的处理,都会增加ECS系统内核与底层转发组件的资源开销,极大地降低性能。因此为了更好的性能,建议在MTU不匹配的通信场景下,通过 ModifyInstanceAttribute接口关闭巨型帧,并重启ECS实例生效。

  • ECS实例响应PMTUD机制依赖操作系统支持,要求操作系统支持且打开了PMTU响应(例如在Linux系统中,/proc/sys/net/ipv4/ip_no_pmtu_disc文件内容为0),同时实例的安全组配置也需要设置为放行ICMP流量以接收来自不同转发组件的ICMP协商数据包。

修改ECS网卡MTU

在阿里云上,一些通信场景或网络产品(例如VPN网关、流量镜像)对ECS发出的数据包大小有着更加严格的要求,需要您主动缩小数据包尺寸,以保证网络连通性或更好的用户体验。您可以通过如下操作方法来修改ECS网卡的MTU值,以满足这些产品的要求。

警告

修改ECS网卡MTU时,注意不要超过ECS实例支持的最大MTU上限(开启巨型帧时为8500,关闭或不支持巨型帧时为1500),否则可能导致网络不通。

  • Linux系统MTU会通过DHCP服务器自动获取,除了VPN网关等隧道场景,一般情况下无需手动修改网卡MTU。

  • Windows系统不支持DHCP自动获取MTU,在开启/关闭巨型帧时,才需要用此方法修改网卡MTU。

在本示例中,我们演示不同操作系统下修改ECS网卡MTU到1399字节。

Windows

以Windows Server 2019为例,操作步骤如下:

  1. 远程连接Windows实例。

    具体操作,请参见 通过密码或密钥认证登录Windows实例。

  2. 打开PowerShell。

  3. 执行以下命令,查看系统网卡设备列表。

    Get-NetAdapter

    回显类似如下所示,表示系统网卡的网卡名称为以太网。设备列表

  4. 执行以下命令,查看以太网网卡的MTU。

    Get-NetAdapterAdvancedProperty -Name "以太网"

    回显类似如下所示,表示以太网网卡当前的MTU值为1514。当前MTU

    说明

    Windows系统的MTU计算方式随驱动有差异,大部分场景下驱动计算MTU包含了14字节以太网头,因此默认值是1514。

  5. 执行以下命令,根据需要设置网卡MTU值。

    Get-NetAdapterAdvancedProperty -Name <"网卡名称"> -RegistryKeyword "*JumboPacket" -RegistryValue <目标MTU值>

    例如,将以太网网卡的MTU值设置为1413(包含以太网数据包头的14字节):

    Set-NetAdapterAdvancedProperty -Name "以太网" -RegistryKeyword "*JumboPacket" -RegistryValue 1413

    设置完成后,您可以执行Get-NetAdapterAdvancedProperty -Name "以太网" -RegistryKeyword "*JumboPacket"命令查看以网卡的MTU值是否生效。

    回显类似如下所示,以太网网卡的MTU值已变为1413(包含以太网数据包头的14字节)。

    修改后MTU

Ubuntu

以Ubuntu16.04为例,操作步骤如下:

  1. 远程连接ECS实例。

    具体操作,请参见 通过密码或密钥认证登录Linux实例。

  2. 执行以下命令,查看系统网卡以及网卡的MTU值。

    ifconfig

    回显类似如下所示,系统网卡eth0的MTU值为1500。查看网卡

  3. 执行以下命令,根据需要设置网卡MTU值。

    例如,设置eth0网卡的MTU为1399:

    mtu=1399
    ifconfig eth0 mtu ${mtu}
    echo "/sbin/ifconfig eth0 mtu ${mtu}" > /etc/network/if-up.d/setmtu && chmod a+x /etc/network/if-up.d/setmtu

    设置完成后,您可以执行ifconfig命令查看网卡的MTU值是否生效。

    回显类似如下所示,eth0网卡的MTU值已变为1399。

    修改后MTU值

CentOS

以CentOS 7.8为例,操作步骤如下:

  1. 远程连接ECS实例。

    具体操作,请参见 通过密码或密钥认证登录Linux实例。

  2. 执行以下命令,查看IP地址绑定的网卡,如eth0。

    ifconfig

    回显类似如下所示,系统网卡eth0的MTU值为1500。MTU改之前

  3. 执行以下命令,根据需要设置网卡MTU值。

    例如,设置eth0网卡的MTU为1399:

    mtu=1399
    echo "${mtu}" > /sys/class/net/eth0/mtu
    echo "echo \""${mtu}"\" > /sys/class/net/eth0/mtu">> /etc/rc.d/rc.local && chmod +x /etc/rc.d/rc.local

    设置完成后,您可以执行ifconfig命令查看网卡的MTU值是否生效。

    回显类似如下所示,eth0网卡的MTU值已变为1399。

    MTU改之后

常见问题

  1. 问题描述:使用巨型帧进行UDP/ICMP通信时,如果遇到性能急剧下降的情况,如何解决?

    解决方案:检查数据包分片情况,必要时关闭ECS实例的巨型帧。具体操作,请参见 开启/关闭巨型帧。

  2. 问题描述:ECS实例开启巨型帧的情况下,通过UDP/ICMP协议访问云服务(OSS、RDS等)时,遇到网络不通的问题,如何解决?

    问题原因:当前ECS访问云服务的流量会经过负载均衡产品,受限于负载均衡产品不支持分片报文的转发,因而可能网络不通。

    解决方案:缩小ECS访问云服务的消息大小,以确保数据包不分片,且尺寸小于等于1500字节。

  3. 问题描述:ECS实例无法接收到PMTU消息(ICMP差错报文),如何解决?

    问题原因:PMTU消息被安全组丢弃或者因为超过限速值丢弃。

    解决方案:

    1. 检查安全组设置是否放行ICMP流量。更多信息,请参见 查询安全组规则。

    2. 检查网络流量是否达到限速值。

上一篇:NetACC使用说明 下一篇:经典网络

    天下网标王新闻网站如何seo优化黄山网站优化排名报价多少东莞网络推广网站优化网站怎么把一个词优化上去邛崃网站排名优化靖歌阁网站优化云南网站优化公司排名南京网站优化最新行情中原区网站优化怎么做网站内容 优化温州企业网站排名优化苏州网站制作排名优化上海网站优化收费标准沁阳网站排名优化推荐恩施本地网站优化新乡网站推广优化哪家正规芝罘区个性化网站优化公司许昌整站网站优化系统临清网站优化多少钱湛江机电网站优化如何常州网站制作优化温州企业网站排名优化做搜索引擎优化网站迁安网站整站优化邯郸eo网站优化报价专注郑州网站优化贵定网站优化价格无锡网站搜索引擎优化外包优化网站新手注意事项网站优化公司的口号香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

    天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化