全部產品
Search
文件中心

Elastic Compute Service:網路傳輸單元最大值(MTU)

更新時間:Jul 16, 2026

網路傳輸單元最大值MTU(Maximum Transmission Unit)是指在特定網路通訊協定下,通過網路能夠傳輸的最巨量資料包大小。在網路傳輸中,當遇到大包傳輸效率低或頻繁發生分區重組問題的情境時,可能需要調整MTU以確保資料包能更高效、無損地通過網路中的路由器和鏈路層限制,從而提升網路傳輸速度和穩定性。

MTU的分類

根據不同的網路層和應用情境,MTU有幾種不同的分類,包括:

  • 鏈路層MTU

    鏈路層能夠傳輸的最巨量資料載荷(Payload)的大小。在乙太網路中,MTU通常為1500位元組,不包含乙太網路頭部。標準乙太網路幀大小 (1518位元組)= 目的MAC地址(6位元組) + 源MAC地址(6位元組) + 類型/長度欄位(2位元組) + 資料載荷(1500位元組) + 幀校正序列(4位元組)。

  • IP MTU

    網路層可以處理的最巨量資料包的大小,包括IP頭部和資料負載,不包括乙太網路幀的頭部和尾部。在阿里雲環境中,當我們提到MTU,通常指的是IP MTU。

    如果考慮到IP頭部和TCP頭部的最小尺寸(可能會因為選項的存在而更長),IP MTU (1500位元組)= IP頭部(20位元組)+ TCP頭部(20位元組)+ 資料載荷(1460位元組)。

  • 巨型幀MTU

    巨型幀(Jumbo Frames)是一些廠商提出的概念,它將標準乙太網路幀的大小擴充到了9K位元組。巨型幀包括二層以太幀頭及CRC部分,而IP MTU通常不包括這些部分。合理使用巨型幀可以減少網路中資料包的數量,提高網路效率。阿里雲支援8500位元組的巨型幀,詳細資料,請參見巨型幀(Jumbo Frames)

  • 路徑傳輸單元最大值PMTU

    路徑傳輸單元最大值PMTU(Path Maximum Transmission Unit)是指在兩個網路節點之間,不包括分區的情況下,能夠傳輸的最巨量資料包大小。這個路徑包括了從源節點到目的節點之間的所有網路裝置和鏈路,如路由器、交換器和通訊鏈路。

    路徑傳輸單元最大值發現PMTUD(Path MTU Discovery)是一種TCP/IP協議棧功能,用於動態發現路徑上允許的傳輸單元最大值PMTU,以避免資料包在傳輸過程中被分區。詳細資料,請參見路徑MTU發現機制(PMTUD)

影響MTU大小的因素

MTU的大小可以由多種因素決定,包括:

  • 網路裝置:不同網路裝置如路由器、交換器在設計時會規定其支援的最大的MTU值,這是由硬體能力決定的。如果網路中的某個裝置的MTU小於其他裝置,那麼整個網路通訊過程中的MTU大小將被該裝置所限制。

  • 網路類型:不同類型的網路連接,如乙太網路、無線網路等,對MTU的要求也不盡相同。例如,無線網路的MTU往往較小,因為無線訊號傳輸的穩定性相對較差,較大的MTU容易導致資料包的丟失和重傳。

  • 傳輸介質:不同類型的網路介質(如雙絞線、光纖、無線等)可能有不同的MTU限制。

  • 網路通訊協定:不同的網路通訊協定可能會對MTU有不同的要求,例如,乙太網路的標準MTU大小是1500位元組。

  • 應用需求:某些特定應用可能對MTU有特殊要求,這也會間接影響整體網路的MTU。

MTU對網路效能的影響

正確地設定MTU對於網路通訊的效能和效率至關重要,通常體現在:

  • 分區與重組

    當一個資料包從一個網路傳到另一個具有不同MTU值的網路時,如果未經處理資料包的大小超過目的網路的MTU限制,資料包就需要被分割成多個小的資料包(分區)。這些分區在到達目的地後需要重新組裝起來(重組)。這個過程會增加網路延遲,降低傳輸效率,並可能增加網路裝置的處理負擔,因為分區和重組都需要額外的計算資源。

  • 傳輸效率降低

    由於分區和重組帶來的額外開銷,資料包在需要通過MTU較小的鏈路時,可能會導致整體的網路傳輸速率下降。此外,分區還可能導致某些協議或應用的效能問題,例如TCP的重傳機制可能會因分區丟失而被不當觸發,進一步降低效率。

  • 網路擁塞

    如果MTU設定得過小,會導致資料被分割為過多的小分區進行傳輸,增加了網路擁塞的可能性。而較大的MTU可以減少分組的數量,降低了網路的擁塞程度,提高了網路的輸送量。

