This bug is awaiting verification that the kernel in -proposed solves
the problem. Please test the kernel and update this bug with the
results. If the problem is solved, change the tag 'verification-needed-
bionic' to 'verification-done-bionic'. If the problem still exists,
change the tag 'verification-needed-bionic' to 'verification-failed-
bionic'.

If verification is not done by 5 working days from today, this fix will
be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how
to enable and use -proposed. Thank you!


** Tags added: verification-needed-bionic

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1879658

Title:
  Cannot create ipvlans with > 1500 MTU on recent Bionic kernels

Status in linux package in Ubuntu:
  Invalid
Status in linux source package in Bionic:
  Fix Committed

Bug description:
  [IMPACT]

  Setting an MTU larger than the default 1500 results in an
  error on the recent (4.15.0-92+) Bionic/Xenial -hwe kernels
  when attempting to create ipvlan interfaces:

  # ip link add test0 mtu 9000 link eno1 type ipvlan mode l2
  RTNETLINK answers: Invalid argument

  This breaks Docker and other applications which use a Jumbo
  MTU (9000) when using ipvlans.

  The bug is caused by the following recent commit to Bionic
  & Xenial-hwe; which is pulled in via the stable patchset below,
  which enforces a strict min/max MTU when MTUs are being set up
  via rtnetlink for ipvlans:

  Breaking commit:
  -------------------
  Ubuntu-hwe-4.15.0-92.93~16.04.1
  * Bionic update: upstream stable patchset 2020-02-21 (LP: #1864261)
    * net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link()

  The above patch applies checks of dev->min_mtu and dev->max_mtu
  to avoid a malicious user from crashing the kernel with a bad
  value. It was patching the original patchset to centralize min/max
  MTU checking from various different subsystems of the networking
  kernel. However, in that patchset, the max_mtu had not been set
  to the largest phys (64K) or jumbo (9000 bytes), and defaults to
  1500. The recent commit above which enforces strict bounds checking
  for MTU size exposes the bug of the max mtu not being set correctly
  for the ipvlan driver (this has been previously fixed in bonding,
  teaming drivers).

  Fix:
  -------
  This was fixed in the upstream kernel as of v4.18-rc2 for ipvlans,
  but was not backported to Bionic along with other patches. The missing commit 
in the Bionic backport:

  ipvlan: use ETH_MAX_MTU as max mtu
  commit 548feb33c598dfaf9f8e066b842441ac49b84a8a

  [Test Case]

  1. Install any kernel earlier than 4.15.0-92 (Bionic/Xenial-hwe)

  2. # ip link add test1 mtu 9000 link eno1 type ipvlan mode l2
     (where test1 eno1 is the physical interface you are adding
      the ipvlan on)

  3. # ip link
  ...
  14: test1@eno1: <BROADCAST,MULTICAST> mtu 9000 qdisc noop state DOWN mode 
DEFAULT group default qlen 1000
  ...
    // check that your test1 ipvlan is created with mtu 9000

  4. Install 4.15.0-92 kernel or later

  5. # ip link add test1 mtu 9000 link eno1 type ipvlan mode l2
  RTNETLINK answers: Invalid argument

  6. With the above fix commit backported to the xenial-hwe/Bionic,
  the jumbo mtu ipvlan creation works again, identical to before 92.

  [Regression Potential]

  This commit is in upstream mainline as of v4.18-rc2, and hence
  is already in Cosmic and later, i.e. all post Bionic releases
  currently. Hence there's low regression potential here.

  It only impacts ipvlan functionality, and not other networking
  systems, so core systems should not be affected by this. And
  affects on setup so it either works or doesn't. Patch is trivial.

  It only impacts Bionic/Xenial-hwe 4.15.0-92 onwards versions
  (where the latent bug got exposed).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1879658/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to