Subject: RE: Ethernet [MAC] addresses
To: None <port-i386@netbsd.org>
From: Stefan Huelbrock <s.huelbrock@biodata.de>
List: port-i386
Date: 02/22/2001 16:46:17
>
> >> AFAIK, you can't... MAC addresses are uniques numbers assigned
> to NICs at
> >> time of production by the manufacturer.
> >>
> >> I can't see the point of wanting to change this, but you must have
> >> your reasons... perhaps you can enlighten me on this one...
> >
> >Several "high-availability" systems use MAC address modification as part
> >of their low level mechanism. It would be nice to have it available on
> >NetBSD too.
>
> 	ther are a lot of complication around here:
> 	- we can control source MAC address for outbound packet for
> some cards,
> 	  but not for some other cards.
Like someone pointed out AFAIK it's possible to change the MAC address on
nearly any card. Naturally not the "one" MAC address of the card which is
stored in the (E?)EPROM. But most cards I've seen so far can be programmed
with another MAC which should be used.
> 	- when we try to configure for "high-availability" for IPv4, we need
> 	  more clever ARP table (which maps peer's MAC address and the MAC
> 	  address we have used).
I don't see exactly why... IPv4 implementation don't care which MAC is
presented to them as long as the IP stays the same (imagine you have a
network with several redundant routers and the dynamic routing changes. If
the MAC address would matter all TCP conenctions would break.)
> 	- when we generate outgoing IP packets, we may need to configure
> 	  the same IP address onto two interfaces.  then, we have tricky
> 	  setup for interface route on routing table (which interface should
> 	  we point for 10.0.0.0/24?)
Don't understand the point... and how is it connected to the MAC issue? I
guess this is a misunderstanding on what's meant with high-availability... I
guess most people (at last me and the ones mentioning stonebeat) do mean to
take 2 entire machines and duplicate them and if one fails the other takes
over the MAC addresses and IP's of the first machine.
I guess you are talking about putting 2 NIC's in a machine which are
connected to one network? Or am I totally confused?
> 	- load balancing policy is of course more difficult than single
> 	  interface cases.
> 	- IPv6 link scope issues.
I do not know enough about this. But I imagine that it would be no problems
even if the MAC address is contained in the IPv6 address if one machine
takes over the MAC address of another machine (if the one is dead) and also
takes over the IPv6 address.

> 	it seems to me it can best addressed by virtual interface that binds
> 	multiple ethernet interfaces into one (like vlan*
> interfaces), however,
> 	it still does not solve some of the above complications.
I guess this is an indicator of my assumption above...

Like I said: I would be happy to be able to duplicate a whole machine in a
master slave (or better in a load sharing (or even better load balancing))
setup. If this is possible the other thing (failover of NIC's) isn't
necessary or may only be necessary out of financial reasons ;-)
If used as some kind of gateway better duplicate machines -- or what do you
do if your harddisk fails?

Note: what I'm writing shouldn't suggest that this is the only solution to
reach a high availability. This does also work using multicast groups (like
in Stonebeat3 or VRRP) or issuing a gracious ARP from the slave machine if
the one takes over.
But from what I've seen up to now, taking over the MAC and IP does work in
the most seamless and obvious way.

Have a nice day
Stefan