Hi. I recently upgraded to 6.3 kernel and I noticed my nftables starts
dropping incoming ipv6 router advertisement packets. Here is my input
chains:
|chain input {||
|| type filter hook input priority filter; policy drop;||
|| iifname "lo" accept comment "trusted interfaces"||
|| ct state vmap { invalid : drop, established : accept, related
: accept, * : jump input-allow }||
||}||
||
||chain input-allow {||
|| meta l4proto ipv6-icmp meta nftrace set 1||
|| tcp dport { 22, 22000 } accept||
|| udp dport { 21027, 22000 } accept||
|| icmp type echo-request limit rate 20/second accept comment
"allow ping"||
|| icmpv6 type != { nd-redirect, 139 } accept||
|| ip6 daddr fe80::/64 udp dport 546 accept comment "DHCPv6 client"||
||}|
This setup used to work fine. But now RA packets never go through the
input-allow chain (not show up in nftrace). Something must be wrong in
the "ct state vmap" rule. I'm able to work around this by adding a "jump
input-allow" rule at the ending of "chain input".
I found
https://github.com/torvalds/linux/commit/d9e7891476057b24a1acbf10a491e5b9a1c4ae77
might be relevant (not tested yet). I'm not very familiar with the
kernel. But the return NFT_BREAK in nft_ct_fast.c caught my eye. Is this
the cause?
Thanks.