18e925890SGleb Smirnoff.\" $OpenBSD: carp.4,v 1.16 2004/12/07 23:41:35 jmc Exp $ 28e925890SGleb Smirnoff.\" 38e925890SGleb Smirnoff.\" Copyright (c) 2003, Ryan McBride. All rights reserved. 408b68b0eSGleb Smirnoff.\" Copyright (c) 2011, Gleb Smirnoff <glebius@FreeBSD.org> 58e925890SGleb Smirnoff.\" 68e925890SGleb Smirnoff.\" Redistribution and use in source and binary forms, with or without 78e925890SGleb Smirnoff.\" modification, are permitted provided that the following conditions 88e925890SGleb Smirnoff.\" are met: 98e925890SGleb Smirnoff.\" 1. Redistributions of source code must retain the above copyright 108e925890SGleb Smirnoff.\" notice, this list of conditions and the following disclaimer. 118e925890SGleb Smirnoff.\" 2. Redistributions in binary form must reproduce the above copyright 128e925890SGleb Smirnoff.\" notice, this list of conditions and the following disclaimer in the 138e925890SGleb Smirnoff.\" documentation and/or other materials provided with the distribution. 148e925890SGleb Smirnoff.\" 158e925890SGleb Smirnoff.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 168e925890SGleb Smirnoff.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 178e925890SGleb Smirnoff.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 188e925890SGleb Smirnoff.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 198e925890SGleb Smirnoff.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 208e925890SGleb Smirnoff.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 218e925890SGleb Smirnoff.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 228e925890SGleb Smirnoff.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 238e925890SGleb Smirnoff.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 248e925890SGleb Smirnoff.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 258e925890SGleb Smirnoff.\" SUCH DAMAGE. 268e925890SGleb Smirnoff.\" 27*0d446a43SKristof Provost.Dd April 12, 2024 288e925890SGleb Smirnoff.Dt CARP 4 298e925890SGleb Smirnoff.Os 308e925890SGleb Smirnoff.Sh NAME 318e925890SGleb Smirnoff.Nm carp 328e925890SGleb Smirnoff.Nd Common Address Redundancy Protocol 338e925890SGleb Smirnoff.Sh SYNOPSIS 348e925890SGleb Smirnoff.Cd "device carp" 358e925890SGleb Smirnoff.Sh DESCRIPTION 3608b68b0eSGleb SmirnoffThe CARP allows multiple hosts on the same local network to share a set of 3708b68b0eSGleb SmirnoffIPv4 and/or IPv6 addresses. 388e925890SGleb SmirnoffIts primary purpose is to ensure that these 3908b68b0eSGleb Smirnoffaddresses are always available. 408e925890SGleb Smirnoff.Pp 418e925890SGleb SmirnoffTo use 428e925890SGleb Smirnoff.Nm , 4384e3b10bSBenjamin Kadukthe administrator needs to configure at a minimum a common virtual host ID 4484e3b10bSBenjamin Kaduk(vhid), and attach at least one IP address to this vhid on each machine which 4508b68b0eSGleb Smirnoffis to take part in the virtual group. 4608b68b0eSGleb SmirnoffAdditional parameters can also be set on a per-vhid basis: 478e925890SGleb Smirnoff.Cm advbase 488e925890SGleb Smirnoffand 498e925890SGleb Smirnoff.Cm advskew , 508e925890SGleb Smirnoffwhich are used to control how frequently the host sends advertisements when it 518e925890SGleb Smirnoffis the master for a virtual host, and 528e925890SGleb Smirnoff.Cm pass 533e630869SGleb Smirnoffwhich is used to authenticate 543e630869SGleb Smirnoff.Nm 553e630869SGleb Smirnoffadvertisements. 56762ce3e6SGleb SmirnoffThe 57762ce3e6SGleb Smirnoff.Cm advbase 58762ce3e6SGleb Smirnoffparameter stands for 59a4be0b3cSRuslan Ermilov.Dq "advertisement base" . 601a1fa3bdSGiorgos KeramidasIt is measured in seconds and specifies the base of the advertisement interval. 61762ce3e6SGleb SmirnoffThe 62762ce3e6SGleb Smirnoff.Cm advskew 63762ce3e6SGleb Smirnoffparameter stands for 64a4be0b3cSRuslan Ermilov.Dq "advertisement skew" . 65762ce3e6SGleb SmirnoffIt is measured in 1/256 of seconds. 66762ce3e6SGleb SmirnoffIt is added to the base advertisement interval to make one host advertise 67762ce3e6SGleb Smirnoffa bit slower that the other does. 68762ce3e6SGleb SmirnoffBoth 69762ce3e6SGleb Smirnoff.Cm advbase 70762ce3e6SGleb Smirnoffand 71762ce3e6SGleb Smirnoff.Cm advskew 72a4be0b3cSRuslan Ermilovare put inside CARP advertisements. 7384e3b10bSBenjamin KadukThese values can be configured using 748e925890SGleb Smirnoff.Xr ifconfig 8 , 758e925890SGleb Smirnoffor through the 768e925890SGleb Smirnoff.Dv SIOCSVH 773e630869SGleb Smirnoff.Xr ioctl 2 . 788e925890SGleb Smirnoff.Pp 79b1a4ccddSKristof ProvostCARP defaults to using multicast messages, but can be configured to unicast 80b1a4ccddSKristof Provostannouncements to peers using the 81b1a4ccddSKristof Provost.Cm peer 82b1a4ccddSKristof Provostand 83b1a4ccddSKristof Provost.Cm peer6 84b1a4ccddSKristof Provostparameters. Default addresses can be restored using 85b1a4ccddSKristof Provost.Cm mcast 86b1a4ccddSKristof Provostand 87b1a4ccddSKristof Provost.Cm mcast6 . 88b1a4ccddSKristof ProvostNote that TTL verification is disabled if the peer address is not a multicast 89b1a4ccddSKristof Provostaddress. 90b1a4ccddSKristof ProvostThese values can be configured using 91b1a4ccddSKristof Provost.Xr ifconfig 8 , 92b1a4ccddSKristof Provostor through the 93b1a4ccddSKristof Provost.Dv SIOCSPEER 94b1a4ccddSKristof Provost.Xr ioctl 2 . 95b1a4ccddSKristof Provost.Pp 96*0d446a43SKristof Provost.Xr carp 4 97*0d446a43SKristof Provostcan be configured to use either the non-standard CARP protocol, or VRRPv3 (RFC 5798). 98*0d446a43SKristof ProvostUse the 99*0d446a43SKristof Provost.Cm carpver 100*0d446a43SKristof Provostparameter to select either 2 (CARP) or 3 (VRRPv3). 101*0d446a43SKristof ProvostVRRPv3 specific parameters can be configured using the 102*0d446a43SKristof Provost.Cm vrrpprio 103*0d446a43SKristof Provostand 104*0d446a43SKristof Provost.Cm vrrpinterval 105*0d446a43SKristof Provostparameters. 106*0d446a43SKristof Provost.Pp 10784e3b10bSBenjamin KadukCARP virtual hosts can be configured on multicast-capable interfaces: Ethernet, 10808b68b0eSGleb Smirnofflayer 2 VLAN, FDDI and Token Ring. 10908b68b0eSGleb SmirnoffAn arbitrary number of virtual host IDs can be configured on an interface. 11008b68b0eSGleb SmirnoffAn arbitrary number of IPv4 or IPv6 addresses can be attached to a particular 11108b68b0eSGleb Smirnoffvhid. 11208b68b0eSGleb SmirnoffIt is important that all hosts participating in a vhid have the same list 1136dd9dfc4SKristof Provostof prefixes configured on the vhid, since all the prefixes are included in the 11408b68b0eSGleb Smirnoffcryptographic checksum supplied in each advertisement. 11508b68b0eSGleb SmirnoffMultiple vhids running on one interface participate in master/backup 11608b68b0eSGleb Smirnoffelections independently. 11708b68b0eSGleb Smirnoff.Pp 1188e925890SGleb SmirnoffAdditionally, there are a number of global parameters which can be set using 1198e925890SGleb Smirnoff.Xr sysctl 8 : 12084e3b10bSBenjamin Kaduk.Bl -tag -width ".Va net.inet.carp.ifdown_demotion_factor" 1213e630869SGleb Smirnoff.It Va net.inet.carp.allow 122167a3440SAlexander MotinAllow 1238e925890SGleb Smirnoff.Nm 124167a3440SAlexander Motinoperation. 125167a3440SAlexander MotinWhen disabled, virtual hosts remain in initial state, neither sending nor 126167a3440SAlexander Motinreceiving announcements or traffic. 1278e925890SGleb SmirnoffEnabled by default. 1283e630869SGleb Smirnoff.It Va net.inet.carp.preempt 1298e925890SGleb SmirnoffAllow virtual hosts to preempt each other. 130a1ae564eSGleb SmirnoffWhen enabled, a vhid in a backup state would preempt a master that 131a1ae564eSGleb Smirnoffis announcing itself with a lower advskew. 1328e925890SGleb SmirnoffDisabled by default. 1330d3d234cSKristof Provost.It Va net.inet.carp.dscp 1340d3d234cSKristof ProvostDSCP value in carp packet. 1350d3d234cSKristof ProvostValid Values are 0 to 63. 1360d3d234cSKristof ProvostA value of 4 is equivalent to the old standard of TOS LOW_DELAY. 1370d3d234cSKristof ProvostTOS values were deprecated and replaced by DSCP in 1998. 1380d3d234cSKristof ProvostThe default value is 56 (CS7/Network Control). 1393e630869SGleb Smirnoff.It Va net.inet.carp.log 14084e3b10bSBenjamin KadukDetermines what events relating to 14184e3b10bSBenjamin Kaduk.Nm 142e98adf39SBenjamin Kadukvhids are logged. 14384e3b10bSBenjamin KadukA value of 0 disables any logging. 14484e3b10bSBenjamin KadukA value of 1 enables logging state changes of 145442af10aSGleb Smirnoff.Nm 146a1ae564eSGleb Smirnoffvhids. 147acc0fee0SRuslan ErmilovValues above 1 enable logging of bad 148acc0fee0SRuslan Ermilov.Nm 149acc0fee0SRuslan Ermilovpackets. 15084e3b10bSBenjamin KadukThe default value is 1. 151f08535f8SGleb Smirnoff.It Va net.inet.carp.demotion 1526dd9dfc4SKristof ProvostThis value shows the current level of CARP demotion. 153f08535f8SGleb SmirnoffThe value is added to the actual advskew sent in announcements for 154f08535f8SGleb Smirnoffall vhids. 1556dd9dfc4SKristof ProvostDuring normal system operation the demotion factor is zero. 156f08535f8SGleb SmirnoffHowever, problematic conditions raise its level: when 157f08535f8SGleb Smirnoff.Nm 158f08535f8SGleb Smirnoffexperiences problem with sending announcements, when an interface 159f08535f8SGleb Smirnoffrunning a vhid goes down, or while the 1601771f872SGleb Smirnoff.Xr pfsync 4 1611771f872SGleb Smirnoffinterface is not synchronized. 1627951008bSGleb SmirnoffThe demotion factor can be adjusted writing to the sysctl oid. 1637951008bSGleb SmirnoffThe signed value supplied to the 1647951008bSGleb Smirnoff.Xr sysctl 8 1657951008bSGleb Smirnoffcommand is added to current demotion factor. 1667951008bSGleb SmirnoffThis allows to control 167f08535f8SGleb Smirnoff.Nm 1687951008bSGleb Smirnoffbehaviour depending on some external conditions, for example on the status 1697951008bSGleb Smirnoffof some daemon utility. 170f08535f8SGleb Smirnoff.It Va net.inet.carp.ifdown_demotion_factor 17184e3b10bSBenjamin KadukThis value is added to 172f08535f8SGleb Smirnoff.Va net.inet.carp.demotion 17384e3b10bSBenjamin Kadukwhen an interface running a vhid goes down. 17484e3b10bSBenjamin KadukThe default value is 240 (the maximum advskew value). 175f08535f8SGleb Smirnoff.It Va net.inet.carp.senderr_demotion_factor 17684e3b10bSBenjamin KadukThis value is added to 177f08535f8SGleb Smirnoff.Va net.inet.carp.demotion 178f08535f8SGleb Smirnoffwhen 179f08535f8SGleb Smirnoff.Nm 180f08535f8SGleb Smirnoffexperiences errors sending its announcements. 18184e3b10bSBenjamin KadukThe default value is 240 (the maximum advskew value). 1828e925890SGleb Smirnoff.El 18308b68b0eSGleb Smirnoff.\".Sh ARP level load balancing 18484e3b10bSBenjamin Kaduk.\"A 18508b68b0eSGleb Smirnoff.\".Nm 18684e3b10bSBenjamin Kaduk.\"interface has limited abilities for load balancing incoming connections 18784e3b10bSBenjamin Kaduk.\"between hosts in an Ethernet network. 18884e3b10bSBenjamin Kaduk.\"For load-balancing operation, one needs several CARP interfaces that 18908b68b0eSGleb Smirnoff.\"are configured to the same IP address, but to a different vhids. 19008b68b0eSGleb Smirnoff.\"Once an ARP request is received, the CARP protocol will use a hashing 19108b68b0eSGleb Smirnoff.\"function against the source IP address in the ARP request to determine 19284e3b10bSBenjamin Kaduk.\"which vhid the request will be assigned to. 19384e3b10bSBenjamin Kaduk.\"If the corresponding CARP interface is the current 19484e3b10bSBenjamin Kaduk.\"master interface, a reply will 19584e3b10bSBenjamin Kaduk.\"be sent to the ARP request; 19684e3b10bSBenjamin Kaduk.\"otherwise it will be ignored. 19708b68b0eSGleb Smirnoff.\"See the 19808b68b0eSGleb Smirnoff.\".Sx EXAMPLES 19908b68b0eSGleb Smirnoff.\"section for a practical example of load balancing. 20008b68b0eSGleb Smirnoff.\".Pp 20184e3b10bSBenjamin Kaduk.\"The ARP load balancing implemented in 20284e3b10bSBenjamin Kaduk.\".Nm 20384e3b10bSBenjamin Kaduk.\"has some limitations. 20408b68b0eSGleb Smirnoff.\"First, ARP balancing only works on the local network segment. 20508b68b0eSGleb Smirnoff.\"It cannot balance traffic that crosses a router, because the 20608b68b0eSGleb Smirnoff.\"router itself will always be balanced to the same virtual host. 20708b68b0eSGleb Smirnoff.\"Second, ARP load balancing can lead to asymmetric routing 20808b68b0eSGleb Smirnoff.\"of incoming and outgoing traffic, and thus combining it with 20908b68b0eSGleb Smirnoff.\".Xr pfsync 4 21008b68b0eSGleb Smirnoff.\"is dangerous, because this creates a race condition between 21108b68b0eSGleb Smirnoff.\"balanced routers and a host they are serving. 21208b68b0eSGleb Smirnoff.\"Imagine an incoming packet creating state on the first router, being 21384e3b10bSBenjamin Kaduk.\"forwarded to its destination, and the destination replying faster 21408b68b0eSGleb Smirnoff.\"than the state information is packed and synced with the second router. 21508b68b0eSGleb Smirnoff.\"If the reply would be load balanced to second router, it will be 21684e3b10bSBenjamin Kaduk.\"dropped since the second router has not yet received information about 21784e3b10bSBenjamin Kaduk.\"the connection state. 218cc8b2291SGleb Smirnoff.Sh STATE CHANGE NOTIFICATIONS 219cc8b2291SGleb SmirnoffSometimes it is useful to get notified about 220cc8b2291SGleb Smirnoff.Nm 221cc8b2291SGleb Smirnoffstatus change events. 222cc8b2291SGleb SmirnoffThis can be accomplished by using 223cc8b2291SGleb Smirnoff.Xr devd 8 224cc8b2291SGleb Smirnoffhooks. 22508b68b0eSGleb SmirnoffMaster/slave events are signalled under system 22608b68b0eSGleb Smirnoff.Dv CARP . 22784e3b10bSBenjamin KadukThe subsystem specifies the vhid and name of the interface where 22884e3b10bSBenjamin Kadukthe master/slave event occurred. 22984e3b10bSBenjamin KadukThe type of the message displays the new state of the vhid. 230cc8b2291SGleb SmirnoffPlease see 231cc8b2291SGleb Smirnoff.Xr devd.conf 5 23284e3b10bSBenjamin Kadukand the 233cc8b2291SGleb Smirnoff.Sx EXAMPLES 234cc8b2291SGleb Smirnoffsection for more information. 2358e925890SGleb Smirnoff.Sh EXAMPLES 2368e925890SGleb SmirnoffFor firewalls and routers with multiple interfaces, it is desirable to 237a1ae564eSGleb Smirnofffailover all of the addresses running 2388e925890SGleb Smirnoff.Nm 239a1ae564eSGleb Smirnofftogether, when one of the physical interfaces goes down. 24084e3b10bSBenjamin KadukThis is achieved by the use of the preempt option. 24184e3b10bSBenjamin KadukEnable it on both hosts A and B: 2428e925890SGleb Smirnoff.Pp 2433e630869SGleb Smirnoff.Dl sysctl net.inet.carp.preempt=1 2448e925890SGleb Smirnoff.Pp 24508b68b0eSGleb SmirnoffAssume that host A is the preferred master and we are running the 24608b68b0eSGleb Smirnoff192.168.1.0/24 prefix on em0 and 192.168.2.0/24 on em1. 247da4d5bb7SDmitry MorozovskyThis is the setup for host A (advskew is above 0 so it could be overwritten 248da4d5bb7SDmitry Morozovskyin the emergency situation from the other host): 2498e925890SGleb Smirnoff.Bd -literal -offset indent 250da4d5bb7SDmitry Morozovskyifconfig em0 vhid 1 advskew 100 pass mekmitasdigoat 192.168.1.1/24 251da4d5bb7SDmitry Morozovskyifconfig em1 vhid 2 advskew 100 pass mekmitasdigoat 192.168.2.1/24 2528e925890SGleb Smirnoff.Ed 2538e925890SGleb Smirnoff.Pp 2543e630869SGleb SmirnoffThe setup for host B is identical, but it has a higher 2553e630869SGleb Smirnoff.Cm advskew : 2568e925890SGleb Smirnoff.Bd -literal -offset indent 257da4d5bb7SDmitry Morozovskyifconfig em0 vhid 1 advskew 200 pass mekmitasdigoat 192.168.1.1/24 258da4d5bb7SDmitry Morozovskyifconfig em1 vhid 2 advskew 200 pass mekmitasdigoat 192.168.2.1/24 2598e925890SGleb Smirnoff.Ed 2608e925890SGleb Smirnoff.Pp 261a1ae564eSGleb SmirnoffWhen one of the physical interfaces of host A fails, 2623e630869SGleb Smirnoff.Cm advskew 263a1ae564eSGleb Smirnoffis demoted to a configured value on all its 2648e925890SGleb Smirnoff.Nm 265a1ae564eSGleb Smirnoffvhids. 266a1ae564eSGleb SmirnoffDue to the preempt option, host B would start announcing itself, and thus 267a1ae564eSGleb Smirnoffpreempt host A on both interfaces instead of just the failed one. 26808b68b0eSGleb Smirnoff.\".Pp 26908b68b0eSGleb Smirnoff.\"In order to set up an ARP balanced virtual host, it is necessary to configure 27008b68b0eSGleb Smirnoff.\"one virtual host for each physical host which would respond to ARP requests 27108b68b0eSGleb Smirnoff.\"and thus handle the traffic. 27208b68b0eSGleb Smirnoff.\"In the following example, two virtual hosts are configured on two hosts to 27308b68b0eSGleb Smirnoff.\"provide balancing and failover for the IP address 192.168.1.10. 27408b68b0eSGleb Smirnoff.\".Pp 27508b68b0eSGleb Smirnoff.\"First the 27608b68b0eSGleb Smirnoff.\".Nm 27708b68b0eSGleb Smirnoff.\"interfaces on host A are configured. 27808b68b0eSGleb Smirnoff.\"The 27908b68b0eSGleb Smirnoff.\".Cm advskew 28008b68b0eSGleb Smirnoff.\"of 100 on the second virtual host means that its advertisements will be sent 28108b68b0eSGleb Smirnoff.\"out slightly less frequently. 28208b68b0eSGleb Smirnoff.\".Bd -literal -offset indent 28308b68b0eSGleb Smirnoff.\"ifconfig carp0 create 284da4d5bb7SDmitry Morozovsky.\"ifconfig carp0 vhid 1 advskew 100 pass mekmitasdigoat 192.168.1.10/24 28508b68b0eSGleb Smirnoff.\"ifconfig carp1 create 286da4d5bb7SDmitry Morozovsky.\"ifconfig carp1 vhid 2 advskew 200 pass mekmitasdigoat 192.168.1.10/24 28708b68b0eSGleb Smirnoff.\".Ed 28808b68b0eSGleb Smirnoff.\".Pp 28908b68b0eSGleb Smirnoff.\"The configuration for host B is identical, except the 29008b68b0eSGleb Smirnoff.\".Cm advskew 29108b68b0eSGleb Smirnoff.\"is on virtual host 1 rather than virtual host 2. 29208b68b0eSGleb Smirnoff.\".Bd -literal -offset indent 29308b68b0eSGleb Smirnoff.\"ifconfig carp0 create 294da4d5bb7SDmitry Morozovsky.\"ifconfig carp0 vhid 1 advskew 200 pass mekmitasdigoat 192.168.1.10/24 29508b68b0eSGleb Smirnoff.\"ifconfig carp1 create 296da4d5bb7SDmitry Morozovsky.\"ifconfig carp1 vhid 2 advskew 100 pass mekmitasdigoat 192.168.1.10/24 29708b68b0eSGleb Smirnoff.\".Ed 29808b68b0eSGleb Smirnoff.\".Pp 29908b68b0eSGleb Smirnoff.\"Finally, the ARP balancing feature must be enabled on both hosts: 30008b68b0eSGleb Smirnoff.\".Pp 30108b68b0eSGleb Smirnoff.\".Dl sysctl net.inet.carp.arpbalance=1 30208b68b0eSGleb Smirnoff.\".Pp 30308b68b0eSGleb Smirnoff.\"When the hosts receive an ARP request for 192.168.1.10, the source IP address 30408b68b0eSGleb Smirnoff.\"of the request is used to compute which virtual host should answer the request. 30508b68b0eSGleb Smirnoff.\"The host which is master of the selected virtual host will reply to the 30608b68b0eSGleb Smirnoff.\"request, the other(s) will ignore it. 30708b68b0eSGleb Smirnoff.\".Pp 30808b68b0eSGleb Smirnoff.\"This way, locally connected systems will receive different ARP replies and 30908b68b0eSGleb Smirnoff.\"subsequent IP traffic will be balanced among the hosts. 31008b68b0eSGleb Smirnoff.\"If one of the hosts fails, the other will take over the virtual MAC address, 31108b68b0eSGleb Smirnoff.\"and begin answering ARP requests on its behalf. 312cc8b2291SGleb Smirnoff.Pp 313cc8b2291SGleb SmirnoffProcessing of 314cc8b2291SGleb Smirnoff.Nm 31508b68b0eSGleb Smirnoffstatus change events can be set up by using the following devd.conf rule: 316cc8b2291SGleb Smirnoff.Bd -literal -offset indent 317cc8b2291SGleb Smirnoffnotify 0 { 31808b68b0eSGleb Smirnoff match "system" "CARP"; 3199f0b5687SDaniel Ebdrup Jensen match "subsystem" "[0-9]+@[0-9a-z\.]+"; 32008b68b0eSGleb Smirnoff match "type" "(MASTER|BACKUP)"; 32108b68b0eSGleb Smirnoff action "/root/carpcontrol.sh $subsystem $type"; 322cc8b2291SGleb Smirnoff}; 323cc8b2291SGleb Smirnoff.Ed 3249c883c6cSGleb Smirnoff.Pp 3259c883c6cSGleb SmirnoffTo see 3269c883c6cSGleb Smirnoff.Nm 3279c883c6cSGleb Smirnoffpackets decoded in 328e81210c1SEdward Tomasz Napierala.Xr tcpdump 1 3296dd9dfc4SKristof Provostoutput, one needs to specify the 3309c883c6cSGleb Smirnoff.Fl T Ar carp 3319c883c6cSGleb Smirnoffoption, otherwise 332e81210c1SEdward Tomasz Napierala.Xr tcpdump 1 3336dd9dfc4SKristof Provostwill interpret them as VRRP packets: 3349c883c6cSGleb Smirnoff.Bd -literal -offset indent 3359c883c6cSGleb Smirnofftcpdump -npi vlan0 -T carp 3369c883c6cSGleb Smirnoff.Ed 3378e925890SGleb Smirnoff.Sh SEE ALSO 338e81210c1SEdward Tomasz Napierala.Xr tcpdump 1 , 3398e925890SGleb Smirnoff.Xr inet 4 , 3401771f872SGleb Smirnoff.Xr pfsync 4 , 3411eefdc3bSGleb Smirnoff.Xr devd.conf 5 , 342923544aaSBaptiste Daroussin.Xr rc.conf 5 , 343a4be0b3cSRuslan Ermilov.Xr ifconfig 8 , 344e81210c1SEdward Tomasz Napierala.Xr sysctl 8 3458e925890SGleb Smirnoff.Sh HISTORY 3468e925890SGleb SmirnoffThe 3478e925890SGleb Smirnoff.Nm 3488e925890SGleb Smirnoffdevice first appeared in 3498e925890SGleb Smirnoff.Ox 3.5 . 3508e925890SGleb SmirnoffThe 3518e925890SGleb Smirnoff.Nm 3523e630869SGleb Smirnoffdevice was imported into 3538e925890SGleb Smirnoff.Fx 5.4 . 35408b68b0eSGleb SmirnoffIn 35584e3b10bSBenjamin Kaduk.Fx 10.0 , 35608b68b0eSGleb Smirnoff.Nm 35708b68b0eSGleb Smirnoffwas significantly rewritten, and is no longer a pseudo-interface. 358