如何知道我的伺服器是否應該使用巨型幀 (MTU)
我們有一些 Red Hat 伺服器,用於 mabri 集群的集群伺服器。
幾個問題:
- 哪個 Linux 命令列印目前的 MTU 值?我們還沒有在 ifcfg 文件中配置 MTU)
- 預設 MTU 值是多少(假設我們從 ISO 映像安裝了 Red Hat 機器)
- 在哪些情況下我們需要使用高 MTU 值,最大值是多少?
- MTU的計算公式是什麼?
在我看來,問題不應該是“如何知道……如果”;更適合詢問“我什麼時候應該設置巨型幀”。
根據您關於 MTU/巨型幀的問題:
- 要查看您的 MTU,請執行
ifconfig
以下ip
操作:$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.249 網路遮罩 255.255.255.0 廣播 192.168.1.255 ether 00:0c:29:40:68:ee txqueuelen 1000 (Ethernet) RX 數據包 5018字節 22054712 (21.0 MiB) RX 錯誤 0 丟棄 3 溢出 0 幀 0 TX 數據包 6674 字節 838613 (818.9 KiB) TX 錯誤 0 丟棄 0 溢出 0 載波 0 衝突 0
或與
ip
:$ ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:40:68:ee brd ff:ff:ff:ff:ff:ff inet 192.168.1.249/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever
或者更簡單地說:
$ ip link show eth0 | grep mtu 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
- 通常在 IPv4 中,預設值是 MTU 為 1500(字節)。
3 和 4)
通常預設的 MTU 就可以了。在處理通信問題時,當防火牆阻止不允許協商 MTU 的 ICMP 數據包時,您很少需要將其臨時更改為較低。
您可能希望更改 MTU 的另一種情況是定義 JUMBO 幀。
但是,使用 JUMBO 幀並不總是受益,只有在特定情況下,例如文件伺服器的專用 VLAN 或 DB 伺服器,最重要的是,在具有 JUMBO 幀的 VLAN 中,所有機器都必須為 JUMBO 幀配置; 交換機還必須支持 JUMBO 幀。
您肯定不想將 JUMBO 幀用於面向 Internet 的系統,例如 Web 伺服器或 DNS 伺服器。
為了在執行時設置 JUMBO 幀的介面:
ip link set eth0 mtu 9000
或在
/etc/network/interfaces
(在 Debian 中)使其永久化:auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 mtu 9000
對於基於 RH 的系統:
做
vi /etc/sysconfig/network-scripts/ifcfg-eth0
並添加:
MTU="9000"