xen kernel does not honor mtu setting (network stack totally broken)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
three domUs:
gateway, loginserver, webserver
mtu of webserver is 1500
hannemann@
eth0 Protokoll:Ethernet Hardware Adresse 00:16:3E:39:F9:F4
inet Adresse:
inet6 Adresse: fe80::216:
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3206004 errors:0 dropped:0 overruns:0 frame:0
TX packets:4090292 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:317519642 (302.8 MiB) TX bytes:6339718363 (5.9 GiB)
Nevertheless during a TCP transfer:
16:16:24.303263 IP webserver.
an IP packet of size 13032! I assume this is meant to improve TCP throughput but this is totally broken! One can't just override the actual
MTU setting and begin to send with whatever sized packets seems fortunate.
As if this weren't bad enough, it is even ignoring ICMP fragmentatiation needed messages... leading to a maximal TCP throughput of around 8 Kilobyte per second, where the gateway is another domU.
After one ICMP the packet is sent with correct MTU, however the next packet will be again sent with illegal MTU:
During a transfer from webserver through gateway to an outside machine:
16:24:33.788608 IP 137.226.
16:24:33.800995 IP 137.226.18.3.80 > 137.226.
16:24:33.788877 IP 137.226.
16:24:33.788986 IP 137.226.
16:24:33.788994 IP 137.226.18.3.80 > 137.226.
16:24:33.789171 IP 137.226.18.3.80 > 137.226.
16:24:33.789232 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1500), length 556
16:24:33.991430 IP 137.226.18.3.80 > 137.226.
16:24:33.992082 IP 137.226.
16:24:33.992091 IP 137.226.18.3.80 > 137.226.
16:24:33.992205 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1500), length 556
16:24:34.195401 IP 137.226.18.3.80 > 137.226.
16:24:34.195982 IP 137.226.
16:24:34.195989 IP 137.226.18.3.80 > 137.226.
16:24:34.196086 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1500), length 556
...
workaround: turn off tso in DomUs
sudo ethtool -K eth0 tso off