Package: ifupdown
Version: 0.8.45
Severity: normal
Tags: patch
Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate ***
When configuring an interface with IPv6 DHCP, ifupdown waits for the
IPv6 link-local address before starting the DHCPv6 client.
The default timeout is too short for some environments. The default
setting is:
ll-attempts = 60
ll-interval = 0.1
which means the maximum wait time is only about 6 seconds.
On systems where the interface is connected through a Linux bridge with
Spanning Tree Protocol (STP) enabled, the bridge may stay in the
Listening/Learning states for around 30 seconds before forwarding
traffic. During this period, IPv6 Neighbor Discovery cannot complete,
and no link-local address is assigned.
As a result, ifupdown gives up waiting for the link-local address before
the interface becomes operational. DHCPv6 configuration therefore fails,
even though the interface becomes usable a short time later.
Steps to reproduce:
1. Create a Linux bridge with STP enabled.
2. Connect an interface through the bridge.
3. Configure the interface with:
iface br0 inet6 dhcp
4. Bring the interface up with ifup.
Observed result:
ifupdown stops waiting after approximately 6 seconds and DHCPv6
configuration fails because no IPv6 link-local address has appeared yet.
Expected result:
ifupdown should either:
* wait significantly longer by default (for example around 30 seconds),
or
* automatically adapt the timeout when STP is enabled, or
* clearly document that users should increase ll-attempts when STP is
used.
Workaround:
Adding
ll-attempts 300
to the interface configuration increases the timeout to about 30 seconds
and avoids the problem.
This suggests that the current default timeout is too aggressive for
networks using STP.
-- Package-specific info:
--- /etc/network/interfaces:
#/etc/network/interfaces
source /etc/network/interfaces.d/*
--- /etc/network/interfaces.d/*:
#need apt install vlan
auto enp2s0.3 enp2s0.1
#in_net
iface enp2s0.1 inet manual
vlan-raw-device enp2s0
#need apt install bridge-utils
auto in_net
iface in_net inet static
bridge_ports enp2s0.1 tap8
bridge_stp on
bridge_maxwait 5
#bridge_fd 0
address 192.168.3.3
netmask 255.255.254.0
broadcast 192.168.3.255
network 192.168.2.0
iface in_net inet6 dhcp
#ll-attempts 300
post-up rm -f /etc/resolv.conf && cp /etc/my_resolv.conf /etc/resolv.conf ||true
auto lo
iface lo inet loopback
--- up and down scripts installed:
/etc/network/if-down.d:
total 8
lrwxrwxrwx 1 root root 33 Mar 11 2025 bridge ->
/usr/lib/bridge-utils/ifupdown.sh
-rwxr-xr-x 1 root root 759 Aug 20 2024 resolved
/etc/network/if-post-down.d:
total 8
lrwxrwxrwx 1 root root 33 Mar 11 2025 bridge ->
/usr/lib/bridge-utils/ifupdown.sh
-rwxr-xr-x 1 root root 1433 Aug 14 2024 vlan
/etc/network/if-pre-up.d:
total 16
lrwxrwxrwx 1 root root 33 Mar 11 2025 bridge ->
/usr/lib/bridge-utils/ifupdown.sh
-rwxr-xr-x 1 root root 348 Aug 23 2025 ethtool
-rwxr-xr-x 1 root root 4224 Aug 14 2024 vlan
/etc/network/if-up.d:
total 16
-rwxr-xr-x 1 root root 1689 Aug 23 2025 ethtool
-rwxr-xr-x 1 root root 677 Aug 14 2024 ip
-rwxr-xr-x 1 root root 4665 Aug 20 2024 resolved
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 7.1.3+deb14-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages ifupdown depends on:
ii adduser 3.157
ii iproute2 7.1.0-1
ii libc6 2.42-17
Versions of packages ifupdown recommends:
ii dhcpcd-base [dhcp-client] 1:10.3.2-4
Versions of packages ifupdown suggests:
pn ppp <none>
pn rdnssd <none>
-- no debconf information