Re: Link MTU option ignored in IPv6 router advertisements



Hello Glen,

On Tue, 2014-10-28 at 11:26 +1030, Glen Turner wrote:
On 04/10/2014, at 2:31 AM, Dan Williams wrote:

On Fri, 2014-10-03 at 11:36 -0400, Chuck Anderson wrote:
I'm not sure if this is a kernel thing or a NetworkManager thing.  Did
something change in how IPv6 router advertisements are handled by
NetworkManager in Fedora 20?

I think it's a NetworkManager thing.  We'll fix it.

Hi Dan,

I've had a lot of trouble in IPv4 with DHCP in hotel systems setting the MTU to less than the 576 minimum 
(and sometimes less than the size of the IPv4 header). I believe that this was a misguided effort to 
implement fair queuing.

It might be worthwhile anticipating such issues for IPv6, roughly:

/* IPv6 minimum link MTU specified on page 24 of RFC 2460. */
#define IPV6_MINIMUM_MTU 1280

unsigned int enforce_link_mtu_bounds(unsigned int offered_link_mtu,
                                     char *interface_name)
{
  if (offered_link_mtu < IPV6_MINIMUM_MTU) {
    syslog("Offered link MTU for %s is %u, increased to " IPV6_MINIMUM_MTU "\n",
           (interface_name) ? interface_name : "an interface",
           offered_link_mtu);
    return IPV6_MINIMUM_MTU;
  }
  return offered_link_mtu;
}

We now ignore bad IPv6 MTUs:

src/rdisc/nm-lndp-rdisc.c:
627                 if (mtu >= 1280) {
628                         rdisc->mtu = mtu;
629                         changed |= NM_RDISC_CONFIG_MTU;
630                 } else {
631                         /* All sorts of bad things would happen if we accepted this.
632                          * Kernel would set it, but would flush out all IPv6 addresses away
633                          * from the link, even the link-local, and we wouldn't be able to
634                          * listen for further RAs that could fix the MTU. */
635                         warning ("(%s): MTU too small for IPv6 ignored: %d", rdisc->ifname, mtu);
636                 }


-glen

Lubo



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]