[Bug 226411] PF does not properly keep state with GRE in IPSec
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Mar 7 02:57:02 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226411
Bug ID: 226411
Summary: PF does not properly keep state with GRE in IPSec
Product: Base System
Version: CURRENT
Hardware: amd64
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: eric at edombroski.com
It appears pf keeps incorrect state for packets routed via a GRE tunnel secured
via IPSec. GRE tunnel works correctly without IPSec, but with IPSec (transport
mode) enabled between the hosts and pf enabled, traffic does not flow as
expected. Traffic between hosts (not going over GRE tunnel) with IPSec appears
to work as expected.
ICMP echo requests / replies and TCP SYN packets make it through, even if
rules are put in place to prevent the traffic. TCP replies are NOT let
through, even if rules are put in place to allow the traffic.
When showing states with pfctl, it seems that the states are both in one
direction when using IPSec, as opposed to in opposite directions without IPSec.
CORRECT (GRE tunnel w/o IPSEC):
> pfctl -ss | grep 10.6.0.10 | grep 10.1.0.1
gre0 icmp 10.6.0.10:63271 <- 10.1.0.1:63271 0:0
vmx1 icmp 10.1.0.1:63271 -> 10.6.0.10:63271 0:0
BAD (GRE tunnel w/ IPSEC):
> pfctl -ss | grep 10.6.0.10 | grep 10.1.0.1
vmx1 icmp 10.1.0.1:588 -> 10.6.0.10:588 0:0
gre0 icmp 10.6.0.10:588 -> 10.1.0.1:588 0:0
Config:
host1 10.10.10.1 external interface, 10.6.0.1 internal interface
host2 10.10.10.2
host1 (freebsd router)
ifconfig gre0
tunnel: inet 10.10.10.1 -> 10.10.10.2
inet 10.1.0.1 --> 10.1.0.2 netmask 0xfffffffc
host2 (freebsd client)
ifconfig gre0
tunnel: inet 10.10.10.2 -> 10.10.10.1
inet 10.1.0.2 --> 10.1.0.1 netmask 0xfffffffc
host2: route add -net 10.6.0.0/23 10.1.0.1
Originally came across this in downstream pfSense based on 11.1-RELEASE-p6, but
I've reproduced this 12-CURRENT snapshot r330034.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list