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

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

我们有一些 Red Hat 服务器、mabri 集群的集群服务器。

几个问题:

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

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

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

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

答案1

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

根据您有关 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 (以太网) RX 数据包 5第0182章字节 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
  1. 通常在 IPv4 中,默认 MTU 为 1500(字节)。

3和4)

通常默认的 MTU 就可以了。很少你需要将其更改为更低的值,暂时地,在处理通信问题时,当防火墙阻止不允许协商 MTU 的 ICMP 数据包时。

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

然而,您并不总是受益于使用 JUMBO 帧,只有在特定情况下,例如文件服务器或数据库服务器的专用 VLAN,最重要的是,在具有 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"

相关内容