On 2019-03-29, Rachel Roch <rr...@tutanota.de> wrote:
> Hi,
>
> Has anyone encountered this before ?
>
> Neighbor            AS    MsgRcvd    MsgSent  OutQ Up/Down  State/PrfRcvd
> EXT-V6-R2           65515         50         40     0 00:02:55 Active
> EXT-V4-R2           65515         38         37     0 00:27:42      1
> After approx just over 2 minutes, the V6 flaps, bu the V4 remains rock solid.
>
> The boxes are sitting right next to each other, connected over an OpenBSD 
> LACP trunk.
>
> I have made the pf rules as simple as possible:
>
> table <my_router_interfaces> counters {self}
> table <bsd_friends> counters {192.0.2.1,2001:DB8::1}
> pass in quick proto {tcp,udp,icmp} from <bsd_friends> to 
> <my_router_interfaces> modulate state
> pass out quick proto {tcp,udp,icmp} from <my_router_interfaces> to 
> <bsd_friends> modulate state

A few tips:

Start with an explicit "block any" rule so you don't have any traffic
caught by the implicit "pass flags any no state" default. (If you want
some "stateless" traffic as may often be the case on a BGP router, make
it explicit in the ruleset). Otherwise you risk state being created 
on something other than a SYN, so PF doesn't know the TCP window scaling
value (which is *only* sent on SYN packets), which can result in the
connection being killed after some traffic passes (state tracking gets
out of sync).

You don't have a rule for icmp6. IPv6's equivalent to ARP runs over icmp6
and you do need a rule for that. It will currently be passed by the implicit
default rule but that will stop when you add "block any"..

"modulate state" really isn't as simple as possible ;)


Reply via email to