lagg Interfaces - don't do Gratuitous ARP?
Steven Hartland
killing at multiplay.co.uk
Thu Sep 22 15:34:07 UTC 2016
On 22/09/2016 16:09, Gleb Smirnoff wrote:
> On Thu, Sep 22, 2016 at 08:21:08AM +0100, Steven Hartland wrote:
> S> On 22/09/2016 03:58, Gleb Smirnoff wrote:
> S> > On Wed, Sep 21, 2016 at 09:12:11PM -0400, Ryan Stone wrote:
> S> > R> > IMHO, the original patch was absolutely evil hack touching multiple
> S> > R> > layers, for the sake of a very special problem.
> S> > R> >
> S> > R> > I think, that in order to kick forwarding table on switches, lagg
> S> > R> > should:
> S> > R> >
> S> > R> > - allocate an mbuf itself
> S> > R> > - set its source hardware address to its own
> S> > R> > - set destination hardware to broadcast
> S> > R> > - put some payload in there, to make packet of valid size. Why should it be
> S> > R> > gratuitous ARP? A machine can be running IPv6 only, or may even use
> S> > R> > whatever
> S> > R> > higher level protocol, e.g. PPPoE. We shouldn't involve IP into this
> S> > R> > Layer 2
> S> > R> > problem at all.
> S> > R> > - Finally, send the prepared mbuf down the lagg member(s).
> S> > R> >
> S> > R> > And please don't hack half of the network stack to achieve that :)
> S> > R>
> S> > R> The original report in this thread is about a system where it takes almost
> S> > R> 15 minutes for the network to start working again after a failover. That
> S> > R> does not sound to me like a switch problem. That sounds to me like the ARP
> S> > R> cache on the remote system. To fix such a case we have to touch L3.
> S> >
> S> > Does lagg(4) hardware address change when it failovers?
> S> >
> S> It moves the address between interfaces which typically moves it between
> S> switches too.
>
> So, the address doesn't change, which means ARP cache doesn't need to
> change as well. If it moves between switches, all that needs to be done
> is to send whatever packet from proper hardware address to broadcast.
>
That would be nice but unfortunately in the wild that won't work as
without GARP devices can and do ignore :(
Regards
Steve
More information about the freebsd-net
mailing list