[Xorp-hackers] linux VRRP svn xorp

Ben Greear greearb at candelatech.com
Fri Mar 19 23:14:05 PDT 2010


On 03/11/2010 08:13 AM, Eric S. Johnson wrote:
>
> So I am kind feeling silly this morning. Ive been chasing a bug
> that nearly  does not exist.
>
> On and off for the last two weeks I have been trying to debug
> why xorp svn (checked out 20100217, i dont think much has changed
> since then) VRRP didn't work.
>
> The behavior I saw was that when xorp became master for a router
> it would correctly change the mac address on the interface, but
> yet pinging the virtual IP would not work. I thought VRRP was
> broken and spent some time tracing through the code to figure
> out what was going on and going wrong.
>
> It was not until I was deep in the depths of vrrp/arpd.cc
> that I realized that the code was *mostly* working. Well,
> all the code I could find was working, but there is one
> behavior that is far from what I expected.
>
> I  found that indeed I could ping THROUGH the xorp VRRP master
> router, just not ping the virtual address it self.
>
> And that seems to be the way the code is designed to work?!?
>
> Vrrp::become_master()
> {
>      _state = MASTER;
> 					// my comments
>      _vif.add_mac(_source_mac);		// this changes the mac on the interface
>      send_advertisement();		// start sending vrrp master announcements
>      send_arps();			// send gratuitous arps
>      setup_timers();			// start timers
>      _arpd.start();			// start an pseudo arp deamon
> 					// that responds to arp requests for the virtual
> 					// IP address with the virtual mac

Seems to me that if we put a second IP on the interface, then we
can let the OS deal with arp and kill the arpd logic entirely.

> Would a correct solution be to have xorp set the virtual IP
> as a secondary IP on that VIF? If so, what would be the correct
> way to do this.. IfTreeVif::add_addr method?

Sounds good to me.  I fixed the bug in xorp.ct that caused vrrp
to crash early...now I'm seeing similar activity w/regard to
the MAC addr being set but no IP visible.

I'll poke at the add_addr logic and see what I can get
to happen...

Thanks,
Ben

-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com



More information about the Xorp-hackers mailing list