Multicast ICMPv6 comes back with conntrack state invalid












2














I was playing arround with the Multicast feature of IPv6.



$ ping ff02::2%wlp3s0


This should normally result in an echo-reply from all the routers on your local network segment (Wikipedia - IPv6).
So in my case my home router.



However, I found out that my original nftables rules where blocking the echo-replies:



Original nftables rules preventing echo-reply



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;
}
}


With this setup no reply came through.



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


Fixed nftables rules which allowed echo-reply



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;
}
}


With this setting it worked:



$ 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 state invalid is the culprit



You might have figured out by yourself that the only difference is that once ct state invalid drop comes before ip6 nexthdr ipv6-icmp accept and once afterwards.



Thus, the echo reply to ping ff02::2%wlp3s0 seems to have the ct state invalid. (I even checked this with a more specific rule and logging just to make sure)



My Question



Shouldn't the ct state of the echo-reply be "related" ore "established", since it's a direct result of my echo-request?



If not: Why is a a "normal" unicast ping (ping 2001:470:20::2) working in both cases?










share|improve this question







New contributor




Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    2














    I was playing arround with the Multicast feature of IPv6.



    $ ping ff02::2%wlp3s0


    This should normally result in an echo-reply from all the routers on your local network segment (Wikipedia - IPv6).
    So in my case my home router.



    However, I found out that my original nftables rules where blocking the echo-replies:



    Original nftables rules preventing echo-reply



    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;
    }
    }


    With this setup no reply came through.



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


    Fixed nftables rules which allowed echo-reply



    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;
    }
    }


    With this setting it worked:



    $ 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 state invalid is the culprit



    You might have figured out by yourself that the only difference is that once ct state invalid drop comes before ip6 nexthdr ipv6-icmp accept and once afterwards.



    Thus, the echo reply to ping ff02::2%wlp3s0 seems to have the ct state invalid. (I even checked this with a more specific rule and logging just to make sure)



    My Question



    Shouldn't the ct state of the echo-reply be "related" ore "established", since it's a direct result of my echo-request?



    If not: Why is a a "normal" unicast ping (ping 2001:470:20::2) working in both cases?










    share|improve this question







    New contributor




    Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      2












      2








      2







      I was playing arround with the Multicast feature of IPv6.



      $ ping ff02::2%wlp3s0


      This should normally result in an echo-reply from all the routers on your local network segment (Wikipedia - IPv6).
      So in my case my home router.



      However, I found out that my original nftables rules where blocking the echo-replies:



      Original nftables rules preventing echo-reply



      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;
      }
      }


      With this setup no reply came through.



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


      Fixed nftables rules which allowed echo-reply



      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;
      }
      }


      With this setting it worked:



      $ 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 state invalid is the culprit



      You might have figured out by yourself that the only difference is that once ct state invalid drop comes before ip6 nexthdr ipv6-icmp accept and once afterwards.



      Thus, the echo reply to ping ff02::2%wlp3s0 seems to have the ct state invalid. (I even checked this with a more specific rule and logging just to make sure)



      My Question



      Shouldn't the ct state of the echo-reply be "related" ore "established", since it's a direct result of my echo-request?



      If not: Why is a a "normal" unicast ping (ping 2001:470:20::2) working in both cases?










      share|improve this question







      New contributor




      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I was playing arround with the Multicast feature of IPv6.



      $ ping ff02::2%wlp3s0


      This should normally result in an echo-reply from all the routers on your local network segment (Wikipedia - IPv6).
      So in my case my home router.



      However, I found out that my original nftables rules where blocking the echo-replies:



      Original nftables rules preventing echo-reply



      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;
      }
      }


      With this setup no reply came through.



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


      Fixed nftables rules which allowed echo-reply



      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;
      }
      }


      With this setting it worked:



      $ 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 state invalid is the culprit



      You might have figured out by yourself that the only difference is that once ct state invalid drop comes before ip6 nexthdr ipv6-icmp accept and once afterwards.



      Thus, the echo reply to ping ff02::2%wlp3s0 seems to have the ct state invalid. (I even checked this with a more specific rule and logging just to make sure)



      My Question



      Shouldn't the ct state of the echo-reply be "related" ore "established", since it's a direct result of my echo-request?



      If not: Why is a a "normal" unicast ping (ping 2001:470:20::2) working in both cases?







      ipv6 netfilter multicast nftables ip-conntrack






      share|improve this question







      New contributor




      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 hours ago









      HermiltonHermilton

      1111




      1111




      New contributor




      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Hermilton is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          0






          active

          oldest

          votes











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "106"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Hermilton is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f493831%2fmulticast-icmpv6-comes-back-with-conntrack-state-invalid%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          Hermilton is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Hermilton is a new contributor. Be nice, and check out our Code of Conduct.













          Hermilton is a new contributor. Be nice, and check out our Code of Conduct.












          Hermilton is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f493831%2fmulticast-icmpv6-comes-back-with-conntrack-state-invalid%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Entries order in /etc/network/interfaces

          新発田市

          Grub takes very long (several minutes) to open Menu (in Multi-Boot-System)