MTU Option should be included in ICMPv6 Router Advertisements

Bug #1495444 reported by Tore Anderson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Sridhar Gaddam

Bug Description

When using an overlay network on a physical network with standard Ethernet MTU (1500 octets), the instances' effective MTU is reduced.

The Neutron Router should inform the nodes about this fact, by including the MTU Option in the ICMPv6 Router Advertisements it sends. The current situation leads to blackholing of traffic, as the absence of the MTU Option causes the instance to believe it will be able to successfully transmit 1500 octets large frames to the network. However, these will be silently discarded. The symptom of is usually that the TCP three-way handshake succeeds, but that the connection appears to hang the moment payload starts being transmitted.

The MTU Option is documented here: https://tools.ietf.org/html/rfc4861#section-4.6.4. The corresponding radvd.conf option is called AdvLinkMTU. Note that the Neutron router is clearly aware of the reduced effective MTU, as it does use the corresponding DHCPv4 option to advertise it to instances/subnets using IPv4.

I observe this problem on OpenStack Kilo.

Revision history for this message
Tore Anderson (toreanderson) wrote :

I was mistaken regarding the Neutron router being aware of the reduced effective MTU. This had been hard-coded in /etc/neutron/dnsmasq-neutron.conf, in accordance with the documentation in http://docs.openstack.org/kilo/install-guide/install/apt/content/neutron-network-node.html.

Nevertheless, a similar method for configuring/hard-coding the MTU option in ICMPv6 RAs is required in order to prevent blackholing of IPv6 traffic in overlay networks with reduced MTU.

Changed in neutron:
assignee: nobody → Sridhar Gaddam (sridhargaddam)
Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/244722

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/244722
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=47713f58701af9e27792230dd64daa3e20a4260b
Submitter: Jenkins
Branch: master

commit 47713f58701af9e27792230dd64daa3e20a4260b
Author: sridhargaddam <email address hidden>
Date: Thu Nov 12 15:49:15 2015 +0000

    Support MTU advertisement using IPv6 RAs

    RFC4861 allows us to specify the Link MTU using IPv6 RAs.
    When advertise_mtu is set in the config, this patch supports
    advertising the LinkMTU using Router Advertisements.

    Partially Implements: blueprint mtu-selection-and-advertisement
    Closes-Bug: #1495444
    Change-Id: I50d40cd3b8eabf1899461a80e729d5bd1e727f28

Changed in neutron:
status: In Progress → Fix Released
tags: added: ipv6
Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/neutron 8.0.0.0b3

This issue was fixed in the openstack/neutron 8.0.0.0b3 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/308229

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/liberty)

Reviewed: https://review.openstack.org/308229
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=0991b190df4eca710a4a613f9c9b14dca98e1edc
Submitter: Jenkins
Branch: stable/liberty

commit 0991b190df4eca710a4a613f9c9b14dca98e1edc
Author: sridhargaddam <email address hidden>
Date: Thu Nov 12 15:49:15 2015 +0000

    Support MTU advertisement using IPv6 RAs

    RFC4861 allows us to specify the Link MTU using IPv6 RAs.
    When advertise_mtu is set in the config, this patch supports
    advertising the LinkMTU using Router Advertisements.

    Conflicts:
     neutron/agent/linux/ra.py
     neutron/common/config.py
     neutron/db/l3_db.py
     neutron/tests/common/l3_test_common.py
     neutron/tests/unit/agent/l3/test_agent.py
     neutron/tests/unit/db/test_l3_db.py

    Liberty modifications:
    - In test_l3_db.py, added two test cases that were covering the
      change in Mitaka+.

    Partially Implements: blueprint mtu-selection-and-advertisement
    Closes-Bug: #1495444
    Change-Id: I50d40cd3b8eabf1899461a80e729d5bd1e727f28
    (cherry picked from commit 47713f58701af9e27792230dd64daa3e20a4260b)

tags: added: in-stable-liberty
Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/neutron 7.1.0

This issue was fixed in the openstack/neutron 7.1.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.