Hi all,

I got this information from Peter, which did the trick!
I now have my complete rule-set with a block default policy working!

Thanks to David and Georg as well for their help!

Best regards
Markus

> Begin forwarded message:
> 
> From: "Peter J. Philipp" <[email protected]>
> Subject: Re: GRE IP6/IP6 not working as soon as pf is enabled
> Date: 16. January 2022 at 08:03:39 CET
> To: Markus Wipp <[email protected]>
> 
> Hi,
> 
> You look like you might understand german so I have a german link for you:
> 
> https://wiki.freifunk-franken.de/w/Benutzer:PeterPhilipp#GRE_konfigurieren_mit_pf_trick
> 
> It seems that when the remote end is Linux that they put in an intermediate
> header with an empty option into the GRE packet.  The "allow-opts" option
> should pass this in pf.
> 
> Wish you best of luck!
> 
> -peter
> 
> On Sat, Jan 15, 2022 at 08:10:44PM +0100, Markus Wipp wrote:
>> Hi all,
>> 
>> This is my first mail to an OpenBSD list, so I hope I chose the correct one.
>> 
>> I???m trying to get a GRE tunnel in combination with pf working a few days 
>> now
>> on my OpenBSD (OpenBSD 7.0 (GENERIC.MP) #232: Thu Sep 30 14:25:29 MDT 2021)
>> 
>> If I disable pf with pfctl -d the connection is working and I can ping.
>> However as soon as I enable pf with pfctl -e the ping stops working (even 
>> with a configuration that
>> should allow all traffic according my understanding)
>> 
>> The GRE interface looks like:
>> 
>> gre0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1476
>>      index 44 priority 0 llprio 6
>>      encap: vnetid none txprio payload rxprio packet
>>      groups: gre
>>      tunnel: inet6 2a02:xxxx:yyy:zzz::1 --> 2a00:uuuu:vvvv:wwww::10 ttl 64 
>> nodf ecn
>>      inet6 fe80::20d:b9ff:fe44:ecdc%gre1051 -->  prefixlen 64 scopeid 0x2c
>>      inet6 2a01:qqq:rrrr:ss::2 -->  prefixlen 128
>> 
>> The simplified pf-Rule looks like:
>> 
>> pass
>> pass on gre proto gre no state
>> 
>> tcpdump shows the following:
>> 
>> doas tcpdump -nvei gre0 ip6 and icmp6 or proto gre
>> tcpdump: listening on gre0, link-type LOOP
>> 19:29:15.124113 2a01:qqq:rrrr:ss::2 > 2a01:qqq:rrrr:ss::1: icmp6: echo 
>> request (id:9e45 seq:18) [icmp6 cksum ok] (len 64, hlim 64)
>> 19:29:16.124438 2a01:qqq:rrrr:ss::2 > 2a01:qqq:rrrr:ss::1: icmp6: echo 
>> request (id:9e45 seq:19) [icmp6 cksum ok] (len 64, hlim 64)
>> 19:29:17.1248112a01:qqq:rrrr:ss::2 > 2a01:qqq:rrrr:ss::1: icmp6: echo 
>> request (id:9e45 seq:20) [icmp6 cksum ok] (len 64, hlim 64)
>> 
>> and
>> 
>> doas tcpdump -nvei em0 ip6 and icmp6 or proto gre
>> tcpdump: listening on em0, link-type EN10MB
>> 19:51:06.126497 00:0d:b9:44:ec:dc 34:81:c4:e0:4b:79 86dd 162: 
>> 2a02:xxxx:yyy:zzz::1 > 2a00:uuuu:vvvv:wwww::10: gre [] 86dd 
>> 2a01:qqq:rrrr:ss::2 > 2a01:qqq:rrrr:ss::1: icmp6: echo request (id:9e45 
>> seq:1329) (len 64, hlim 64) [flowlabel 0x367f] (len 108, hlim 64)
>> 19:51:07.126815 00:0d:b9:44:ec:dc 34:81:c4:e0:4b:79 86dd 162: 
>> 2a02:xxxx:yyy:zzz::11 > 2a00:uuuu:vvvv:wwww::10: gre [] 86dd 
>> 2a01:qqq:rrrr:ss::2 > 2a01:qqq:rrrr:ss::1: icmp6: echo request (id:9e45 
>> seq:1330) (len 64, hlim 64) [flowlabel 0x367f] (len 108, hlim 64)
>> 19:51:08.127252 00:0d:b9:44:ec:dc 34:81:c4:e0:4b:79 86dd 162: 
>> 2a02:xxxx:yyy:zzz::1 > 2a00:uuuu:vvvv:wwww::10: gre [] 86dd 
>> 2a01:qqq:rrrr:ss::2 > 2a01:qqq:rrrr:ss::1: icmp6: echo request (id:9e45 
>> seq:1331) (len 64, hlim 64) [flowlabel 0x367f] (len 108, hlim 64)
>> 
>> 
>> And
>> 
>> doas tcpdump -nvei pflog0
>> tcpdump: WARNING: snaplen raised from 116 to 160
>> tcpdump: listening on pflog0, link-type PFLOG
>> 19:55:03.962579 rule 0/(ip-option) [uid 0, pid 74650] pass in on em0: 
>> 2a00:uuuu:vvvv:wwww::10 > 2a02:xxxx:yyy:zzz::1: DSTOPT (type 0x04: len=1) 
>> gre [] 86dd [|ip6] [flowlabel 0xa8f7b] (len 116, hlim 243)
>> 19:55:04.964864 rule 0/(ip-option) [uid 0, pid 74650] pass in on em0: 
>> 2a00:uuuu:vvvv:wwww::10 > 2a02:xxxx:yyy:zzz::1: DSTOPT (type 0x04: len=1) 
>> gre [] 86dd [|ip6] [flowlabel 0xa8f7b] (len 116, hlim 243)
>> 19:55:05.963947 rule 0/(ip-option) [uid 0, pid 74650] pass in on em0: 
>> 2a00:uuuu:vvvv:wwww::10 > 2a02:xxxx:yyy:zzz::1: DSTOPT (type 0x04: len=1) 
>> gre [] 86dd [|ip6] [flowlabel 0xa8f7b] (len 116, hlim 243)
>> 
>> 
>> Thanks in advance for any hints on how to solve this issue
>> 
>> Best regards
>> Markus
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to