Bug#869995: interface stays in "routable (configuring)", systemd-networkd-wait-online.service in failed state

Marc Haber mh+debian-bugs at zugschlus.de
Sun Aug 20 16:33:26 BST 2017


retitle #869995 interface stuck in "configuring" if SLAAC prefix announced with preferred lifetime zero
thanks

While investigating whether going back to stretch's systemd will solve
the issue, I found out that it does already exist in stretch and that
the fact that systemd-wait-online gets stuck is probably only a symptom.

To reproduce:

- create /etc/systemd/network/foo.network with [Match]\nName=e* only
- configure radvd to advertise a prefix with lifetime 0[1]
- boot the system

You'll see networkctl:
IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           carrier     unmanaged
  2 ens3             ether              degraded    configuring

and this stays that way, probably forever (I waited 35 minutes).
systemctl start systemd-networkd-wait-online will return with a "failed"
state after between one and two minutes. If you give a
[Network]\nDHCP=Yes stanza in /etc/systemd/network/foo.network, you'll
even get IPv4. My claim that the issue prevents DHCPv4 from happening
is wrong, that was my mistake assuming that the default is "DHCP on",
while it is necessary to explicitly enable DHCP.

It the same behavior with:
- plain stretch
- plain sid
- stretch with only systemd, libpam-systemd and libsystemd0
  updated to sid's versions

So this is not dependent of static configuration being present,
systemd-networkd already begins doing strange things as soon as a
prefix is announced with a preferred lifetime of zero.

I didn't bother checking what happens when more than one prefix is
announced or more than one router is present, since we're already
failing in the most trivial case, and this also affects stable.

Please say if you think that this warrants its own upstream ticket and
I'l happily file one. At the moment, it's sad but the handy trick of
announcing an IPv6 prefix with zero lifetime doesn't work in Debian
stretch if systemd-networkd is used.

Greetings
Marc


[1]
interface br0 {
    AdvSendAdvert on;
    MinRtrAdvInterval 600;
    MaxRtrAdvInterval 1200;
    prefix 2001:db8::/64 {
        DeprecatePrefix on;
        AdvPreferredLifetime 0;
    };
};

-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421




More information about the Pkg-systemd-maintainers mailing list