nftables based iptables wrapper break userspace

Bug #1843468 reported by Stéphane Graber
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
iptables (Ubuntu)
Fix Released
Critical
Julian Andres Klode

Bug Description

iptables just got replaced by the nftables wrappers, effectively changing all Ubuntu systems to using nftables rather than regular iptables/ip6tables/ebtables.

Unfortunately those wrappers aren't perfect and don't convert every option properly, nor know about some of the available plugins for those commands.

This means that unless the software using those commands are aware that those are wrappers and adapt their use, they may break at some random point in time.

While nftables is clearly the way forward, just silently switching the existing native tools with the compat wrappers will lead to widespread breakage both from packages in the archive, snaps and a variety of scripts our users may be running.

So far, looking around, known breakages post-nft are expected with at least Docker, Kubernetes and LXD but the same may be true with the many other packages we have that call iptables, ip6tables, ebtables or arptables today.

A migration should include a proper audit of all in-archive users, see if they have a plan/patch for native nft interaction and if not, validate their use of the tools is compatible with the wrappers.

We should also extend that to popular snaps / those we ship by default. Snaps make things worse as they use the tools from their base snap, which in LXD's case is currently 16.04 (soon to switch to 18.04).

Changed in iptables (Ubuntu):
importance: Undecided → Critical
status: New → Triaged
Revision history for this message
Oibaf (oibaf) wrote :

Debian and RHEL are already using the new -nft iptables backend in their latest stable releases.
There are still some regressions, but most (all?) are already fixed in upstream iptables git.
I'd suggest updating to latest git before starting the audit.

Revision history for this message
Stéphane Graber (stgraber) wrote :

Ah, that's good to know and we should definitely aim at refreshing nftables prior to doing any amount of testing on the wrappers.

The failure I've seen for LXD specifically was around complex protocol parsing (IPv6 router advertisements I believe) through ebtables, so not a very usual thing to do, but something LXD needs to do to prevent some cases of IP spoofing between containers with isolated networking.

tags: added: id-5d784b79b60ef9779cc530ed
Changed in iptables (Ubuntu):
assignee: nobody → Julian Andres Klode (juliank)
Changed in iptables (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package iptables - 1.8.3-2ubuntu4

---------------
iptables (1.8.3-2ubuntu4) eoan; urgency=medium

  * autopkgtest: allow-stderr on command9 to fix regression

 -- Julian Andres Klode <email address hidden> Mon, 16 Sep 2019 13:48:52 +0200

Changed in iptables (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Balint Reczey (rbalint) wrote :

switching to nftables (again) is tracked in LP: #1887186

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.