Re: send garp to unicast peer when leaving fault state?

Olivier Matz <[email protected]> Fri, 24 May 2019 12:14:22 +0200
Newsgroups gmane.linux.keepalived.devel
Message-ID <20190524101422.2imysq37pajzsx5m@platinum>
Hi,

On Wed, May 22, 2019 at 08:59:14AM +0100, Quentin Armitage wrote:
> On Mon, 2019-05-20 at 08:59 +0200, Olivier Matz wrote:
> > Hi,
> > 
> > I have an issue in the following VRRP scenario:
> > - unicast peering
> > - fast advertisements (100ms)
> > 
> > Machine A
> >     version 3
> >     state BACKUP
> >     interface eth0
> >     garp_master_delay 1
> >     virtual_router_id 1
> >     priority 200
> >     advert_int 100
> >     unicast_peer {
> >       192.168.0.1
> >     }
> >     virtual_ipaddress {
> >       10.200.0.2/24
> >     }
> >     preempt_delay 30
> > 
> > Machine B
> >     version 3
> >     state BACKUP
> >     interface eth0
> >     garp_master_delay 1
> >     virtual_router_id 1
> >     priority 100
> >     advert_int 100
> >     unicast_peer {
> >       192.168.0.2
> >     }
> >     virtual_ipaddress {
> >       10.200.0.1/24
> >     }
> >     preempt_delay 30
> > 
> > 
> > 1/ initial state: A is master
> > 
> > 2/ set eth0 down on machine A
> > 
> >    A switch to fault, B becomes master
> > 
> >    B sends advertisements to A, but after some time, the
> >    ARP cache expires, so B regularly sends ARP requests that
> >    have no answers.
> > 
> > 4/ set eth0 up on machine A
> > 
> >    A changes to backup, and after ~300ms (down timer), it thinks there
> >    is no other master so it changes to master, bypassing the preemt_delay.
> > 
> > I workarounded the issue by using static ARP entries.
> > 
> > Is there a feature in keepalived to solve this issue? Should keepalived
> > send gratuitous ARPs when leaving the fault state when using unicast
> > peers? Or is it something that should be done in a user script?
> > 
> > Thanks,
> > Olivier
> > 
> Olivier,
> 
> This is clearly an issue, and keepalived currently has no direct mechanism to send gratuitous ARPs when leaving fault state.
> I think your suggestion that keepalived when using unicasting should send gratuitous ARP messages when transitioning out of
> fault state is the correct solution.
> 
> Could you please raise an issue at https://github.com/acassen/keepalived/issues including the details above so that we can
> track the progress and anyone else experiencing the issue can add their own input.
> 
> Many thanks,
> Quentin Armitage

Done: https://github.com/acassen/keepalived/issues/1283

Thanks!
Olivier