如何知道我的服务器是否应该使用巨型帧 (MTU)

yae*_*ael 2 linux networking rhel ifconfig

我们有一些 Red Hat 服务器,用于 mabri 集群的集群服务器。

几个问题:

  1. 哪个 Linux 命令打印当前的 MTU 值?我们还没有在 ifcfg 文件中配置 MTU)

  2. 默认 MTU 值是多少(假设我们从 ISO 映像安装了 Red Hat 机器)

  3. 在哪些情况下我们需要使用高 MTU 值,最大值是多少?

  4. MTU的计算公式是什么?

Rui*_*iro 7

在我看来,问题不应该是“如何知道……如果”;更适合询问“我什么时候应该设置巨型帧”。

根据您关于 MTU/巨型帧的问题:

  1. 要查看您的MTU,要么ifconfig还是 ip做:

    $的ifconfig eth0的:标记= 4163 <UP,BROADCAST,跑步,MULTICAST> MTU 1500 INET 192.168.1.249网络掩码255.255.255.0广播192.168.1.255醚00:0C:29:40:68:EE txqueuelen 1000(以太网)RX数据包50182字节 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
Run Code Online (Sandbox Code Playgroud)

或者更简单:

$ 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
Run Code Online (Sandbox Code Playgroud)
  1. 通常在 IPv4 中,默认 MTU 为 1500(字节)。

3 和 4)

通常默认的 MTU 就可以了。在处理通信问题时,当防火墙阻止不允许 MTU 协商的 ICMP 数据包时,您很少需要临时更改它。

您可能希望更改 MTU 的另一种情况是定义 JUMBO 帧。

但是,你不利于送花儿给人使用巨型帧,只有在特殊情况下,如文件服务器或也许DB服务器的专用VLAN,有巨型帧最重要的是,在一个VLAN中的所有计算机必须配置为巨型帧; 交换机还必须支持 JUMBO 帧。

您肯定不想将 JUMBO 帧用于面向 Internet 的系统,例如 Web 服务器或 DNS 服务器。

要在运行时设置 JUMBO 帧的接口:

ip link set eth0 mtu 9000
Run Code Online (Sandbox Code Playgroud)

或者在/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
Run Code Online (Sandbox Code Playgroud)

对于基于 RH 的系统:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

并添加:

MTU="9000"
Run Code Online (Sandbox Code Playgroud)