Hi misc@!

After deploying a new OpenBSD 5.3 firewall today I ran into a strange
problem. The first rule in my ruleset is one NAT-ing ICMP packets from my
host to Google's DNS IP (8.8.8.8):

> fw1a-spt # pfctl -sr -R0
> pass out log quick inet proto icmp from 192.168.5.96 to 8.8.8.8 nat-to
195.182.23.4

195.182.23.4 is my public IP address.

The problem is that only one in every ~20 packets gets NAT-ed. Other ones
get passed as-is. A tcpdump is available here:

http://hpaste.org/90099

I managed to increase the number of NAT-ed packets to about one-in-five
adding the following line to my PF:

> set timeout { icmp.first 0, icmp.error 0 }

I would like not to paste my whole pf.conf file, since it's a bit large
(~1k lines) and has been recently migrated from a FreeBSD machine. There
are no arcane things inside (like limits or any other 'set' directives),
just other pass and block rules.

The trunk0 interface configuration:
> trunkproto lacp
> trunkport bge0
> trunkport bge1
> up

Disabling one of the bge interfaces didn't help either, which makes me
think LACP is unrelated to this.

A carp interface with the 195.182.23.4 IP address sits on top of the trunk
interface:
> vhid 1 advskew 10 carpdev trunk0 pass *snip!*
> inet 195.182.23.4 255.255.255.0 NONE
> other aliases here...

If any other information is needed please ask and I'll happily provide it.

Does anybody have an idea what might be causing this? I'll try testing this
on CURRENT later, since I'm running out of ideas here...

And a mandatory dmesg follows:
OpenBSD 5.3 (GENERIC.MP) #62: Tue Mar 12 18:21:20 MDT 2013
    dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 2145452032 (2046MB)
avail mem = 2065903616 (1970MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.31 @ 0xdc010 (57 entries)
bios0: vendor HP version "O08" date 08/13/2007
bios0: HP ProLiant DL140 G3
acpi0 at bios0: rev 0
acpi0: sleep states S0 S4 S5
acpi0: tables DSDT FACP SPMI APIC MCFG BOOT SPCR SSDT
acpi0: wakeup devices BPD0(S5) BMF3(S5) P0P4(S5) P0P6(S5) PEX0(S5) PEX1(S5)
PEX2(S5) PEX3(S5) USB1(S5) USB2(S5) USB3(S5) EUSB(S5) PCIB(S5)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz, 1995.29 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUS
H,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,TM2,SS
SE3,CX16,xTPR,PDCM,DCA,NXE,LONG,LAHF,PERF
cpu0: 4MB 64b/line 16-way L2 cache
cpu0: apic clock running at 332MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz, 1995.00 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUS
H,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,TM2,SS
SE3,CX16,xTPR,PDCM,DCA,NXE,LONG,LAHF,PERF
cpu1: 4MB 64b/line 16-way L2 cache
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins
ioapic1 at mainbus0: apid 3 pa 0xfec80000, version 20, 24 pins
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-23
acpiprt0 at acpi0: bus 1 (P0P2)
acpiprt1 at acpi0: bus 2 (BMD0)
acpiprt2 at acpi0: bus 3 (BPD0)
acpiprt3 at acpi0: bus -1 (BPD1)
acpiprt4 at acpi0: bus -1 (BPD2)
acpiprt5 at acpi0: bus 7 (BMF3)
acpiprt6 at acpi0: bus 12 (P0P4)
acpiprt7 at acpi0: bus 14 (P0P6)
acpiprt8 at acpi0: bus 0 (PCI0)
acpiprt9 at acpi0: bus 22 (PEX0)
acpiprt10 at acpi0: bus 23 (PEX1)
acpiprt11 at acpi0: bus -1 (PEX2)
acpiprt12 at acpi0: bus -1 (PEX3)
acpiprt13 at acpi0: bus 24 (PCIB)
acpicpu0 at acpi0
acpicpu1 at acpi0
acpibtn0 at acpi0: PWRB
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 5000X Host" rev 0x31
ppb0 at pci0 dev 2 function 0 "Intel 5000 PCIE x8" rev 0x31
pci1 at ppb0 bus 1
ppb1 at pci1 dev 0 function 0 "Intel 6321ESB PCIE" rev 0x01
pci2 at ppb1 bus 2
ppb2 at pci2 dev 0 function 0 "Intel 6321ESB PCIE" rev 0x01
pci3 at ppb2 bus 3
ppb3 at pci1 dev 0 function 3 "Intel 6321ESB PCIE-PCIX" rev 0x01
pci4 at ppb3 bus 7
ppb4 at pci0 dev 3 function 0 "Intel 5000 PCIE" rev 0x31
pci5 at ppb4 bus 8
ppb5 at pci0 dev 4 function 0 "Intel 5000 PCIE x16" rev 0x31: msi
pci6 at ppb5 bus 12
ppb6 at pci0 dev 5 function 0 "Intel 5000 PCIE" rev 0x31: msi
pci7 at ppb6 bus 13
ppb7 at pci0 dev 6 function 0 "Intel 5000 PCIE" rev 0x31: msi
pci8 at ppb7 bus 14
ppb8 at pci0 dev 7 function 0 "Intel 5000 PCIE" rev 0x31: msi
pci9 at ppb8 bus 15
pchb1 at pci0 dev 16 function 0 "Intel 5000 Error Reporting" rev 0x31
pchb2 at pci0 dev 16 function 1 "Intel 5000 Error Reporting" rev 0x31
pchb3 at pci0 dev 16 function 2 "Intel 5000 Error Reporting" rev 0x31
pchb4 at pci0 dev 17 function 0 "Intel 5000 Reserved" rev 0x31
pchb5 at pci0 dev 19 function 0 "Intel 5000 Reserved" rev 0x31
pchb6 at pci0 dev 21 function 0 "Intel 5000 FBD" rev 0x31
pchb7 at pci0 dev 22 function 0 "Intel 5000 FBD" rev 0x31
ppb9 at pci0 dev 28 function 0 "Intel 6321ESB PCIE" rev 0x09: msi
pci10 at ppb9 bus 22
bge0 at pci10 dev 0 function 0 "Broadcom BCM5721" rev 0x11, BCM5750 B1
(0x4101): apic 2 int 16, address 00:1c:c4:74:80:dc
brgphy0 at bge0 phy 1: BCM5750 10/100/1000baseT PHY, rev. 0
ppb10 at pci0 dev 28 function 1 "Intel 6321ESB PCIE" rev 0x09: msi
pci11 at ppb10 bus 23
bge1 at pci11 dev 0 function 0 "Broadcom BCM5721" rev 0x11, BCM5750 B1
(0x4101): apic 2 int 17, address 00:1c:c4:74:80:dd
brgphy1 at bge1 phy 1: BCM5750 10/100/1000baseT PHY, rev. 0
uhci0 at pci0 dev 29 function 0 "Intel 6321ESB USB" rev 0x09: apic 2 int 23
uhci1 at pci0 dev 29 function 1 "Intel 6321ESB USB" rev 0x09: apic 2 int 23
uhci2 at pci0 dev 29 function 2 "Intel 6321ESB USB" rev 0x09: apic 2 int 23
ehci0 at pci0 dev 29 function 7 "Intel 6321ESB USB" rev 0x09: apic 2 int 23
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb11 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0xd9
pci12 at ppb11 bus 24
vga1 at pci12 dev 2 function 0 "Matrox MGA G200e (ServerEngines)" rev 0x02
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
pcib0 at pci0 dev 31 function 0 "Intel 6321ESB LPC" rev 0x09
pciide0 at pci0 dev 31 function 2 "Intel 6321ESB SATA" rev 0x09: DMA,
channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <FB080C4080>
wd0: 16-sector PIO, LBA48, 76319MB, 156301488 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <TEAC, DW-224E-V, C.CA> ATAPI 5/cdrom
removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
ichiic0 at pci0 dev 31 function 3 "Intel 6321ESB SMBus" rev 0x09: apic 2
int 19
iic0 at ichiic0
usb1 at uhci0: USB revision 1.0
uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb2 at uhci1: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci2: USB revision 1.0
uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
mtrr: Pentium Pro MTRR support
uhidev0 at uhub3 port 1 configuration 1 interface 0 "ServerEngines SE USB
Device" rev 1.10/0.01 addr 2
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 variable keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev1 at uhub3 port 1 configuration 1 interface 1 "ServerEngines SE USB
Device" rev 1.10/0.01 addr 2
uhidev1: iclass 3/1
ums0 at uhidev1: 8 buttons, Z dir
wsmouse0 at ums0 mux 0
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
root on wd0a (bde2e1931dc01d48.a) swap on wd0b dump on wd0b
carp1: state transition: BACKUP -> MASTER
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
arp_rtrequest: bad gateway value
carp10: state transition: BACKUP -> MASTER
carp13: state transition: BACKUP -> MASTER
carp2: state transition: BACKUP -> MASTER
arp_rtrequest: bad gateway value
carp20: state transition: BACKUP -> MASTER
carp3: state transition: BACKUP -> MASTER
carp4: state transition: BACKUP -> MASTER
carp48: state transition: BACKUP -> MASTER
carp49: state transition: BACKUP -> MASTER
carp5: state transition: BACKUP -> MASTER
carp50: state transition: BACKUP -> MASTER
carp2: state transition: MASTER -> BACKUP
carp20: state transition: MASTER -> BACKUP
carp3: state transition: MASTER -> BACKUP
carp4: state transition: MASTER -> BACKUP
carp48: state transition: MASTER -> BACKUP
carp10: state transition: MASTER -> BACKUP
carp1: state transition: MASTER -> BACKUP
carp50: state transition: MASTER -> BACKUP
carp49: state transition: MASTER -> BACKUP
carp5: state transition: MASTER -> BACKUP

regards,
Wiesław Herr

Reply via email to