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

  
 
  

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

NAME
     ocf_heartbeat_IPaddr2 - Manages virtual IPv4 and IPv6 addresses (Linux spe-
     cific 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  am-
     bivalent  in  plain  "iptables"  command to particular back-end resolution,
     "iptables-legacy" (when present) gets prioritized so as to avoid incompati-
     bilities (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 "ipta-
     bles-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 in-
     stances need to be re-allocated on surviving nodes. This would not be  pos-
     sible  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 no-
	 tation)     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 on-
	 line. 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  la-
	 bel 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:foo-
	 bar1234)

	 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  ad-
	 dress	is stopped, only move it to the loopback device to allow the lo-
	 cal 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.  In-
	 stead, 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 loop-
	 back. 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  en-
	 abled. 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)  pack-
	 ets 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 re-
	 source 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 result-
	 ing from split-brain situations.

	 (optional, integer, default 0)

     arp_bg
	 Whether or not to send the ARP (IPv4) or NA (IPv6) packets in the back-
	 ground. 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  op-
	 tions	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 RE-
	 PLY 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 name-
	 space.

	 (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  in-
	 terval: 10s.

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

     meta-data
	 Retrieves resource agent metadata (internal use only). Suggested  mini-
	 mum 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		   08/27/2026		 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+15.1.quarterly>

home | help