我在 Amazon VPC 中运行了一些 Ubuntu 14.04 机器。启动时,它们的 MTU 为 9001,但这似乎在与 MTU 为 1500 的其他服务器通信时导致了一些问题。当我使用时,ip link set dev eth0 mtu 1500
这些问题就消失了。
问题是我似乎无法找到正确的方法来使其永久存在。
/etc/network/interfaces.d/eth0.cfg
看起来像这样
auto eth0
iface eth0 inet dhcp
pre-up /sbin/ip link set dev eth0 mtu 1500
我也尝试过将其添加mtu 1500
到该节的底部。
如果我重新启动,机器的 MTU 将恢复为 1500。
那么正确的方法是什么?
答案1
Ran Rubinstein 让我走上了正确的道路ubuntu 论坛主题。
MTU 由 DHCP 设置,但我们可以通过对 /etc/dhcp/dhclient.conf 进行一些更改来覆盖它 - 以下是我的情况
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
#added these two lines before the request line
default interface-mtu 1500;
supersede interface-mtu 1500;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.fqdn, dhcp6.sntp-servers;
添加完这些行后,我重启了机器进行再次检查,发现 MTU 为 1500
答案2
本次讨论:http://ubuntuforums.org/showthread.php?t=1284176意味着当您使用“auto eth0”时,mtu 由 dhcp 服务器设置,无法在 eth0.cfg 中覆盖。他们在那里有一些建议,但我只是在 /etc/rc.local 中设置了 mtu
编辑:这个错误https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1317811似乎可以解决这个问题。为了防止网络错误,您还需要运行以下命令:
sudo ethtool -K eth0 sg off
否则您将继续遇到错误。