--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: ifupdown: Bonding interface gets the wrong MAC address when configured for the first time
- From: Mikhail Morfikov <mmorfikov@gmail.com>
- Date: Thu, 16 Jan 2020 15:57:31 +0100
- Message-id: <157918665145.31061.17959103841827787133.reportbug@morfikownia.mhouse>
Package: ifupdown
Version: 0.8.35+b1
Severity: important
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Dear Maintainer,
I'm using a Debian Sid, and the network configuration is managed by the
/etc/network/interface file. Basically my laptop has the eth0 and wlan0
interfaces configured in the file in the following way:
auto eth0
iface eth0 inet dhcp
iface wlan0 inet dhcp
wpa-driver wext
wpa-debug-level -1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Here's the eth0 status when I set it up:
# ip addr show dev eth0
5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
link/ether 3c:4a:92:00:4c:5b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic
eth0
valid_lft 85964sec preferred_lft 85964sec
inet6 fdb0:1a5d:ca34:0:3e4a:92ff:fe00:4c5b/64 scope global
dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 fe80::3e4a:92ff:fe00:4c5b/64 scope link
valid_lft forever preferred_lft forever
And here's the wlan0 status:
# ip addr show dev wlan0
6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
group default qlen 1000
link/ether c0:cb:38:01:f0:f5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.193/24 brd 192.168.1.255 scope global dynamic
wlan0
valid_lft 43193sec preferred_lft 43193sec
inet6 fdb0:1a5d:ca34:0:c2cb:38ff:fe01:f0f5/64 scope global
dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 fe80::c2cb:38ff:fe01:f0f5/64 scope link
valid_lft forever preferred_lft forever
So the eth0 MAC address is 3c:4a:92:00:4c:5b, and wlan0 MAC address is
c0:cb:38:01:f0:f5. But I don't want to switch between the wire and wireless
interfaces manually (depending whether the cable is plugged in or not), so I'm
using a bond0 virtual interface to manage my laptop's network connection.
My home router uses the eth0 MAC to set the same IP address via DHCP for my
laptop whenever it connects to the network.
For many years I have the following configuration of the bond0 interface (and
the above entries commented out):
auto bond0
iface bond0 inet dhcp
metric 10
bond-mode active-backup
bond-miimon 100
bond-downdelay 500
bond-updelay 500
bond-primary eth0
bond-primary-reselect always
bond-fail-over-mac none
bond-slaves eth0 wlan0
allow-bond0 wlan0
iface wlan0 inet manual
bond-give-a-chance 2
wpa-driver nl80211
wpa-debug-level -1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
So according to this setup, all the three interfaces (bond0, eth0 and wlan0)
should have assigned the same MAC address, and it should be the same as the
original MAC of the eth0 interface. That worked fine for many years.
When I set the bond0 interface up, I get the following info from the
/proc/net/bonding/bond0 file and via the ip tool:
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 500
Down Delay (ms): 500
Peer Notification Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:4a:92:00:4c:5b
Slave queue ID: 0
Slave Interface: wlan0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: c0:cb:38:01:f0:f5
Slave queue ID: 0
# ip addr show
...
2: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UP group default qlen 1000
link/ether ca:16:91:ae:9a:ba brd ff:ff:ff:ff:ff:ff
inet 192.168.1.127/24 brd 192.168.1.255 scope global dynamic
bond0
valid_lft 43058sec preferred_lft 43058sec
inet6 fdb0:1a5d:ca34:0:c816:91ff:feae:9aba/64 scope global
dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 fe80::c816:91ff:feae:9aba/64 scope link
valid_lft forever preferred_lft forever
5: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast master bond0 state UP group default qlen 1000
link/ether ca:16:91:ae:9a:ba brd ff:ff:ff:ff:ff:ff
6: wlan0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq
master bond0 state UP group default qlen 1000
link/ether ca:16:91:ae:9a:ba brd ff:ff:ff:ff:ff:ff
So the bond0, eth0 and wlan0 interfaces have now the ca:16:91:ae:9a:ba MAC
addresses assigned. And the questions is why? None of my laptop's interfaces
has this MAC address, so where does it come from?
The weirdest thing is that when I bring the bond0 interface down and up again
(ifdown bond0/ifup bond0), the problem goes away. In such situation I get the
following info in the /proc/net/bonding/bond0 file:
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 500
Down Delay (ms): 500
Peer Notification Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:4a:92:00:4c:5b
Slave queue ID: 0
Slave Interface: wlan0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: c0:cb:38:01:f0:f5
Slave queue ID: 0
It looks like it's the same as before, but when I check the interface status, I
get the following:
# ip addr show
...
2: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UP group default qlen 1000
link/ether 3c:4a:92:00:4c:5b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic
bond0
valid_lft 86377sec preferred_lft 86377sec
inet6 fdb0:1a5d:ca34:0:3e4a:92ff:fe00:4c5b/64 scope global
dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 fe80::3e4a:92ff:fe00:4c5b/64 scope link
valid_lft forever preferred_lft forever
5: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast master bond0 state UP group default qlen 1000
link/ether 3c:4a:92:00:4c:5b brd ff:ff:ff:ff:ff:ff
6: wlan0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq
master bond0 state UP group default qlen 1000
link/ether 3c:4a:92:00:4c:5b brd ff:ff:ff:ff:ff:ff
So now all the three interfaces have the same MACs and it point to the original
MAC of the eth0 interface.
So why is this happening? Is this a kernel bug, systemd bug or Debian network-
related thing?
I thought this is temporary, but this problem doesn't want to go away.
Basically whenever I boot my laptop I have to restart the network to make it
work properly.
- -- Package-specific info:
- --- /etc/network/interfaces.d/*:
cat: '/etc/network/interfaces.d/*': No such file or directory
- --- up and down scripts installed:
/etc/network/if-down.d:
total 4
- -rwxr-xr-x 1 root root 372 Dec 11 2017 openvpn
lrwxrwxrwx 1 root root 32 Jan 13 16:28 wpasupplicant ->
../../wpa_supplicant/ifupdown.sh
/etc/network/if-post-down.d:
total 8
lrwxrwxrwx 1 root root 29 Jan 28 2019 bridge -> /lib/bridge-
utils/ifupdown.sh
lrwxrwxrwx 1 root root 25 Jan 13 16:28 hostapd -> ../../hostapd/ifupdown.sh
- -rwxr-xr-x 1 root root 1714 Sep 27 2016 ifenslave
lrwxrwxrwx 1 root root 28 Jun 17 2018 macchanger ->
../../macchanger/ifupdown.sh
- -rwxr-xr-x 1 root root 1409 Mar 24 2016 wireless-tools
lrwxrwxrwx 1 root root 32 Jan 13 16:28 wpasupplicant ->
../../wpa_supplicant/ifupdown.sh
/etc/network/if-pre-up.d:
total 20
lrwxrwxrwx 1 root root 29 Jan 28 2019 bridge -> /lib/bridge-
utils/ifupdown.sh
- -rwxr-xr-x 1 root root 344 Jun 30 2016 ethtool
lrwxrwxrwx 1 root root 25 Jan 13 16:28 hostapd -> ../../hostapd/ifupdown.sh
- -rwxr-xr-x 1 root root 6298 Sep 27 2016 ifenslave
lrwxrwxrwx 1 root root 28 Jun 17 2018 macchanger ->
../../macchanger/ifupdown.sh
- -rwxr-xr-x 1 root root 4191 Sep 15 2018 wireless-tools
lrwxrwxrwx 1 root root 32 Jan 13 16:28 wpasupplicant ->
../../wpa_supplicant/ifupdown.sh
/etc/network/if-up.d:
total 12
- -rwxr-xr-x 1 root root 1685 Jun 30 2016 ethtool
- -rwxr-xr-x 1 root root 1741 Sep 27 2016 ifenslave
- -rwxr-xr-x 1 root root 385 Dec 11 2017 openvpn
lrwxrwxrwx 1 root root 32 Jan 13 16:28 wpasupplicant ->
../../wpa_supplicant/ifupdown.sh
- -- System Information:
Debian Release: bullseye/sid
APT prefers unstable
APT policy: (990, 'unstable'), (500, 'testing'), (130, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 5.4.11-amd64 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages ifupdown depends on:
ii adduser 3.118
ii iproute2 5.4.0-1
ii libc6 2.29-9
ii lsb-base 11.1.0
Versions of packages ifupdown recommends:
ii isc-dhcp-client [dhcp-client] 4.4.1-2
Versions of packages ifupdown suggests:
ii ppp 2.4.7-2+4.1+b1
pn rdnssd <none>
- -- Configuration Files:
/etc/default/networking changed [not included]
- -- no debconf information
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE5JPPWm5C7TFDUMqpzQRoEHcbZSAFAl4gecsACgkQzQRoEHcb
ZSDpchAAgGV+BXv7pgk7uyacDIX8hbKAX48Z8YyYVQvWb6OrLuEudZzyay4aOx51
mCTpmVPlVS1MR0Gr/ZirCepmsX2LSefitsk+gpnEf0399msnxCBWScIrUwwwAVcM
9VPvmyBkPx8PkYL3USqJdQiMZwwACZNlruCOuRp9nd1LJU+6d1uBHN5qVh7+t+14
UnNZDpEqr2Wvt3knQxyGTqpRSJ+pLBJ51n9yLD+F3vNtrEV2IQV8PEEEtJKPfc7N
T6HoV7Zca0VjxpTs3xTcHy/CR9ag9WSAro8ZyszqhnD62NqXsrSvX8LrSlho+/qZ
utYuS2MJyE5zdKj6wwgopA5dqB85r3SOIcHUPQvOM6+8QRNLLiPB2EILItNT3i42
ySNVINkqt6SfWlCBApX+1Z14T9xJcjtFt8Q60uE68aWtD3jnYK8bha4JyHLq7K3d
K0huhAVujZvpPAl5mRDfH1E5j33/945enOcZtKlOqpgvPcT+dv3g8LpWIRH51fOH
lzFRcvUXAOR7oXgvxFizw68CSWRDZ0tC8Y2JPT6ETGwrUxVzC6yE3IorguJTisj3
bzMzMHrdzLdV93Y5A0UQbl9N5phMVPwxm9J3kLz7mr3vVmtUEEeab9GNWFY4bJBs
FPcGvA9PuT9C4HwqYm+fSj3VTpYL7Fy8apFE44IcfzYJtyux2Co=
=ao4k
-----END PGP SIGNATURE-----
--- End Message ---