為了最佳化網路效能,通常建議將網路路徑中的所有環節的MTU設定為一致,且儘可能地大,但又不超過路徑中任何一環節的MTU限制。這樣可以減少分區和重組的需求,提高傳輸效率。對於特定的應用情境,如視頻會議、大檔案傳輸等高頻寬需求的應用,適當調整MTU大小可以提升傳輸效率和品質。

查看ECS網路介面的MTU

MTU限定了網卡一次最多傳輸資料的位元組數。當前所有ECS執行個體都預設支援1500 MTU(網路介面遵循乙太網路標準封裝和傳輸資料)。如果您的ECS執行個體支援並開啟了巨型幀(Jumbo Frames),則支援8500的MTU。您可以遠端連線執行個體,通過作業系統命令查看目前網卡的MTU的值。

查看Windows執行個體的MTU

樣本作業系統:Windows Server 2022。

樣本執行個體規格類型系列:ecs.g8i.large。

  1. 遠端連線ECS執行個體。

    具體操作,請參見使用Workbench登入Windows執行個體

  2. 開啟命令提示字元或Windows PowerShell工具。

  3. 執行以下命令,查看當前網路介面的MTU。

    netsh interface ipv4 show subinterfaces

    開啟巨型幀之前

    可以看到主網卡乙太網路和輔助彈性網卡乙太網路2的MTU均為預設支援的1500:

    C:\Windows\system32>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   輸入位元組      輸出位元組  介面
    ------  ---------------  ----------  ----------  -------------
    4294967295            1          0           0  Loopback Pseudo-Interface 1
          1500            1   15133287     1860371  乙太網路
          1500            1       1519        3234  乙太網路 2

    開啟巨型幀之後

    可以看到主網卡乙太網路和輔助彈性網卡乙太網路2的MTU均變成8500:

    C:\Users\Administrator>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   輸入位元組      輸出位元組  介面
    ------  ---------------  ---------  ---------  -------------
    4294967295                1          0          0  Loopback Pseudo-Interface 1
      8500                1      75314    1062294  乙太網路
      8500                1    2386860     631043  乙太網路 2

查看Linux執行個體的MTU

樣本作業系統:Alibaba Cloud Linux 3.2。

樣本執行個體規格類型系列:ecs.g8i.large。

  1. 遠端連線ECS執行個體。

    具體操作,請參見使用Workbench登入Linux執行個體

  2. 執行以下命令,查看當前網路介面的MTU。

    ip a
    開啟巨型幀之前

    可以看到主網卡eth0和輔助彈性網卡eth1的MTU均為預設支援的1500:

    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:14:4d:09 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.17.0.139/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359999sec preferred_lft 315359999sec
        inet6 fe80::216:3eff:fe14:4d09/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:3f:f1:43 brd ff:ff:ff:ff:ff:ff
        altname enp0s7
        altname ens7
        inet 172.17.0.138/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359999sec preferred_lft 315359999sec
        inet6 fe80::24c1:8e90:7d8a:fc43/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    開啟巨型幀之後

    可以看到主網卡eth0和輔助彈性網卡eth1的MTU均為8500:

    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:14:4d:09 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.17.0.139/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359996sec preferred_lft 315359996sec
        inet6 fe80::216:3eff:fe14:4d09/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:3f:f1:43 brd ff:ff:ff:ff:ff:ff
        altname enp0s7
        altname ens7
        inet 172.17.0.138/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359996sec preferred_lft 315359996sec
        inet6 fe80::24c1:8e90:7d8a:fc43/64 scope link noprefixroute
           valid_lft forever preferred_lft forever

使用ping命令手動探測PMTU

作為手動測試方式,您也可以通過ping命令,手動探測PMTU。詳細方法如下:

警告

