FreeBSD機 (Core2 duo),NetBSD機 (Raspberry pi)に同じpf.confを入れたが,FreeBSDでは動いて,NetBSDでは動かず.
具体的には,以下のルールがNetBSDでは弾かれる.icmp6は知らん,と.
pass inet6 proto icmp6 all
man pf.confを見るとicmp6って書いてあるが,その下に/etc/protocolsを見るとも書いてある.
proto <protocol> This rule applies only to packets of this protocol. Common protocols are icmp(4), icmp6(4), tcp(4), and udp(4). For a list of all the protocol name to number mappings used by pfctl(8), see the file /etc/protocols.
念のため,FreeBSDとNetBSDでicmp6がどう載っているか比べてみた.
FreeBSD
ipv6-icmp 58 IPV6-ICMP icmp6 # ICMP for IPv6
NetBSD
ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 [RFC2460]
NetBSDにはicmp6が入っていなかった.NetBSD,FreeBSDどちらもipv6-icmpなら載っているので,pf.confにはipv6-icmpと書くことにした.
pass inet6 proto ipv6-icmp all