У меня есть гигабитное соединение Ethernet от моего ноутбука до маршрутизатора и работающее соединение IPv6 с Интернетом. Я могу получать очень большие пакеты с сайтов в Интернете размером не менее 10000 байт (согласно wireshark). (edit: оказывается 'linux' offload receive '). Однако, при попытке отправить что-либо, мой локальный компьютер фрагментируется чуть ниже 1500 байт для ipv6. (На ipv4 я могу отправлять tcp пакеты в Интернет по крайней мере 1514 байтов, я могу пинговать с пакетами до настроенного mtu 6128, но они находятся в "черной дыре".)
Я на Ubuntu 12.04. Я настроил mtu для моего eth0 6128 (максимум, который он принимает), используя ip link set dev eth0 mtu 6128
и в графическом интерфейсе апплета NetworkManager, и перезапустил соединение. ip link show eth0
показывает, что 6128 mtu действительно установлены. ip -6 route
показывает, что ни один из путей, о которых знает ядро, не имеет установленного mtu. Я могу пропинговать ipv4 с пакетами до 6128 байт (хотя я не получаю ответы), но когда я делаю ping6 myrouter -c3 -s1500 -Mdo
я получаю сообщения об ошибках от моего собственного компьютера, говорящие, что пакеты слишком велики и что мту 1480. Я подтвердил в Wireshark, что ничего не передано, и ответы действительно генерируются моим собственным компьютером.
Итак, как мне заставить мой компьютер использовать больший mtu?