FreeVRRPd causing DUP! ping replies problem

Hi guys,

I'm using Quagga 1.0.20160315 and FreeVRRPd 1.1_1 on BSDRP 1.6.
Since BSDRP is basically a FreeBSD, I think to post it here.

I installed this BSDRP on a physical server, at its HDD, connected to a LAN testing network.
There is only 1 port connected from this BSDRP into the switch.

I run continuous ping to the VRRP Virtual IP (172.16.88.4) and the IP attached to its physical IP (172.16.88.5).
This is the only VRRP node in the network. I don't install another device that use VRRP.
This is a standalone VRRP node.

Problem: There is always (DUP!) ping replies when I ping the Virtual IP.
Workaround: restarting the freevrrpd service for every 10 minutes.
Symptom: The (DUP!) replies will start 15 minutes after the last freevrrpd service restarted.

I usually setup VRRP on Cisco or Juniper or Brocade, and got no (DUP!) problem.

I'm stuck.
I desperately need your help.


Have anyone going through this before?
If you have, what is the solution?


Below is the verbose informations you may require.


Thank you,
Ssoorruu
==
Code:
====/usr/local/etc/freevrrpd.conf====
[root@R1RTR-BSDRP1]~# more /usr/local/etc/freevrrpd.conf
[VRID]
serverid = 32
interface = ixl0
priority = 200
addr = 172.16.88.4/32
====EOF====

Code:
====/boot/loader.conf.local====
[root@R1RTR-BSDRP1]~# more /boot/loader.conf.local
##################################################################
# For modifying this file, you need to remount in read-write     #
# the /: mount -u rw /                                           #
#                                                                #
# Don't load modules not necessary for mounting local disk here: #
# - add module name to the kld_list variable in rc.conf          #
# Example for loading the padlock crypto module and coretemp:    #
# kld_list='padlock coretemp'                                    #
#                                                                                                                                #
# Don't put serial/dual console port value like these here too:  #
# - boot_serial                                                                                                  #
# - comconsole_speed                                                                                     #
# - console                                                                                                              #
# Use /boot.config in place                                                                              #
##################################################################
#

### Text console in VT mode (we didn't use graphic)
hw.vga.textmode="1"

### Don't wait for USB (can prevent correct reboot)
hw.usb.no_shutdown_wait="1"

### Tune some global values ###
net.fibs="16"           # Numbers of FIB
hw.usb.no_pf="1"        # Disable USB packet filtering

### Intel NIC tuning ###
# Increase maximum number of descriptors per queue
# Own bench show better result with 2048 than 4096
# [URL]http://bsdrp.net/documentation/examples/forwarding_performance_lab_of_an_ibm_system_x3550_m3_with_intel_82580[/URL]
hw.igb.rxd="2048"
hw.igb.txd="2048"
hw.em.rxd="2048"
hw.em.txd="2048"
# Don't limit the maximum of number of received packets to process at a time
# Warning: Don't do this one a one core machine (it will be unresponsive under high network load)
hw.igb.rx_process_limit="-1"
hw.em.rx_process_limit="-1"
hw.ix.rx_process_limit="-1"
# Increase the maximum number of interrupts per second generated
# by single igb(4)-driven NIC.
# Bench results:
# [URL]http://bsdrp.net/documentation/examples/forwarding_performance_lab_of_a_superserver_5018a-ftn4#igb_4_num_queues_and_max_interrupt_rate_impact_on_forwarding_rate[/URL]
hw.igb.max_interrupt_rate="16000"
# Allow unsupported SFP
hw.ix.unsupported_sfp="1"

