Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
OCF_HEARTBEAT_IPADDR(7)	      OCF resource agents      OCF_HEARTBEAT_IPADDR(7)

NAME
       ocf_heartbeat_IPaddr2 - Manages virtual IPv4 and	IPv6 addresses (Linux
       specific	version)

SYNOPSIS

       IPaddr2 [start |	stop | status |	monitor	| meta-data | validate-all]

DESCRIPTION
       This Linux-specific resource manages IP alias IP	addresses. It can add
       an IP alias, or remove one. In addition,	it can implement Cluster Alias
       IP functionality	if invoked as a	clone resource.

       If used as a clone, "shared address with	a trivial, stateless
       (autonomous) load-balancing/mutual exclusion on ingress"	mode gets
       applied (as opposed to "assume resource uniqueness" mode	otherwise).
       For that, Linux firewall	(kernel	and userspace) is assumed, and since
       recent distributions are	ambivalent in plain "iptables" command to
       particular back-end resolution, "iptables-legacy" (when present)	gets
       prioritized so as to avoid incompatibilities (note that respective
       ipt_CLUSTERIP firewall extension	in use here is,	at the same time,
       marked deprecated, yet said "legacy" layer can make it workable,
       literally, to this day) with "netfilter"	one (as	in "iptables-nft"). In
       that case, you should explicitly	set clone-node-max >= 2, and/or
       clone-max < number of nodes. In case of node failure, clone instances
       need to be re-allocated on surviving nodes. This	would not be possible
       if there	is already an instance on those	nodes, and clone-node-max=1
       (which is the default).

       When the	specified IP address gets assigned to a	respective interface,
       the resource agent sends	unsolicited ARP	(Address Resolution Protocol,
       IPv4) or	NA (Neighbor Advertisement, IPv6) packets to inform
       neighboring machines about the change. This functionality is controlled
       for both	IPv4 and IPv6 by shared	'arp_*'	parameters.

