Ethernet Bridge development
 help / color / mirror / Atom feed
* [Bridge] Interface MAC address assignment
@ 2006-01-24  6:48 Ashley Hatch
  2006-01-24 17:21 ` [Bridge] " Stephen Hemminger
  0 siblings, 1 reply; 2+ messages in thread
From: Ashley Hatch @ 2006-01-24  6:48 UTC (permalink / raw)
  To: bridge; +Cc: shemminger

- SUMMARY - 

It seems like you should be able to assign your MAC on the bridging 
interfaces for IP L2 -> L3 mappings, or at least choose which NIC 
supplies the MAC.

Since my L2 mapping to my L3 address has nothing to do with my STP 
bridge ID, why can't we decouple them and have MAC locking or setting 
as an option to BRCTL and the kernel module so that brctl could 
prefer a NIC or ifconfig could set it for the purposes of IP?

- END SUMMARY -

Presently the system choose the lowest MAC for the purposes of STP 
and also assigns this MAC for the purposes of IP. This is fine for 
STP but certainly unnecessary for IP. The bridge ID and the IP/MAC do 
not need to be the same and in some cases certainly should not be 
(unless I'm missing something obvious).

I have looked through the code of brctl and the ethernet bridging 
code in the kernel and I have not found a way to resolve the 
following issue short of recoding it, and I can't seem to get a 
google search to help either.

When I create a bridging interface doing something like this:

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1

The resulting MAC address of the interface br0 is the lowest of all 
MACs. From an STP standpoint, this makes sense. I am using VMWARE 
virtual interfaces on a few machines, and these MACs are lower than 
some of my real NICs. They are not unique however. So when I bridge 
my virtual net and vmnet I sometimes get non-unique MACs on my real 
L2 network and the machines with the non-unique MAC of course cannot 
communicate. What I am doing to get around this is assign my REAL NIC 
MACs from OUIs which make them lower than the vmnet OUI. That feels 
tacky and wrong.

I thought to myself, "I'll just assign BR0 the MAC of my NIC (which 
is higher than VMNET2)." Alas 

ifconfig br0 hw ether aa:bb:cc:dd:ee:ff

Gives an ioctl error, and indeed is insupported in the kernel as far 
as I can tell. A buddy of mine and I are trying to hack it in, but it 
seems like something that should be in the mainline of the kernel.

If noone in briding is willing to support it, will someone consider a 
patch to do it?

Thanks,
Ashley Hatch
Senior Network Engineer - UNLV


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

* [Bridge] Re: Interface MAC address assignment
  2006-01-24  6:48 [Bridge] Interface MAC address assignment Ashley Hatch
@ 2006-01-24 17:21 ` Stephen Hemminger
  0 siblings, 0 replies; 2+ messages in thread
From: Stephen Hemminger @ 2006-01-24 17:21 UTC (permalink / raw)
  To: Ashley Hatch; +Cc: bridge

On Mon, 23 Jan 2006 22:48:23 -0800
"Ashley Hatch" <spam@atomtrap.com> wrote:

> - SUMMARY - 
> 
> It seems like you should be able to assign your MAC on the bridging 
> interfaces for IP L2 -> L3 mappings, or at least choose which NIC 
> supplies the MAC.
> 
> Since my L2 mapping to my L3 address has nothing to do with my STP 
> bridge ID, why can't we decouple them and have MAC locking or setting 
> as an option to BRCTL and the kernel module so that brctl could 
> prefer a NIC or ifconfig could set it for the purposes of IP?
> 
> - END SUMMARY -
> 
> Presently the system choose the lowest MAC for the purposes of STP 
> and also assigns this MAC for the purposes of IP. This is fine for 
> STP but certainly unnecessary for IP. The bridge ID and the IP/MAC do 
> not need to be the same and in some cases certainly should not be 
> (unless I'm missing something obvious).
> 
> I have looked through the code of brctl and the ethernet bridging 
> code in the kernel and I have not found a way to resolve the 
> following issue short of recoding it, and I can't seem to get a 
> google search to help either.
> 
> When I create a bridging interface doing something like this:
> 
> brctl addbr br0
> brctl addif br0 eth0
> brctl addif br0 eth1
> 
> The resulting MAC address of the interface br0 is the lowest of all 
> MACs. From an STP standpoint, this makes sense. I am using VMWARE 
> virtual interfaces on a few machines, and these MACs are lower than 
> some of my real NICs. They are not unique however. So when I bridge 
> my virtual net and vmnet I sometimes get non-unique MACs on my real 
> L2 network and the machines with the non-unique MAC of course cannot 
> communicate. What I am doing to get around this is assign my REAL NIC 
> MACs from OUIs which make them lower than the vmnet OUI. That feels 
> tacky and wrong.
> 
> I thought to myself, "I'll just assign BR0 the MAC of my NIC (which 
> is higher than VMNET2)." Alas 
> 
> ifconfig br0 hw ether aa:bb:cc:dd:ee:ff
> 
> Gives an ioctl error, and indeed is insupported in the kernel as far 
> as I can tell. A buddy of mine and I are trying to hack it in, but it 
> seems like something that should be in the mainline of the kernel.
> 
> If noone in briding is willing to support it, will someone consider a 
> patch to do it?
> 
> Thanks,
> Ashley Hatch
> Senior Network Engineer - UNLV

In 2.6.15 or later it can be changed to any of the existing interfaces.
I allowed that because it won't break the forwarding tables, and only
slightly effects STP.  (There is a higher risk of STP cycles).




-- 
Stephen Hemminger <shemminger@osdl.org>
OSDL http://developer.osdl.org/~shemminger

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

end of thread, other threads:[~2006-01-24 17:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-24  6:48 [Bridge] Interface MAC address assignment Ashley Hatch
2006-01-24 17:21 ` [Bridge] " Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox