[Openstack] MTU/Fragmentation/Retransmission Problem in Juno using GRE [FIXED]

Eren Türkay erent at skyatlas.com
Thu Jan 22 16:16:22 UTC 2015


On 21-01-2015 15:55, Eren Türkay wrote:
> I needed to lower the internal leg in router namespace to match VMs MTU
> to get ICMP packets working. With this setting, ICMP packets are OK and
> any length can be send across the network.

Hello,

I fixed the retransmission issue with the following command on eth0, and
eth1 (tunnel network, and external network) interfaces in both compute
and network nodes. I still needed to lower the MTU value in qrouter
internal leg.

ethtool -K eth0 tx off

This simply disables tx checksumming. I was seeing checksum errors in
GRE traffic before, and now it goes away. I have 2.3GBit to 3.5Gbit/s
traffic from VM to Network node on 10Gbit interface. Those rates are
still low. I can only use 20% to 30% of the available bandwidth. I am
looking for ways to improve it now.

In previous mails, I mentioned packets are fragmented in tap interface
but reassembled in qbrxxx interface. This is still the same. I see huge,
reconstructed packets in qbr interface. However, those are fragmented in
GRE tunnel when going out.

When I was doing tcpdump on qbrxxx, any packet which has length > MTU
did not go out in GRE tunnel, but when I stopped dumping on qbrxx
interface, it all worked. In essence, if you are debugging tap, qbr,
qvo, it could be misleading to listen qbrxx interface. Just try pinging
with greater lengths without listening on qbrxxx interface if you are
debugging.

So, if you are having "ping works but can't ssh into VM", "TCP
connection is slow", "TCP retransmission", or "Cannot reach metadata
server, connection timeout" error, It could be the similar issue that I
was having in this thread. Check the following (for Juno release, Ubuntu
Server 14.04 with GRE tunnel using ML2 plugin, host kernel
3.13.0-44-generic)

- Ensure your MTU value is set 1450 in your VM
- Look at MTU values in router namespace for your VM in network node.
You will probably see MTU 1500. Lower ONLY the qr-xxxx internal leg in
router namespace to be matched with your VM's MTU. Do not touch gateway
leg (qg-xxx)
- Ensure that you have "tx off" on your physical ethernet interfaces in
both compute and network node.

With those, everything is fine now. (except 2.5Gbit traffic on 10Gbit
network, which is a lot of people complain about)

Do you folks know the current situation of MTU bug in router namespace?
Is it expected to lower MTU value in router internal leg? I can
monkey-patch as Ajo suggested but I'm wondering the status in upstream.

Regards,
Eren

-- 
System Administrator
https://skyatlas.com/




More information about the Openstack mailing list