SUPPORTED PARAMETERS
       ip
	   The IPv4 (dotted quad notation) or IPv6 address (colon hexadecimal
	   notation) example IPv4 "192.168.1.1". example IPv6
	   "2001:db8:DC28:0:0:FC57:D4C8:1FFF".

	   (unique, required, string, no default)

       nic
	   The base network interface on which the IP address will be brought
	   online. If left empty, the script will try and determine this from
	   the routing table.

	   Do NOT specify an alias interface in	the form eth0:1	or anything
	   here; rather, specify the base interface only. If you want a	label,
	   see the iflabel parameter.

	   Prerequisite:

	   There must be at least one static IP	address, which is not managed
	   by the cluster, assigned to the network interface. If you can not
	   assign any static IP	address	on the interface, modify this kernel
	   parameter:

	   sysctl -w net.ipv4.conf.all.promote_secondaries=1 # (or per device)

	   (optional, string, no default)

       cidr_netmask
	   The netmask for the interface in CIDR format	(e.g., 24 and not
	   255.255.255.0)

	   If unspecified, the script will also	try to determine this from the
	   routing table.

	   (optional, string, no default)

       broadcast
	   Broadcast address associated	with the IP. It	is possible to use the
	   special symbols '+' and '-' instead of the broadcast	address. In
	   this	case, the broadcast address is derived by setting/resetting
	   the host bits of the	interface prefix.

	   (optional, string, no default)

       iflabel
	   You can specify an additional label for your	IP address here. This
	   label is appended to	your interface name.

	   The kernel allows alphanumeric labels up to a maximum length	of 15
	   characters including	the interface name and colon (e.g.
	   eth0:foobar1234)

	   A label can be specified in nic parameter but it is deprecated. If
	   a label is specified	in nic name, this parameter has	no effect.

	   (optional, string, no default)

       lvs_support
	   Enable support for LVS Direct Routing configurations. In case a IP
	   address is stopped, only move it to the loopback device to allow
	   the local node to continue to service requests, but no longer
	   advertise it	on the network.

	   Notes for IPv6: It is not necessary to enable this option on	IPv6.
	   Instead, enable 'lvs_ipv6_addrlabel'	option for LVS-DR usage	on
	   IPv6.

	   (optional, boolean, default false)

       lvs_ipv6_addrlabel
	   Enable adding IPv6 address label so IPv6 traffic originating	from
	   the address's interface does	not use	this address as	the source.
	   This	is necessary for LVS-DR	health checks to realservers to	work.
	   Without it, the most	recently added IPv6 address (probably the
	   address added by IPaddr2) will be used as the source	address	for
	   IPv6	traffic	from that interface and	since that address exists on
	   loopback on the realservers,	the realserver response	to
	   pings/connections will never	leave its loopback. See	RFC3484	for
	   the detail of the source address selection.

	   See also 'lvs_ipv6_addrlabel_value' parameter.

	   (optional, boolean, default false)

       lvs_ipv6_addrlabel_value
	   Specify IPv6	address	label value used when 'lvs_ipv6_addrlabel' is
	   enabled. The	value should be	an unused label	in the policy table
	   which is shown by 'ip addrlabel list' command. You would rarely
	   need	to change this parameter.

	   (optional, integer, default 99)

       mac
	   Set the interface MAC address explicitly. Currently only used in
	   case	of the Cluster IP Alias. Leave empty to	chose automatically.

	   (optional, string, no default)

       clusterip_hash
	   Specify the hashing algorithm used for the Cluster IP
	   functionality.

	   (optional, string, default "sourceip-sourceport")

       unique_clone_address
	   If true, add	the clone ID to	the supplied value of IP to create a
	   unique address to manage

	   (optional, boolean, default false)

       arp_interval
	   Specify the interval	between	unsolicited ARP	(IPv4) or NA (IPv6)
	   packets in milliseconds.

	   This	parameter is deprecated	and used for the backward
	   compatibility only. It is effective only for	the send_arp binary
	   which is built with libnet, and send_ua for IPv6. It	has no effect
	   for other arp_sender.

	   (optional, integer, default 200)

       arp_count
	   Number of unsolicited ARP (IPv4) or NA (IPv6) packets to send at
	   resource initialization.

	   (optional, integer, default 5)

       arp_count_refresh
	   For IPv4, number of unsolicited ARP packets to send during resource
	   monitoring. Doing so	helps mitigate issues of stuck ARP caches
	   resulting from split-brain situations.

	   (optional, integer, default 0)

       arp_bg
	   Whether or not to send the ARP (IPv4) or NA (IPv6) packets in the
	   background. The default is true for IPv4 and	false for IPv6.

	   (optional, string, no default)

       arp_sender
	   For IPv4, the program to send ARP packets with on start. Available
	   options are:	- send_arp: default - ipoibarping: default for
	   infiniband interfaces if ipoibarping	is available - iputils_arping:
	   use arping in iputils package - libnet_arping: use another variant
	   of arping based on libnet

	   (optional, string, no default)

       send_arp_opts
	   For IPv4, extra options to pass to the arp_sender program.
	   Available options are vary depending	on which arp_sender is used.

	   A typical use case is specifying '-A' for iputils_arping to use ARP
	   REPLY instead of ARP	REQUEST	as Gratuitous ARPs.

	   (optional, string, no default)

       flush_routes
	   Flush the routing table on stop. This is for	applications which use
	   the cluster IP address and which run	on the same physical host that
	   the IP address lives	on. The	Linux kernel may force that
	   application to take a shortcut to the local loopback	interface,
	   instead of the interface the	address	is really bound	to. Under
	   those circumstances,	an application may, somewhat unexpectedly,
	   continue to use connections for some	time even after	the IP address
	   is deconfigured. Set	this parameter in order	to immediately disable
	   said	shortcut when the IP address goes away.

	   (optional, boolean, default false)

       run_arping
	   For IPv4, whether or	not to run arping for collision	detection
	   check.

	   (optional, string, default "false")

       nodad
	   For IPv6, do	not perform Duplicate Address Detection	when adding
	   the address.

	   (optional, string, default "false")

       noprefixroute
	   Use noprefixroute flag (see 'man ip-address').

	   (optional, string, default "false")

       preferred_lft
	   For IPv6, set the preferred lifetime	of the IP address. This	can be
	   used	to ensure that the created IP address will not be used as a
	   source address for routing. Expects a value as specified in section
	   5.5.4 of RFC	4862.

	   (optional, string, default "forever")

       network_namespace
	   Specifies the network namespace to operate within. The namespace
	   must	already	exist, and the interface to be used must be within the
	   namespace.

	   (optional, string, no default)

SUPPORTED ACTIONS
       This resource agent supports the	following actions (operations):

       start
	   Starts the resource.	Suggested minimum timeout: 20s.

       stop
	   Stops the resource. Suggested minimum timeout: 20s.

       status
	   Performs a status check. Suggested minimum timeout: 20s. Suggested
	   interval: 10s.

       monitor
	   Performs a detailed status check. Suggested minimum timeout:	20s.
	   Suggested interval: 10s.

       meta-data
	   Retrieves resource agent metadata (internal use only). Suggested
	   minimum timeout: 5s.

       validate-all
	   Performs a validation of the	resource configuration.	Suggested
	   minimum timeout: 20s.

EXAMPLE	CRM SHELL
       The following is	an example configuration for a IPaddr2 resource	using
       the crm(8) shell:

	   primitive p_IPaddr2 ocf:heartbeat:IPaddr2 \
	     params \
	       ip=string \
	     op	monitor	depth="0" timeout="20s"	interval="10s"

EXAMPLE	PCS
       The following is	an example configuration for a IPaddr2 resource	using
       pcs(8)

	   pcs resource	create p_IPaddr2 ocf:heartbeat:IPaddr2 \
	     ip=string \
	     op	monitor	OCF_CHECK_LEVEL="0" timeout="20s" interval="10s"

SEE ALSO
       http://clusterlabs.org/

AUTHOR
       ClusterLabs contributors	(see the resource agent	source for information
       about individual	authors)

resource-agents	4.13.0		  04/12/2025	       OCF_HEARTBEAT_IPADDR(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ocf_heartbeat_IPaddr2&sektion=7&manpath=FreeBSD+Ports+14.3.quarterly>

home | help