freevrrpd
—
Virtual Redundancy Router Protocol Daemon
freevrrpd |
[-F ]
[-f config_file]
[-c chroot_directory] |
freevrrpd
is an RFC2338/5798 compliant
daemon. VRRP can be used with multiple interfaces as well as multiple VRIDs.
For each VRID defined in the configuration file,
freevrrpd
creates a thread for managing a poll of
one or multiple virtual IP addresses. The daemon currently only supports
IPv4 but IPv6 is being developed.
When freevrrpd
start, it reads
/usr/local/etc/freevrrpd.conf file and then daemonizes itself. All of the
options are defined in the config file.
freevrrpd is compatible with FreeBSD.
Functionality includes :
- Support of multiple VRIDs
- State announcements are multicast using the
bpf(4)
device
- Changing routes and IP in 3 seconds
- Sending gratuitous ARP requests to clean the ARP cache of all hosts
listening hosts
- Election between different backup and master servers with differing
priorities
- The same host can be both a SLAVE and MASTER at the same time for
different VRIDs
- Automatic downgrade to BACKUP state if the MASTER returns to service
- Support of netmasks for virtual IP addresses
freevrrpd
reads its configuration data
from /usr/local/etc/freevrrpd.conf, or the file specified with -f on the
command line. The config file contains keyword-argument pairs, one per line.
Each VRID definition is defined by the [VRID] keyword. Lines starting with
'#' and empty lines are interpreted as comments.
The possible keywords and their meanings are as follows (note that
keywords and arguments are case-sensitive):
serverid
- This keyword is followed by a decimal number between 1 and 255 and
represents the group identifier (Virtual Router Identifier).
interface
- This keyword is followed by an interface name where multicast VRRP
announcements of the specified serverid group will be sent.
useVMAC
- Specifies whether Virtual MAC address (like 00:5E:00:...) is permitted.
The default is “yes”. Note that disabling useVMAC is an RFC
violation but may be necessary for some specific cases. If disabled,
“sendgratuitousarp” must be enabled.
priority
- This keyword can be followed by a decimal number between 0 to 255. A
priority of 255 means a MASTER server. A priority between 0 to 254 is a
BACKUP priority. If the VRID MASTER fails 254 becomes MASTER before 253,
etc. A priority of 0 would be the last possible failover attempt.
addr
- Specifies all Virtual IP addresses separated by commas of the corresponded
VRID. A VIP syntax will be: “xxx.xxx.xxx.xxx/yy” or
“device:xxx.xxx.xxx.xxx/yy.” “xxx.xxx.xxx.xxx”
representing the IP address and “yy” is a netmask in CIDR
format. Device is an optional device where the VIP will be
configured.
monitoredcircuits
- Specifies whether NIC monitoring is enabled. This option uses a special
ioctl for getting carrier, duplex, and health of the network card. The
default is “yes”. Note that your NIC driver must support mii
bus functionality. Some old drivers cannot use this option and must be
disabled.
MCClearErrorsCount
- This keyword can be followed by a decimal number that represent the number
of concurrent valid checks (monitored circuits) before nberrors flag will
be resetted at 0. The default is “3600”. Note that the
default value means that 30 concurrent checks ok on a NIC by monitored
circuits will reset the error counter for this NIC. If a value of
masterscript
- This keyword can be followed by a script name with an absolute path and
will be executed during MASTER transition state.
backupscript
- This keyword takes the same argument as “masterscript”
except that this script is executed during BACKUP transition state.
vridsdep
- This keyword can be followed by a list of VRIDs in decimal format
separated by commas. If the VRID becomes BACKUP, all VRIDs specified will
be preempted and become BACKUP too.
password
- This keyword can be followed by a password for authenticating VRRP packets
on a specific VRID. Note that the password will be transmitted in clear
with this method.
AHencryption
- Not implemented yet
useIKE
- Not implemented yet
presharedkey
- Not implemented yet
This utility does not quit properly if you use the -KILL signal.
If you want to stop freevrrpd, use kill [PID] and not kill -9 [PID]. This
will allow it to delete virtual IP addresses and routes properly on
shutdown.
freevrrpd
is in active development. Please
send bugs report and suggestions.
George V. Neville-Neil
⟨gnn@FreeBSD.org⟩
Sebastien Petit ⟨spe@bsdfr.org⟩
Sebastien Petit
⟨spe@bsdfr.org⟩ was the original author.