Dear Maintainer, when both IPv4 and IPv6 are statically configured, ifdown first removes the IPv4 addresses, then puts the interfaces down, and then tries to remove the IPv6 addresses, which results in the error message "RTNETLINK answers: Cannot assign requested address". Here is the verbose output: root@host:~# ifdown -v ens2 ifdown: reading directory /etc/network/interfaces.d ifdown: parsing file /etc/network/interfaces.d/ens2 ifdown: configuring interface ens2=ens2 (inet) /bin/run-parts --verbose /etc/network/if-down.d /bin/ip addr del 10.0.0.1/255.255.255.255 broadcast 10.0.0.1 dev ens2 label ens2 /bin/ip link set dev ens2 down /bin/run-parts --verbose /etc/network/if-post-down.d ifdown: configuring interface ens2=ens2 (inet6) /bin/run-parts --verbose /etc/network/if-down.d /bin/ip -6 addr del fd00::1/128 dev ens2 RTNETLINK answers: Cannot assign requested address /bin/ip link set dev ens2 down /bin/run-parts --verbose /etc/network/if-post-down.d
Debian Bug #858070 remains in ifdown version 0.8.36
Multipe static IPv4 and IPv6 address are affected because interface is flushed AND downed AFTER EVERY address delete.
admin@hef1v10:~$ cat /etc/network/interfaces.d/ens224
allow-hotplug ens224
iface ens224 inet static
address 64.62.193.70/28
iface ens224 inet static
address 64.62.193.74/28
iface ens224 inet static
address 64.62.193.75/28
iface ens224 inet static
address 64.62.193.76/28
iface ens224 inet static
address 64.62.193.77/28
iface ens224 inet static
address 64.62.193.78/28
iface ipv6all inet6 static
accept_ra 0 # Accept router advertisements 0=off
autoconf 0 # Perform stateless autoconfiguration 0=off
dad-attempts 0 # Duplicate Address Detection attempts
privext 0 # Privacy extensions (RFC3041) 0=off
iface ens224 inet6 static inherits ipv6all
address 2001:470:44:2::403e:c146/64
iface ens224 inet6 static inherits ipv6all
address 2001:470:44:2::403e:c14a/64
iface ens224 inet6 static inherits ipv6all
address 2001:470:44:2::403e:c14e/64
iface ens224 inet6 static inherits ipv6all
address 2001:470:44:2:20c:29ff:fe60:aa05/64
iface ens224 inet6 static inherits ipv6all
address 2001:470:44:2:20c:29ff:feba:79b3/64
iface ens224 inet6 static inherits ipv6all
address 2001:470:44:2:20c:29ff:fee1:45b7/64
admin@hef1v10:~$ sudo ifdown --version
ifdown version 0.8.36
Copyright (c) 1999-2009 Anthony Towns
2010-2015 Andrej Shadura
2015-2017 Guus Sliepen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
admin@hef1v10:~$ sudo ifdown --verbose ens224
ifdown: parsing file /etc/network/interfaces.d/ens224
ifdown: configuring interface ens224=ens224 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip addr del 64.62.193.70/255.255.255.240 broadcast 64.62.193.79 dev ens224 label ens224
/sbin/ip -4 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip addr del 64.62.193.74/255.255.255.240 broadcast 64.62.193.79 dev ens224 label ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -4 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip addr del 64.62.193.75/255.255.255.240 broadcast 64.62.193.79 dev ens224 label ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -4 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip addr del 64.62.193.76/255.255.255.240 broadcast 64.62.193.79 dev ens224 label ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -4 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip addr del 64.62.193.77/255.255.255.240 broadcast 64.62.193.79 dev ens224 label ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -4 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip addr del 64.62.193.78/255.255.255.240 broadcast 64.62.193.79 dev ens224 label ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -4 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet6)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip -6 addr del 2001:470:44:2::403e:c146/64 dev ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -6 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet6)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip -6 addr del 2001:470:44:2::403e:c14a/64 dev ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -6 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet6)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip -6 addr del 2001:470:44:2::403e:c14e/64 dev ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -6 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet6)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip -6 addr del 2001:470:44:2:20c:29ff:fe60:aa05/64 dev ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -6 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet6)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip -6 addr del 2001:470:44:2:20c:29ff:feba:79b3/64 dev ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -6 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ifdown: configuring interface ens224=ens224 (inet6)
/bin/run-parts --verbose /etc/network/if-down.d
/sbin/ip -6 addr del 2001:470:44:2:20c:29ff:fee1:45b7/64 dev ens224
RTNETLINK answers: Cannot assign requested address
/sbin/ip -6 addr flush dev ens224
/sbin/ip link set dev ens224 down
/bin/run-parts --verbose /etc/network/if-post-down.d
I just started looking into this, due to seeing spurious RTNETLINK messages during `ifdown lan0` on my setup. Running ifdown --verbose lan0 yields: ifdown: parsing file /etc/network/interfaces.d/000-lo ifdown: parsing file /etc/network/interfaces.d/010-lan0 ifdown: configuring interface lan0=lan0 (inet) run-parts --verbose /etc/network/if-down.d run-parts: executing /etc/network/if-down.d/resolved ip route del default via 192.168.1.1 dev lan0 2>&1 1>/dev/null || true ip addr del 192.168.1.124/255.255.255.0 broadcast 192.168.1.255 dev la ip -4 addr flush dev lan0 ip link set dev lan0 down run-parts --verbose /etc/network/if-post-down.d ifdown: configuring interface lan0=lan0 (inet6) run-parts --verbose /etc/network/if-down.d run-parts: executing /etc/network/if-down.d/resolved ip -6 route del default via 2001:4d48:ad5d:de00::1 dev lan0 RTNETLINK answers: No such process ip -6 addr del 2001:4d48:ad5d:de02::1/56 dev lan0 RTNETLINK answers: Cannot assign requested address ip -6 addr flush dev lan0 ip link set dev lan0 down run-parts --verbose /etc/network/if-post-down.d If I run the `ip ...` commands for the IPv4 part of this *without* the `ip link set dev lan0 down` then the IPv6 `ip ...` commands complete without any RTNETLINK messages. This is with ifupdown 0.8.41: ii ifupdown 0.8.41 amd64 high level tools to configure netwo At least now I know the cause and can just choose to ignore these messages when they show up in logcheck output (which is every day, because this is my "backup copy of backups" server which comes up/down once a day). I would prefer this bug be fixed so that I still have visibity on "you DO need to correct something" RTNETLINK messages without having these ones repeatedly. Either the logic needs to know it'll be performing more configuration on the same interface, and thus don't set the link down until the last of those... or if that's complicated, then maybe an interface configuration option to remove all the actual configuration but leave the link up ?