У меня есть несколько машин с Ubuntu 14.04, работающих в Amazon VPC. Когда они запускаются, у них 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.
Итак, как правильно это сделать?
Ран Рубинштейн поставил меня на правильный путь с этим ветка форума 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.
Это обсуждение: http://ubuntuforums.org/showthread.php?t=1284176 подразумевает, что когда у вас есть 'auto eth0', mtu устанавливается сервером DHCP и не может быть переопределен в eth0.cfg. У них есть несколько предложений, но я просто установил mtu в /etc/rc.local
Изменить: эта ошибка https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1317811 кажется, покрывает эту проблему. Для предотвращения сетевых ошибок нужно также выполнить команду:
sudo ethtool -K eth0 sg off
Или у вас по-прежнему будут ошибки.