moby / moby/libnetwork

Failing to attach containers to encrypted overlay network since linux 5.15.17

Open
#2,653 4 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
2.2k
Forks
875
PR merge metrics
No merged PRs in 30d

Description

(I've phrased the issue for moby/moby before realizing that this is a separate component - so sorry for the docker-based description)

Description

Its currently not possible to communicate over encrypted overlay networks with kernel 5.15.17 due to an unset interface id when configuring the ipsec tunnel.

Downstream issue: https://github.com/coreos/fedora-coreos-tracker/issues/1111

Steps to reproduce the issue:

With two linux 5.15.17 hosts: Create an encrypted overlay network in a swarm and try to communicate between two containers on different nodes attached to that overlay network.

Additional information you deem important (e.g. issue happens only occasionally):

related linux change: https://github.com/torvalds/linux/commit/68ac0f3810e7
potential workaround in netlink library: https://github.com/vishvananda/netlink/pull/727

Missing Ifid for netlink.XfrmPolicy struct: (there may be more)
https://github.com/moby/libnetwork/blob/64b7a4574d1426139437d20e81c0b6d391130ec8/drivers/overlay/encryption.go#L343

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in drivers/overlay/encryption.go around the XfrmPolicy configuration at line 343, then compare the related Linux change and the proposed netlink workaround. Reproduce with two Linux 5.15.17 hosts running encrypted overlay networking across swarm nodes. Done means containers on different nodes can communicate over the encrypted overlay without the missing interface ID.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, linux
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.