Hi all,
 
Before upgrade from OpenBSD 6.7 to OpenBSD 6.8, my pair firewalls was using 
carp in IP balance mode without problems from several months. These firewalls 
are installed in a RHEL 8.2 (fully patched) KVM host.
 
After upgrading to OpenBSD 6.8, carp ip balance mode doesn’t works. I have 
tested reconfiguring balance mode for ip-stealth and ip-unicast also and the 
result is always the same: network packets are not processed by firewalls. But 
if I configure CARP using “the simple configuration” and one node is master and 
the other is backup all it is working without problems.

All CARP interfaces are configured as this one:

carpdev vio0 balancing ip pass 7254e4bc3024e35490e4b9942f919e9b
inet 172.22.55.30 0xffffffe0 172.22.55.31
carpnodes 10:0,11:100
description "Production Network"

sysctl.conf file:

net.inet.carp.preempt=1
net.inet.carp.log=2
net.inet.ip.forwarding=1
net.inet.tcp.mssdflt=1440
net.inet.ip.redirect=0
net.inet.ip.mtudisc=0
net.inet.tcp.rfc3390=1
net.inet.ip.arptimeout=60
kern.bufcachepercent=70
net.inet.icmp.tstamprepl=0
net.inet.udp.sendspace=262144
net.inet.udp.recvspace=262144


OpenBSD kvm guest config:

<domain type='kvm' id='12'>
  <name>obsdfw01</name>
  <description>OpenBSD Security Gateway Cluster</description>
  <memory unit='KiB'>786432</memory>
  <currentMemory unit='KiB'>786432</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-rhel7.6.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='custom' match='exact' check='full'>
    <model fallback='forbid'>Broadwell</model>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='f16c'/>
    <feature policy='require' name='rdrand'/>
    <feature policy='require' name='hypervisor'/>
    <feature policy='require' name='arat'/>
    <feature policy='require' name='xsaveopt'/>
    <feature policy='require' name='abm'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='yes'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/data/vmvol0/vmachines/obsdfw01vol.img'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x0b' slot='0x00' 
function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='none'>
      <alias name='usb'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x0a' slot='0x00' 
function='0x0'/>
   </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' 
multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x14'/>
      <alias name='pci.5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x15'/>
      <alias name='pci.6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x5'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x16'/>
      <alias name='pci.7'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x6'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0x17'/>
      <alias name='pci.8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x7'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x18'/>
      <alias name='pci.9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' 
multifunction='on'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x19'/>
      <alias name='pci.10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x1'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x1a'/>
      <alias name='pci.11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x2'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x1b'/>
      <alias name='pci.12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x3'/>
    </controller>
    <controller type='pci' index='13' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='13' port='0x1c'/>
      <alias name='pci.13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x4'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' 
function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='00:50:56:6f:64:aa'/>
      <source bridge='prodif'/>
      <target dev='obsdprod0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:ab:44:05'/>
      <source bridge='pubif'/>
      <target dev='obsdpub0'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:3c:e5:61'/>
      <source bridge='mgmtif'/>
      <target dev='obsdmgmt0'/>
      <model type='virtio'/>
      <alias name='net2'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:4c:d6:34'/>
      <source bridge='dmzif'/>
      <target dev='obsddmz0'/>
      <model type='virtio'/>
      <alias name='net3'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:73:a4:ff'/>
      <source bridge='vpnif'/>
      <target dev='obsdvpn0'/>
      <model type='virtio'/>
      <alias name='net4'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:29:0d:b5'/>
      <source bridge='encif'/>
      <target dev='obsdenc0'/>
      <model type='virtio'/>
      <alias name='net5'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:d1:ba:cc'/>
      <source bridge='idpmif'/>
      <target dev='obsdidp0'/>
      <model type='virtio'/>
      <alias name='net6'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:49:21:d0'/>
      <source bridge='syncif'/>
      <target dev='obsdsync0'/>
      <model type='virtio'/>
      <alias name='net7'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' 
function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='00:50:56:a6:72:ff'/>
      <source bridge='winif'/>
      <target dev='obsdwin0'/>
      <model type='virtio'/>
      <alias name='net8'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' 
