Linux

如何知道我的伺服器是否應該使用巨型幀 (MTU)

  • May 17, 2021

我們有一些 Red Hat 伺服器,用於 mabri 集群的集群伺服器。

幾個問題:

  1. 哪個 Linux 命令列印目前的 MTU 值?我們還沒有在 ifcfg 文件中配置 MTU)
  2. 預設 MTU 值是多少(假設我們從 ISO 映像安裝了 Red Hat 機器)
  3. 在哪些情況下我們需要使用高 MTU 值,最大值是多少?
  4. MTU的計算公式是什麼?

在我看來,問題不應該是“如何知道……如果”;更適合詢問“我什麼時候應該設置巨型幀”。

根據您關於 MTU/巨型幀的問題:

  1. 要查看您的 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: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; 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: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
  1. 通常在 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"

引用自:https://unix.stackexchange.com/questions/426113