### Chelsio NIC tuning ###
# Increase size of descriptors per queue
# Own bench show a very-small improvement with 2048 than 1024(default)
# [URL]http://bsdrp.net/documentation/examples/forwarding_performance_lab_of_a_hp_proliant_dl360p_gen8_with_10-gigabit_with_10-gigabit_chelsio_t540-cr[/URL]
hw.cxgbe.qsize_txq="2048"
hw.cxgbe.qsize_rxq="2048"
# On a 8 cores machine, you should reduce the number of queue to 4
#hw.cxgbe.ntxq10g="4"
#hw.cxgbe.nrxq10g="4"
# Disabling "extended" feature of the NIC (not needed on a router), should improve performance when we will reach 10Mpps or more
cxgbe.toecaps_allowed="0"

### link tunning ###
# Increase interface send queue length
# lagg user: This value should be at minimum the sum of txd buffer of each NIC in the lagg
net.link.ifqmaxlen="10240"

====EOF====
Code:
====/boot/loader.conf====
[root@R1RTR-BSDRP1]~# more /boot/loader.conf
#################################################################
# Don't modify this file !                                      #
# Your changes will not be preserved after an upgrade           #
# Create a /boot/loader.conf.local in place                     #
#                                                               #
#################################################################
#
loader_logo="none"      # Disable the loader logo
autoboot_delay="2"      # Reduce the autoboot delay to 2 seconds
hw.vga.textmode="1"     # Text mode
=====EOF====
Code:
====/etc/rc.conf====
[root@R1RTR-BSDRP1]~# more /etc/rc.conf
###### BSD Router Project Base Configuration ########

# /etc/rc.conf: This file, put your configuration here
# /etc/rc.conf.misc: Special BSDRP configuration parameters (polling, somes sysctl tunning)
# /etc/default/rc.conf: Default FreeBSD value and some examples (Do not edit this file!)

# Hostname
hostname="R1RTR-BSDRP1"

# Enable routing
gateway_enable="YES"
ipv6_gateway_enable="YES"

# Enable IPv6
ipv6_activate_all_interfaces="YES"

# Enable Router Advertisment:
rtadvd_enable="NO"
rtadvd_interfaces="ixl0"

# Enable RFC1323 extensions
tcp_extensions="YES"

#Waiting for a default route
defaultroute_delay="5"
quagga_enable="YES"
sshd_enable="YES"
ifconfig_ixl0="inet 172.16.88.5 netmask 255.255.254.0 up"
freevrrpd_enable="YES"

=====EOF=====

====Hardware information====
NIC: 10G x4 ports Intel
Server: Supermicro SYS-2028TP-HC0TR
RAM: 128GB
CPU: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (detected 24)
====EOF=====

Code:
====Additional informations====
R1RTR-BSDRP1# show version
Quagga 1.0.20160315 ().
Copyright 1996-2005 Kunihiro Ishiguro, et al.
configured with:
    --enable-user=quagga --enable-group=quagga --sysconfdir=/usr/local/etc/quagga --localstatedir=/var/run/quagga --enable-vtysh --disable-irdb --enable-isisd --disable-isis-topology --enable-bgp-announce --without-libpam --disable-pimd --enable-rtadv --disable-snmp --enable-tcp-zebra --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/ --build=amd64-portbld-freebsd10.3

[root@R1RTR-BSDRP1]/usr/local/etc# uname -a
FreeBSD R1RTR-BSDRP1 10.3-RELEASE-p7 FreeBSD 10.3-RELEASE-p7 #0 r304003M: Thu Sep  8 01:00:28 CEST 2016     [email]olivier@lame4.bsdrp.net[/email]:/usr/obj/BSDRP.amd64/usr/local/BSDRP/BSDRP/FreeBSD/src/sys/amd64  amd64

[root@R1RTR-BSDRP1]/usr/local/etc# pkg info | grep -i vrrp
freevrrpd-1.1_1                RFC 2338 compliant VRRP implementation
[root@R1RTR-BSDRP1]/usr/local/etc# pkg info | grep -i quagga
quagga-1.0.20160315            Free RIPv1, RIPv2, OSPFv2, BGP4, IS-IS route software
=====EOF====
 
Back
Top