function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/4'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/4'>
      <source path='/dev/pts/4'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'>
      <alias name='input0'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input1'/>
    </input>
    <graphics type='vnc' port='5903' autoport='yes' listen='127.0.0.1' 
keymap='es'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' 
primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 
function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x0c' slot='0x00' 
function='0x0'/>
    </memballoon>
    <rng model='virtio'>
      <backend model='random'>/dev/urandom</backend>
      <alias name='rng0'/>
      <address type='pci' domain='0x0000' bus='0x0d' slot='0x00' 
function='0x0'/>
    </rng>
  </devices>
  <seclabel type='dynamic' model='selinux' relabel='yes'>
    <label>system_u:system_r:svirt_t:s0:c82,c777</label>
    <imagelabel>system_u:object_r:svirt_image_t:s0:c82,c777</imagelabel>
  </seclabel>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+107:+107</label>
    <imagelabel>+107:+107</imagelabel>
  </seclabel>
</domain>

Dmesg output:

OpenBSD 6.8 (GENERIC) #97: Sun Oct  4 18:00:46 MDT 2020
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
real mem = 788389888 (751MB)
avail mem = 749596672 (714MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xf5af0 (9 entries)
bios0: vendor SeaBIOS version "1.11.1-4.module+el8.1.0+4066+0f1aadab" date 
04/01/2014
bios0: Red Hat KVM
acpi0 at bios0: ACPI 3.0
acpi0: sleep states S5
acpi0: tables DSDT FACP APIC MCFG
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel Core Processor (Broadwell), 1900.29 MHz, 06-3d-02
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,PCLMUL,SSSE3,FMA3,CX16,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,RDTSCP,LONG,LAHF,ABM,3DNOWP,FSGSBASE,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,RDSEED,ADX,SMAP,ARAT,XSAVEOPT,MELTDOWN
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 
16-way L2 cache
cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 1000MHz
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 11, 24 pins
acpimcfg0 at acpi0
acpimcfg0: addr 0xb0000000, bus 0-255
acpiprt0 at acpi0: bus 0 (PCI0)
"ACPI0006" at acpi0 not configured
acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
acpicmos0 at acpi0
"PNP0A06" at acpi0 not configured
"PNP0A06" at acpi0 not configured
"QEMU0002" at acpi0 not configured
"ACPI0010" at acpi0 not configured
acpicpu0 at acpi0: C1(@1 halt!)
cpu0: using Broadwell MDS workaround
pvbus0 at mainbus0: KVM
pvclock0 at pvbus0
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82G33 Host" rev 0x00
vga1 at pci0 dev 1 function 0 "Red Hat QXL Video" rev 0x04
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
ppb0 at pci0 dev 2 function 0 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci1 at ppb0 bus 1
virtio0 at pci1 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio0 at virtio0: address 00:50:56:6f:64:aa
virtio0: msix shared
ppb1 at pci0 dev 2 function 1 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci2 at ppb1 bus 2
virtio1 at pci2 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio1 at virtio1: address 00:50:56:ab:44:05
virtio1: msix shared
ppb2 at pci0 dev 2 function 2 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci3 at ppb2 bus 3
virtio2 at pci3 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio2 at virtio2: address 00:50:56:3c:e5:61
virtio2: msix shared
ppb3 at pci0 dev 2 function 3 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci4 at ppb3 bus 4
virtio3 at pci4 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio3 at virtio3: address 00:50:56:4c:d6:34
virtio3: msix shared
ppb4 at pci0 dev 2 function 4 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci5 at ppb4 bus 5
virtio4 at pci5 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio4 at virtio4: address 00:50:56:73:a4:ff
virtio4: msix shared
ppb5 at pci0 dev 2 function 5 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci6 at ppb5 bus 6
virtio5 at pci6 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio5 at virtio5: address 00:50:56:29:0d:b5
virtio5: msix shared
ppb6 at pci0 dev 2 function 6 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci7 at ppb6 bus 7
virtio6 at pci7 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio6 at virtio6: address 00:50:56:d1:ba:cc
virtio6: msix shared
ppb7 at pci0 dev 2 function 7 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 22
pci8 at ppb7 bus 8
virtio7 at pci8 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio7 at virtio7: address 00:50:56:49:21:d0
virtio7: msix shared
ppb8 at pci0 dev 3 function 0 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci9 at ppb8 bus 9
virtio8 at pci9 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio8 at virtio8: address 00:50:56:a6:72:ff
virtio8: msix shared
ppb9 at pci0 dev 3 function 1 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci10 at ppb9 bus 10
virtio9 at pci10 dev 0 function 0 "Qumranet Virtio 1.x Console" rev 0x01
virtio9: no matching child driver; not configured
ppb10 at pci0 dev 3 function 2 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci11 at ppb10 bus 11
virtio10 at pci11 dev 0 function 0 "Qumranet Virtio 1.x Storage" rev 0x01
vioblk0 at virtio10
scsibus1 at vioblk0: 1 targets
sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, >
sd0: 16384MB, 512 bytes/sector, 33554432 sectors
virtio10: msix shared
ppb11 at pci0 dev 3 function 3 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci12 at ppb11 bus 12
virtio11 at pci12 dev 0 function 0 vendor "Qumranet", unknown product 0x1045 
rev 0x01
viomb0 at virtio11
virtio11: apic 0 int 23
ppb12 at pci0 dev 3 function 4 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci13 at ppb12 bus 13
virtio12 at pci13 dev 0 function 0 "Qumranet Virtio 1.x RNG" rev 0x01
viornd0 at virtio12
virtio12: apic 0 int 23
virtio7: msix shared
ppb8 at pci0 dev 3 function 0 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci9 at ppb8 bus 9
virtio8 at pci9 dev 0 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio8 at virtio8: address 00:50:56:a6:72:ff
virtio8: msix shared
ppb9 at pci0 dev 3 function 1 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci10 at ppb9 bus 10
virtio9 at pci10 dev 0 function 0 "Qumranet Virtio 1.x Console" rev 0x01
virtio9: no matching child driver; not configured
ppb10 at pci0 dev 3 function 2 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci11 at ppb10 bus 11
virtio10 at pci11 dev 0 function 0 "Qumranet Virtio 1.x Storage" rev 0x01
vioblk0 at virtio10
scsibus1 at vioblk0: 1 targets
sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, >
sd0: 16384MB, 512 bytes/sector, 33554432 sectors
virtio10: msix shared
ppb11 at pci0 dev 3 function 3 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci12 at ppb11 bus 12
virtio11 at pci12 dev 0 function 0 vendor "Qumranet", unknown product 0x1045 
rev 0x01
viomb0 at virtio11
virtio11: apic 0 int 23
ppb12 at pci0 dev 3 function 4 vendor "Red Hat", unknown product 0x000c rev 
0x00: apic 0 int 23
pci13 at ppb12 bus 13
virtio12 at pci13 dev 0 function 0 "Qumranet Virtio 1.x RNG" rev 0x01
viornd0 at virtio12
virtio12: apic 0 int 23
pcib0 at pci0 dev 31 function 0 "Intel 82801IB LPC" rev 0x02
ahci0 at pci0 dev 31 function 2 "Intel 82801I AHCI" rev 0x02: msi, AHCI 1.0
scsibus2 at ahci0: 32 targets
ichiic0 at pci0 dev 31 function 3 "Intel 82801I SMBus" rev 0x02: apic 0 int 16
iic0 at ichiic0
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
root on sd0a (dcd0d9bbce80825c.a) swap on sd0b dump on sd0b
carp0: state transition: BACKUP -> MASTER
carp1: state transition: BACKUP -> MASTER
carp2: state transition: BACKUP -> MASTER
carp3: state transition: BACKUP -> MASTER
carp4: state transition: BACKUP -> MASTER
carp5: state transition: BACKUP -> MASTER
carp6: state transition: BACKUP -> MASTER
carp7: state transition: BACKUP -> MASTER
pfsync: failed to receive bulk update

Regards,
C. L. Martinez 

Reply via email to