進行此類測試可能會影響網路通訊,請在非高峰時段進行。

  • 測試方法:通過發送一個包含“不分區”標誌的資料包,並逐漸增加資料包的大小,直到收到“需要分區但設定了不分區標誌”的ICMP錯誤訊息,表明前一個大小就是PMTU減去IP頭部(20位元組)和ICMP頭部(8位元組)的大小。

  • 測試命令:執行以下命令,測試網路鏈路上的MTU大小。

    ping -c 1 -M do -s [包大小] 目標地址

    命令中各參數的含義如下:

    • -c 1:表示只發送一個資料包。

    • -M do:表示設定DF(Don't Fragment)不分區標誌。

    • -s [包大小]:指定資料包的大小(ICMP的PDU),初始值可以從一個常見的值開始(例如1472)。

      說明

      ping 使用的是 ICMP 協議,ICMP 的下層協議是 IP 協議。ICMP 的 IP 資料包 = IP 頭部(20 位元組)+ ICMP 頭部(8 位元組)+ ICMP 的 PDU,所以 -s 1472 表示整個 IP 資料包的長度等於 20+8+1472 = 1500 位元組。

  • 測試樣本:以下樣本示範了使用 ping 命令探測從巨型幀執行個體到普通執行個體之間的 PMTU。

    • 本樣本使用的兩端主機 MTU 資訊如下:

      FROM:172.17.0.127 ,為方便測試對比,啟用ECS巨型幀,MTU為8500位元組。關於啟用巨型幀,請參見開啟/關閉巨型幀

      TO:172.17.0.128 MTU為1500。

    • 測試:執行以下命令,嘗試發送8472位元組的資料包(不包括IP和ICMP頭部大小)。

      ping -c 1 -M do -s 8472 172.17.0.128

    • 測試結果:收到了一個ICMP錯誤訊息,顯示"Frag needed and DF set(mtu=1500)",表示資料包因為超過了MTU(1500位元組)而需要分區,但是由於DF標誌位被設定,資料包不能被網路路徑上的轉寄裝置分區,因此被丟棄。

      [root@          ~]# ping -c 1 -M do -s 8472 172.17.0.128
      PING 172.17.0.128 (172.17.0.128) 8472(8500) bytes of data.
      From 172.17.0.253 icmp_seq=1 Frag needed and DF set (mtu = 1500)
      
      --- 172.17.0.128 ping statistics ---
      1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

手動修改網路介面的MTU

在阿里雲上,一些通訊情境或網路產品(例如VPN網關、流量鏡像)對ECS發出的資料包大小有著更加嚴格的要求,需要您主動縮小資料包尺寸,以保證網路連通性或更好的使用者體驗。您需要修改ECS網路介面的MTU值,以滿足這些產品的要求。

警告
  • 在修改MTU之前,請確保瞭解降低或提高MTU可能對網路效能產生的影響。不恰當的MTU值可能導致某些類型的資料包需要分區,從而影響網路效率。

    • Linux作業系統的MTU會通過DHCP伺服器自動擷取,如果您沒有主動禁用DHCP或者不是在VPN網關等隧道情境中,一般情況下無需手動修改網卡MTU。

    • 如果您是在巨型幀等特定情境下,請參考相關的最佳實務來解決,而不是手動修改MTU。關於巨型幀,請參見開啟/關閉巨型幀

  • 修改ECS網卡MTU時,注意不要超過ECS執行個體支援的MTU上限(開啟巨型幀時為8500,關閉或不支援巨型幀時為1500),否則可能導致網路不通。

在本樣本中,我們示範不同作業系統下手動修改ECS網卡MTU到1399位元組。

Windows執行個體

樣本作業系統:Windows Server 2022。

  1. 遠端連線Windows執行個體。

    具體操作,請參見使用Workbench登入Windows執行個體

  2. 開啟命令提示字元或Windows PowerShell工具。

  3. 執行以下命令,查看乙太網路網卡的MTU。

    netsh interface ipv4 show subinterfaces

    返回資訊如下所示,表示乙太網路網卡當前的MTU值為1500。

    C:\Users\Administrator>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   輸入位元組      輸出位元組  介面
    ------  ---------------  ----------  ----------  -------------
    4294967295                1          0           0  Loopback Pseudo-Interface 1
          1500                1   76093074     3922261  乙太網路
          1500                1        943        3068  乙太網路 2

    netsh interface ipv4 show subinterfaces命令詳情

    您可以執行以下命令,查看介面資訊查詢命令參數詳情

    netsh interface ipv4 show subinterfaces ?

    參數解釋如下:

    C:\Users\Administrator>netsh interface ipv4 show interfaces ?
    
    用法: show interfaces [[interface=]<string>] [[rr=]<integer>]
            [[level=]normal|verbose] [[store=]active|persistent]
    
    參數:
    
          標記            值
          interface - 介面名稱或索引。
          rr        - 重新整理介面統計資料的速率(以秒計)。
          level     - 下列其中一個值:
                      normal: 每個介面顯示一行。當沒有給定介面時, 此為預設值。
                      verbose: 顯示有關每個介面的額外資訊。當給定介面時,
                               此為預設值。
          store     - 下列其中一個值:
                      active: 顯示堆棧中的介面(預設)。
                      persistent: 顯示永久介面。
    
    說明: 顯示有關所有介面的資訊, 或者如果指定介面, 顯示
          有關指定介面的資訊。
  4. 執行以下命令,設定乙太網路網路介面的MTU為1399,且設定永久生效。

    netsh interface ipv4 set subinterface "乙太網路" mtu=1399 store=persistent

    返回“確定”表示命令執行成功。如果返回有錯誤資訊,根據錯誤資訊提示修改即可。

    再次查看乙太網路網卡的MTU,可以看到變更已經生效。

    C:\Users\Administrator>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   輸入位元組  輸出位元組  介面
    ------  ---------------  ---------  ---------  -------------
    4294967295                1          0          0  Loopback Pseudo-Interface 1
          1399                1   76123457    4064932  乙太網路
          1500                1       1099       3556  乙太網路 2

    netsh interface ipv4 set subinterface命令詳情

    您可以執行以下命令查看修改子介面命令配置參數詳情:

    netsh interface ipv4 set subinterface ?

    參數解釋如下:

    C:\Users\Administrator>netsh interface ipv4 set subinterface  ?
    
    用法: set subinterface [interface=]<string> [[mtu=]<integer>]
            [[subinterface=]<string>] [[store=]active|persistent]
    
    參數:
    
           標記            值
           interface  - 介面名稱或索引。
           mtu        - 子介面的 MTU。預設值為連結的自然 MTU。
           subinterface - 子介面 LUID。只有包含多個子介面的介面要求此選項。
           store      - 下列其中一個值:
                        active: 設定僅持續到下次啟動之前。
                        persistent: 永遠保持設定。
    
    說明: 修改子介面配置參數。
    
    樣本:
    
           set subinterface "1" mtu=1500 store=active

Linux執行個體

樣本作業系統:Alibaba Cloud Linux 3.2。

ip 命令臨時修改
重要

此方式為臨時修改網卡介面的MTU值,如果重啟網路服務或重啟執行個體,修改會失效。

  1. 遠端連線Linux執行個體。

    具體操作,請參見使用Workbench登入Linux執行個體

  2. 執行以下命令,查看當前網卡的MTU。

    ip a

    可以看到,當前執行個體主網卡eth0和輔助彈性網卡eth1的MTU均為1500。

    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0e:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe0e:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
  3. 執行以下命令,臨時修改網路介面eth1的MTU為1399。

    sudo ip link set dev eth1 mtu 1399

    再次查看網卡資訊,可以看到eth1的MTU已經變為1399:

    [root@xxx ~]# sudo ip link set dev eth1 mtu 1399
    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:de:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359127sec preferred_lft 315359127sec
        inet6 fe80::216:3eff:fede:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1  <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1399 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359127sec preferred_lft 315359127sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
編輯網路設定檔(永久生效)
重要
  • 您可以通過編輯網路設定檔的方式修改網路介面的MTU,並且重啟網路介面服務或者重啟執行個體,使修改永久生效。

  • 不同Linux發行版及版本不同,網路設定檔不同,本文以RHEL/CentOS系的Alibaba Cloud Linux 3.2為例說明具體配置。

  • 如果您綁定了輔助彈性網卡(如eth1),且需要修改輔助彈性網卡的MTU,請您確保輔助彈性網卡已經正確配置。具體操作,請參見配置輔助彈性網卡

  1. 遠端連線Linux執行個體。

    具體操作,請參見使用Workbench登入Linux執行個體

  2. 執行以下命令,查看當前網卡的MTU。

    ip a

    可以看到,當前執行個體主網卡eth0和輔助彈性網卡eth1的MTU均為1500。

    [root@ ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0e:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe0e:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
  3. 執行以下命令,查看網路介面的設定檔資訊。

    ls /etc/sysconfig/network-scripts

    以下為當前執行個體的網路介面eth0和eth1的主網路設定檔

    [root@xxx ~]# cd /etc/sysconfig/network-scripts/
    [root@xxx network-scripts]# ls -l
    total 8
    -rw-r--r-- 1 root root 170 Sep 19 10:11 ifcfg-eth0
    -rw-r--r-- 1 root root 179 Sep 19 10:43 ifcfg-eth1
  4. 執行以下命令,禁用cloud-init的網路設定功能。

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    添加如下配置項:

    network: {config: disabled}
  5. 執行以下命令,編輯eth1的網路設定檔,增加MTU配置。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

    編輯後的檔案內容樣本(需在檔案末尾增加 MTU=1399):

    # Created by cloud-init on instance boot automatically, do not edit.
    #
    BOOTPROTO=dhcp
    DEVICE=eth1
    HWADDR=00:16:3e:37:eb:bf
    METRIC=200
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=no
    MTU=1399
  6. 執行以下命令,重啟網路服務,使配置生效。

    sudo systemctl restart NetworkManager

    執行成功後,再次查看網路介面資訊,可以看到當前網路介面eth1的MTU值已經是1399:

    [root@xxx network-scripts]# sudo systemctl restart NetworkManager
    [root@xxx network-scripts]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0e:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359946sec preferred_lft 315359946sec
        inet6 fe80::216:3eff:fe0e:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1399 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359946sec preferred_lft 315359946sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever

實際應用中MTU的限制

ECS互訪鏈路MTU限制

支援巨型幀(Jumbo Frames)的ECS執行個體作為源主機時,目的主機在不同通訊情境下的鏈路最大MTU限制如下表所示:

目的主機

允許的最大MTU

“同VPC內” 或 “同region對等串連的VPC內” 開啟巨型幀的ECS執行個體

8500

“同VPC內” 或 “同region對等串連的VPC內” 未開啟巨型幀的ECS執行個體

1500

“通過CEN實現互連的VPC內”任意ECS執行個體

“通過Express Connect串連的線下IDC內”的主機

“通過EIP、PIP訪問”的外部主機

更多資訊,請參見VPC對等串連VPC串連

雲網路產品MTU限制

當您處於以下情境時,需要關注網路產品自身的MTU限制:

  • 在阿里雲網路內,鏈路預設支援1500 MTU,對於不支援巨型幀的ECS執行個體通訊時,需要關注VPN網關等網路組件自身的MTU限制。

  • 在使用非TCP協議(UDP、ICMP)訪問特定網路產品時,需要注意不同網路產品自身的MTU限制。

當前阿里雲雲產品普遍不支援巨型幀,部分網路產品的最大MTU限制如下表所示:

網路產品

支援的最大MTU

說明

NAT Gateway

1500

負載平衡(包括ALB、NLB、CLB)

ALB和CLB不支援分區報文的轉寄,因此使用UDP/ICMP進行通訊時,需要嚴格控制源ECS執行個體發出的資料包的整包大小不超過1500。

雲端服務(OSS,RDS等)

由於流量會經過負載平衡產品,需注意負載平衡產品的限制。

Global Acceleration

Cloud Firewall

私網串連PrivateLink

VPN網關

1399

更多資訊,請參見IPsec-VPN串連中MTU配置說明

如何合理設定MTU

最佳化MTU的設定可以提高網路效率和效能,減少分區和重組資料包的需求,從而降低網路延遲和提高輸送量。以下是一些關於MTU設定的最佳實務:

  • 確定合理的MTU

    • 瞭解實際網路環境的標準MTU值:乙太網路預設MTU通常是1500位元組。詳細資料,請參見MTU的分類

    • 可以通過ping命令探測PMTU。詳細資料,請參見使用ping命令手動探測PMTU

  • 啟用和適配PMTUD:確保作業系統或網路裝置支援並啟用PMTUD,這樣可以通過動態方式發現和適應網路路徑上允許的PMTU,應用程式通過適配感知並響應ICMP訊息,對資料包進行處理(縮小資料包長度),避免分區。詳細資料,請參見PMTUD工作原理

  • 考慮網路裝置的限制:確保路由器、交換器等網路裝置的MTU設定與作業系統的MTU設定一致,以避免資料包在傳輸過程中被分區或丟棄。

  • 適應特定應用:某些應用程式或協議有其推薦的MTU大小。VoIP、視頻會議等即時應用可能從較小的MTU中受益,減少延遲和提高包傳輸效率。

  • 定期監測網路效能:應定期監視網路效能和MTU大小的變化,以便及時調整以適應網路條件的變化,包括但不限於網路輸送量測試、延遲測試以及特定應用效能的評估。