All of lore.kernel.org
 help / color / mirror / Atom feed
* Creating a bonding interface via the ip tool gives it the wrong MAC address
@ 2020-04-01 15:03 Mikhail Morfikov
  2020-04-01 15:56 ` Michal Kubecek
  0 siblings, 1 reply; 3+ messages in thread
From: Mikhail Morfikov @ 2020-04-01 15:03 UTC (permalink / raw)
  To: netdev

A couple months ago I opened an issue on the Debian Bug Tracker[1] concerning
some weird network behavior, in which bonding interface was involved. Basically, 
what I wanted to achieve was to have two interfaces (eth0 and wlan0) of my 
laptop in the *active-backup* mode, and in order to make this work, the 
*fail_over_mac* has to be set to *none*. Then the two interfaces (and also the 
bond0 interface) should have the same MAC address, which is set based on the 
interface specified by the *primary* parameter (in this case eth0). 

This was working well in the past, but it stopped for some reason. When the 
bond0 interface is being set up via the /etc/network/interfaces file, it gets 
wrong MAC address, and it's always the same MAC (ca:16:91:ae:9a:ba).  

I didn't really know where the problem was (it looks like no one knows so far), 
but I recently moved from ifupdown to systemd-networkd, and I noticed that the 
issue went away, at least in the default config. But in my case, I had to 
create the bonding interface during the initramfs/initrd phase using the *ip* 
tool (the regular one, and not the one from busybox). And the problem came back, 
but in this case I couldn't really fix it by just restarting the network 
connection.

So I created manually the bond0 interface using the *ip* tool in the following 
way to check what will happen:

ip link add name bond0 type bond mode active-backup \
  miimon 200 \
  downdelay 400 \
  updelay 400 \
  primary eth0 \
  primary_reselect always \
  fail_over_mac none \
  min_links 1

and the interface got the MAC in question. That gave me the idea that something 
could be wrong with setting up/configuring the bonding interface via the *ip* 
tool because it works well with systemd-networkd, which I think doesn't use the 
tool to configure the network interfaces.

So why does this happen?


[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949062&archived=False&mbox=no&mboxmaint=no

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Creating a bonding interface via the ip tool gives it the wrong MAC address
  2020-04-01 15:03 Creating a bonding interface via the ip tool gives it the wrong MAC address Mikhail Morfikov
@ 2020-04-01 15:56 ` Michal Kubecek
  2020-04-01 17:47   ` Mikhail Morfikov
  0 siblings, 1 reply; 3+ messages in thread
From: Michal Kubecek @ 2020-04-01 15:56 UTC (permalink / raw)
  To: netdev; +Cc: Mikhail Morfikov

On Wed, Apr 01, 2020 at 05:03:58PM +0200, Mikhail Morfikov wrote:
> A couple months ago I opened an issue on the Debian Bug Tracker[1] concerning
> some weird network behavior, in which bonding interface was involved. Basically, 
> what I wanted to achieve was to have two interfaces (eth0 and wlan0) of my 
> laptop in the *active-backup* mode, and in order to make this work, the 
> *fail_over_mac* has to be set to *none*. Then the two interfaces (and also the 
> bond0 interface) should have the same MAC address, which is set based on the 
> interface specified by the *primary* parameter (in this case eth0). 
> 
> This was working well in the past, but it stopped for some reason. When the 
> bond0 interface is being set up via the /etc/network/interfaces file, it gets 
> wrong MAC address, and it's always the same MAC (ca:16:91:ae:9a:ba).  
> 
> I didn't really know where the problem was (it looks like no one knows so far), 
> but I recently moved from ifupdown to systemd-networkd, and I noticed that the 
> issue went away, at least in the default config. But in my case, I had to 
> create the bonding interface during the initramfs/initrd phase using the *ip* 
> tool (the regular one, and not the one from busybox). And the problem came back, 
> but in this case I couldn't really fix it by just restarting the network 
> connection.
> 
> So I created manually the bond0 interface using the *ip* tool in the following 
> way to check what will happen:
> 
> ip link add name bond0 type bond mode active-backup \
>   miimon 200 \
>   downdelay 400 \
>   updelay 400 \
>   primary eth0 \
>   primary_reselect always \
>   fail_over_mac none \
>   min_links 1
> 
> and the interface got the MAC in question. That gave me the idea that something 
> could be wrong with setting up/configuring the bonding interface via the *ip* 
> tool because it works well with systemd-networkd, which I think doesn't use the 
> tool to configure the network interfaces.
> 
> So why does this happen?

I suspect you may be hitting the same issue as we had in

  https://bugzilla.suse.com/show_bug.cgi?id=1136600

(comment 9 explains the problem).

Michal

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Creating a bonding interface via the ip tool gives it the wrong MAC address
  2020-04-01 15:56 ` Michal Kubecek
@ 2020-04-01 17:47   ` Mikhail Morfikov
  0 siblings, 0 replies; 3+ messages in thread
From: Mikhail Morfikov @ 2020-04-01 17:47 UTC (permalink / raw)
  To: Michal Kubecek, netdev

On 01/04/2020 17:56, Michal Kubecek wrote:
> I suspect you may be hitting the same issue as we had in
> 
>   https://bugzilla.suse.com/show_bug.cgi?id=1136600
> 
> (comment 9 explains the problem).

Yes, that's it. I just created the following file: 

# cat /etc/systemd/network/99-default.link
[Match]
OriginalName=bond*

[Link]
MACAddressPolicy=none

And that fixed the issue.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-04-01 17:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-01 15:03 Creating a bonding interface via the ip tool gives it the wrong MAC address Mikhail Morfikov
2020-04-01 15:56 ` Michal Kubecek
2020-04-01 17:47   ` Mikhail Morfikov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.