멀티캐스트 ICMPv6이 반환되고 conntrack 상태가 유효하지 않습니다.

멀티캐스트 ICMPv6이 반환되고 conntrack 상태가 유효하지 않습니다.

저는 IPv6의 멀티캐스트 기능을 연구하고 있습니다.

$ ping ff02::2%wlp3s0

이로 인해 일반적으로 로컬 네트워크 세그먼트의 모든 라우터가 에코 응답(위키피디아-IPv6). 제 경우에는 홈 라우터입니다.

그러나 원래 nftables 규칙이 반향 응답을 차단하고 있음을 발견했습니다.

원시 nftables 규칙으로 인해 에코 응답이 방지됩니다.

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        iifname "lo" accept
        ct state { established, related } accept
        ct state invalid drop
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept        
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

이 설정으로는 응답이 없습니다.

$ ping ff02::2%wlp3s0
PING ff02::2%wlp3s0(ff02::2%wlp3s0) 56 data bytes

반향된 응답을 허용하는 nftables 규칙을 수정했습니다.

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        iifname "lo" accept
        ct state { established, related } accept
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept
        ct state invalid drop
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

이 설정을 사용하면 작동합니다.

$ ping ff02::2%wlp3s0
PING ff02::2%wlp3s0(ff02::2%wlp3s0) 56 data bytes
64 bytes from fe80::----:----:----:----%wlp3s0: icmp_seq=1 ttl=64 time=1.82 ms

잘못된 CT 상태가 원인입니다

ct state invalid drop유일한 차이점은 이전 과 이후의 한 번이라는 것을 스스로 알 수 있습니다 ip6 nexthdr ipv6-icmp accept.

따라서 쌍에 대한 에코 응답 ping ff02::2%wlp3s0ct state invalid.

내 질문

에코 응답의 ct 상태는 내 에코 요청의 직접적인 결과이기 때문에 "연결됨" 또는 "설정됨"이어야 하지 않습니까?

그렇지 않다면 ping 2001:470:20::2두 경우 모두 "정상적인" 유니캐스트 ping( )이 작동하는 이유는 무엇입니까?

관련 정보