ML2: Configure path_mtu to default to 1500 bytes

I8287677c7ad0f13fa9f5cb194f9372d04b78cb61 changed the behavior of
DevStack, so that path_mtu is being set to 1500 by default. Let's take
the next step and set path_mtu to 1500 by default, instead of relying on
deployment tools like DevStack to set it.

When using the ML2 plugin and setting path_mtu to default to 1500,
the second order effect is that all Neutron
Network objects will have the mtu attribute populated. For tenant
network types like VXLAN, the MTU will be set as path_mtu less the
protocol overhead. So for example, a Neutron Network backed by VXLAN
will have the mtu attribute set to 1450.

Related-Bug: #1542108
Co-Authored-By: Matt Kassawara <mkassawara@gmail.com>
Change-Id: I4096a3e7704032fa4aa5c3aa8bcaec4e38d0d06d
This commit is contained in:
Sean M. Collins 2016-02-04 14:03:06 -05:00
parent 5d7ffc03ed
commit 7a4633a9ca
2 changed files with 30 additions and 1 deletions

View File

@ -39,7 +39,7 @@ ml2_opts = [
"entrypoints to be loaded from the " "entrypoints to be loaded from the "
"neutron.ml2.extension_drivers namespace. " "neutron.ml2.extension_drivers namespace. "
"For example: extension_drivers = port_security,qos")), "For example: extension_drivers = port_security,qos")),
cfg.IntOpt('path_mtu', default=0, cfg.IntOpt('path_mtu', default=1500,
help=_('Maximum size of an IP packet (MTU) that can traverse ' help=_('Maximum size of an IP packet (MTU) that can traverse '
'the underlying physical network infrastructure without ' 'the underlying physical network infrastructure without '
'fragmentation. For instances using a ' 'fragmentation. For instances using a '

View File

@ -0,0 +1,29 @@
---
prelude: >
- The ML2 plug-in supports calculating the MTU for instances
using overlay networks by subtracting the overlay protocol
overhead from the value of 'path_mtu', ideally the physical
(underlying) network MTU, and providing the smaller value to
instances via DHCP. Prior to Mitaka, 'path_mtu' defaults to
0 which disables this feature. In Mitaka, 'path_mtu' defaults
to 1500, a typical MTU for physical networks, to improve the
"out of box" experience for typical deployments.
features:
- In Mitaka, the combination of 'path_mtu' defaulting to 1500 and
'advertise_mtu' defaulting to True provides a value of MTU accounting
for any overlay protocol overhead on the network to instances using
DHCP. For example, an instance attaching to a VXLAN network receives
a 1450 MTU from DHCP accounting for 50 bytes of overhead from the
VXLAN overlay protocol if using IPv4 endpoints.
issues:
- The combination of 'path_mtu' and 'advertise_mtu' only adjusts the
MTU for instances rather than all virtual network components between
instances and provider/public networks. In particular, setting
'path_mtu' to a value greater than 1500 can cause packet loss even
if the physical network supports it. Also, the calculation does not
consider additional overhead from IPv6 endpoints.
upgrade:
- Operators using the ML2 plug-in with 'path_mtu' defaulting to 0 may need
to perform a database migration to update the MTU for existing networks
and possibly disable existing workarounds for MTU problems such as
increasing the physical network MTU to 1550.