Re: networkd 249.11 fails to create ip6gre and vti6 tunnels

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

 



Kernel and systemd changes aside, I kind of want to say that you need to specify an interface for the link-local endpoint to be bound to – just as with regular sockets. If the tunnel were device-bound and not independent, that would happen by default.

It also seems weird that the tunnel has endpoints with different scopes; I think I've seen routers reject such packets with a "Scope Mismatch" error.

I would try building systemd from Git source; if I remember correctly, systemd-networkd could be run directly from the build directory, making it possible to `git bisect` down to the change that fixed this.

On Mon, Nov 27, 2023, 19:38 Danilo Egea Gondolfo <danilo.egea.gondolfo@xxxxxxxxx> wrote:

Hello,

I'm looking for help to understand an issue we are observing on Ubuntu 22.04.

networkd is failing with "netdev could not be created: Invalid argument" when I try to create either an ip6gre or vti6 device.

We believe this problem started when we pulled this change [1] in to the kernel 5.15. The problem also happens with the most recent upstream kernel so it's not an issue introduced by Ubuntu.

The problem doesn't happen on recent versions of systemd but we'd like to fix it on systemd 249 (used by Ubuntu 22.04).

How to reproduce the problem (tested on Ubuntu 22.04 (jammy) with systemd 249.11-0ubuntu3.11 and kernel 5.15.0-89-generic):

--- /etc/systemd/network/tun0.netdev ---
[NetDev]
Name=tun0
Kind=ip6gre

[Tunnel]
Independent=true
Local=fe80::1
Remote=2001:dead:beef::2
------

--- /etc/systemd/network/tun0.network ---
[Match]
Name=tun0

[Network]
LinkLocalAddressing=ipv6
ConfigureWithoutCarrier=yes
------

After restarting networkd I see this in the logs

tun0: netdev could not be created: Invalid argument
tun0: netdev removed

If we boot a kernel that doesn't have [1], the interface tun0 is created.

Here is the full log with debug enabled https://paste.ubuntu.com/p/dPbPxgRThW/

As I said, the problem seems to be fixed already in systemd, but I'm looking for help to understand what changes fixed it.
The theory is that the netlink attributes used to configure the tunnel local/remote IPs might be wrong.

This problem is documented here https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2037667

Thanks in advance.

[1] - https://github.com/torvalds/linux/commit/b0ad3c179059089d809b477a1d445c1183a7b8fe


[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux