tried that and myriad other configurations, including one liners as I want to understand the parser from a user perspective.
this doesn’t work: pass out on $DMZ_if inet proto icmp icmp-type echoreq from 192.168.2.1 these work: pass out on $DMZ_if inet proto icmp from 192.168.2.1 pass out on $DMZ_if inet proto icmp icmp-type echoreq The system is amd64, 5.7 release on an Intel Bay Trail Celeron*. Maybe this is somehow breaking the parser? I'm following The Book of PF and there is a similar example: pass inet proto icmp icmp-type $icmp_types from $localnet pass inet6 proto icmp6 icmp6-type $icmp6_types from $localnet pass inet proto icmp icmp-type $icmp_types to $ext_if pass inet6 proto icmp6 icmp6-type $icmp6_types to $ext_if Excerpt From: Peter N.M. Hansteen. “The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall.” Curiously the PF guide on openbsd.org doesn’t include src/dst ip addresses. I’m assuming that I’m the only one having this problem and there’s something stupid I’m not seeing… Note: I break on action, interface, source, destination, options as I’m a bit careless and easily miss something otherwise… My rulesets aren’t that big anyways. When that happens I’ll resort to includes. The general, *highly simplified* syntax for filter rules is: action [direction] [log] [quick] \ [on interface] [af] [proto protocol] \ [from src_addr [port src_port]] \ [to dst_addr [port dst_port]] \ [flags tcp_flags] [state] action [direction] [log] [quick] \ [on interface] [af] [proto protocol] \ [from src_addr [port src_port]] \ [to dst_addr [port dst_port]] \ [flags tcp_flags] [state] Suggestion: can we have a wiki where we can post user examples of configuration snippets of the various system services and discuss them? or maybe an official list of recommended sources online? I get to understand languages better through idiomatic use than through rules unfortunately. * head of dmesg: OpenBSD 5.7 (GENERIC.MP) #881: Sun Mar 8 11:04:17 MDT 2015 dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 8463536128 (8071MB) avail mem = 8234319872 (7852MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xebde0 (51 entries) bios0: vendor American Megatrends Inc. version "F1" date 08/01/2014 bios0: Gigabyte Technology Co., Ltd. J1900M-D2P acpi0 at bios0: rev 2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP APIC FPDT MCFG LPIT HPET SSDT SSDT SSDT UEFI acpi0: wakeup devices UAR5(S4) UAR8(S4) PS2K(S3) PS2M(S3) XHC1(S4) EHC1(S4) PXSX(S4) PXSX(S4) PXSX(S4) PXSX(S4) PWRB(S0) BRCM(S0) BRC3(S0) 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) Celeron(R) CPU J1900 @ 1.99GHz, 2000.47 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,MOVBE,POPCNT,DEADLINE,RDRAND,NXE,LONG,LAHF,3DNOWP,PERF,ITSC cpu0: 1MB 64b/line 16-way L2 cache > On 03 Sep 2015, at 23:05, ropers <rop...@gmail.com> wrote: > > Amateurish guess here: > Could it be that this hinges upon whether proto icmp is divided over two > lines or not? > > On 3 September 2015 at 11:58, Joseph A Borg <jacb...@mac.com> wrote: > am I being daft on this one? > > pfctl passes a syntax check on a rule such as > this: > > pass out on $DMZ_if > \ > inet proto icmp > \ > from > 192.168.99.68 > > but not this: > pass out on $DMZ_if > \ > inet proto > icmp icmp-type unreach \ > from 192.168.99.68 > > this is ok: > pass out on > $DMZ_if \ > inet proto icmp icmp-type $icmp-type_list > > I'm resorting > to having separate pass rules for localnet_if in and dmz_if out > > is this ok? > am I missing something? > > regards