Linux系統(tǒng)下修改最大傳輸單元MTU的方法

最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協(xié)議的某一層上面所能通過的最大數(shù)據(jù)報大?。ㄒ宰止?jié)為單位)。最大傳輸單元這個參數(shù)通常與通信接口有關(網(wǎng)絡接口卡、串口等)。
因特網(wǎng)協(xié)議允許IP分片,這樣就可以將數(shù)據(jù)報分成足夠小的片段以通過那些最大傳輸單元小于該數(shù)據(jù)報原始大小的鏈路了。這一分片過程發(fā)生在IP層(OSI模型的第三層,即網(wǎng)絡層),它使用的是將分組發(fā)送到鏈路上的網(wǎng)絡接口的最大傳輸單元的值。原始分組的分片都被加上了標記,這樣目的主機的IP層就能將分組重組成原始的數(shù)據(jù)報了。
在因特網(wǎng)協(xié)議中,一條因特網(wǎng)傳輸路徑的“路徑最大傳輸單元”被定義為從源地址到目的地址所經過“路徑”上的所有IP跳的最大傳輸單元的最小值?;蛘邚牧硗庖粋€角度來看,就是無需進一步分片就能穿過這條“路徑”的最大傳輸單元的最大值。
RFC 1191描述了“路徑最大傳輸單元發(fā)現(xiàn)方法”,這是一種確定兩個IP主機之間路徑最大傳輸單元的技術,其目的是為了避免IP分片。在這項技術中,源地址將數(shù)據(jù)報的DF(Don't Fragment,不要分片)位置位,再逐漸增大發(fā)送的數(shù)據(jù)報的大小——路徑上任何需要將分組進行分片的設備都會將這種數(shù)據(jù)報丟棄并返回一個“數(shù)據(jù)報過大”的ICMP響應到源地址——這樣,源主機就“學習”到了不用進行分片就能通過這條路徑的最大的最大傳輸單元了。
不幸的是,越來越多的網(wǎng)絡封殺了ICMP的傳輸(譬如說為了防范DOS攻擊)——這使得路徑最大傳輸單元發(fā)現(xiàn)方法不能正常工作,其常見表現(xiàn)就是一個連接在低數(shù)據(jù)流量的情況下可以正常工作,但一旦有大量數(shù)據(jù)同時發(fā)送,就會立即掛起(例如在使用IRC的時候,客戶會發(fā)現(xiàn)在發(fā)送了一個禁止IP欺騙的ping之后就得不到任何響應了,這是因為該連接被大量的歡迎消息堵塞了)。而且,在一個使用因特網(wǎng)協(xié)議的網(wǎng)絡中,從源地址到目的地址的“路徑”常常會為了響應各種各樣的事件(負載均衡、擁塞、斷電等等)而被動態(tài)地修改——這可能導致路徑最大傳輸單元在傳輸過程中發(fā)生改變——有時甚至是反復的改變。其結果是,在主機尋找新的可以安全工作的最大傳輸單元的同時,更多的分組被丟失掉了。
對于時下大多數(shù)使用以太網(wǎng)的局域網(wǎng)來說,最大傳輸單元的值是1500字節(jié)。但是像PPPoE這樣的系統(tǒng)會減小這個數(shù)值,這就使得在使用最大傳輸單元發(fā)現(xiàn)方法時可能會產生這樣的結果:一些處于配置不當?shù)姆阑饓χ蟮恼军c變得不可達了。對于這種情況,還是可能找到變通的方法的,但這取決于你控制的是網(wǎng)絡的哪一部分。這些方法包括改變用來在防火墻一端建立TCP連接的第一個分組的MSS(Maximum Segment Size,最大分段大小)。
對于一些支持老版本以太網(wǎng)協(xié)議的IBM系統(tǒng)(例如XSeries),可能只有在把最大傳輸單元設為1492之后才能在當下常見的局域網(wǎng)上進行運作。
MTU的修改方法如下:
1、ifconfig命令修改
[/code]
ifconfig ${Interface} mtu ${SIZE} up
ifconfig eth1 mtu 9000 up
[/code]
這個是最通用的方法,對所有的linux 發(fā)行版本都有效。缺點就是重啟后失效,需要在開機項中加載。
2、修改配置文件
CentOS / RHEL / Fedora Linux下
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
#增加如下內容
MTU="9000"
#保存后重啟網(wǎng)卡生效
# service network restart
#啟用IPv6地址的,修改IPv6 mtu的參數(shù)為
IPV6_MTU="1280"
Debian / Ubuntu Linux下
# vi /etc/network/interfaces
#增加如下值
mtu 9000
#保存后,重啟網(wǎng)絡生效
# /etc/init.d/networking restart
3、為什么MTU最大值為9000字節(jié)
從理論上計算,4 bytes的CRC最大支持12000 bytes大小的字節(jié),超過了就沒有辦法檢查了。另外還有其他一些協(xié)議如NFS等的限制。
最后需要注意的是,在經過交換網(wǎng)絡設備時,僅僅修改主機端的MTU值是不行的,還需要交換網(wǎng)絡設備上開啟jumbo frames功能。
4、MTU測試
使用ping命令,-l 指定包大小,-f 選項為通知操作系統(tǒng)不能私自更改該數(shù)據(jù)包大小
使用英文操作系統(tǒng)時的提示為:Packet needs to be fragmented but DF set
相關文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過程中,查看和了解硬盤信息是非常重要的工作,尤其是對于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內容介紹2025-03-12如何在 Linux 中查看 CPU 詳細信息? 3招輕松查看CPU型號、核心數(shù)和溫度
在日常運維工作中,獲取 CPU 信息是系統(tǒng)運維管理員常見的工作內容,無論是為了性能調優(yōu)、硬件升級還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨樹一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡化,優(yōu)化,現(xiàn)代化,實用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來簡要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個win11裝機u盤,詳細如下2025-02-17Rsnapshot怎么用? 基于Rsync的強大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過 SSH 備份遠程文件,接下來詳細介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時、每天、每周和每月的本地備份,以及如何進2025-02-06Linux Kernel 6.13發(fā)布:附更新內容及新特性解讀
Linux 內核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡化內核搶占邏輯,通過減少與調度器相關的調用次數(shù),讓內核在運行時表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內核版本為 Linux 6.8,這次更新帶來了諸多優(yōu)化和改進,進一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來看看詳細安裝指南2025-01-16