Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    2.4.4 ICMPv6 Firewall Rules?

    Scheduled Pinned Locked Moved IPv6
    50 Posts 9 Posters 21.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • johnpozJ
      johnpoz LAYER 8 Global Moderator
      last edited by

      Just at a loss to understanding what he is attempting to do..

      The required icmpv6 stuff for ipv6 to work on wan - is there!!! Same goes for lan side for clients to find pfsense as their ipv6 gateway.. There is NOTHING you need to add..

      All other to wan would be blocked out of the gate - if you want to allow actual ping response.. Then you can add that.. Same sort of thing goes if you want to allow into your lan from outside..

      Example I allow echoreq into my my ntp server IPv6 address from internet.. And to ping pfsense IPv6 wan side IP, etc. There is little reason to add any other rules..

      An intelligent man is sometimes forced to be drunk to spend time with his fools
      If you get confused: Listen to the Music Play
      Please don't Chat/PM me for help, unless mod related
      SG-4860 24.11 | Lab VMs 2.8, 24.11

      1 Reply Last reply Reply Quote 1
      • beremonavabiB
        beremonavabi
        last edited by

        According to:

        https://www.netgate.com/docs/pfsense/book/network/ipv6-subnets.html?highlight=icmpv6#neighbor-discovery

        "...pfSense automatically adds firewall rules on IPv6 enabled interfaces that permit NDP to function. "

        Am I supposed to be able to see that rule in my Firewall rules (I don't)? Or is it just an implied rule like the default deny on incoming traffic? Does that statement imply we don't need to add any special ICMPv6 rule at all?

        SG-4860, pfSense 2.4.5-RELEASE-p1 (amd64)

        sigiS johnpozJ 2 Replies Last reply Reply Quote 2
        • sigiS
          sigi @beremonavabi
          last edited by

          @beremonavabi Maybe you should go once to cli or "Diagnostics / Command Prompt" and execute
          "pfctl -s rules" this will help you understand about hidden rules..

          beremonavabiB 1 Reply Last reply Reply Quote 1
          • johnpozJ
            johnpoz LAYER 8 Global Moderator @beremonavabi
            last edited by

            @beremonavabi said in 2.4.4 ICMPv6 Firewall Rules?:

            "...pfSense automatically adds firewall rules on IPv6 enabled interfaces that permit NDP to function. "

            You have ZERO add which is what have been telling you ;)

            An intelligent man is sometimes forced to be drunk to spend time with his fools
            If you get confused: Listen to the Music Play
            Please don't Chat/PM me for help, unless mod related
            SG-4860 24.11 | Lab VMs 2.8, 24.11

            1 Reply Last reply Reply Quote 0
            • beremonavabiB
              beremonavabi @sigi
              last edited by beremonavabi

              @sigi said in 2.4.4 ICMPv6 Firewall Rules?:

              @beremonavabi Maybe you should go once to cli or "Diagnostics / Command Prompt" and execute
              "pfctl -s rules" this will help you understand about hidden rules..

              Thanks. According to that:

              Shell Output - pfctl -s rules
              ...
              pass quick inet6 proto ipv6-icmp all icmp6-type unreach keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type toobig keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type neighbrsol keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type neighbradv keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echorep keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routersol keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routeradv keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type neighbrsol keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type neighbradv keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type echorep keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routersol keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routeradv keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type neighbrsol keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type neighbradv keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type neighbrsol keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type neighbradv keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type neighbrsol keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type neighbradv keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type neighbrsol keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type neighbradv keep state
              pass in quick inet6 proto ipv6-icmp from :: to ff02::/16 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from :: to ff02::/16 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from :: to ff02::/16 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from :: to ff02::/16 icmp6-type neighbrsol keep state
              pass in quick inet6 proto ipv6-icmp from :: to ff02::/16 icmp6-type neighbradv keep state
              ...
              

              That makes much of this discussion moot. It looks like fSense defaults to allowing (with various restrictions):

              Packet Too Big
              Destination Unreachable
              Echo Reply
              Echo Request
              Neighbor Advertisement
              Neighbor Solicitation
              Router Advertisement
              Router Solicitation

              Oddly, of the Neighbor Discovery subset, it doesn't default to allowing Redirect. I wonder why? Of course, if it defaults to allowing those ICMPv6 subtypes into the system, why not those other "must pass" subtypes:

              Parameter Problem (invalid IP header)
              Time Exceeded?

              SG-4860, pfSense 2.4.5-RELEASE-p1 (amd64)

              1 Reply Last reply Reply Quote 0
              • lohphatL
                lohphat @johnpoz
                last edited by

                @johnpoz Sorry for bumping this but is there a way to see "hidden" rules? The ICMPv6 "hidden" doesn't seem to allow echo reply so when it's said that pfSense has automatic rules for things to work, but things like echo doesn't work. This ambiguity is a source of some frustration.

                SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                1 Reply Last reply Reply Quote 0
                • johnpozJ
                  johnpoz LAYER 8 Global Moderator
                  last edited by johnpoz

                  @lohphat said in 2.4.4 ICMPv6 Firewall Rules?:

                  there a way to see "hidden" rules?

                  https://docs.netgate.com/pfsense/en/latest/firewall/viewing-the-full-pf-ruleset.html

                  [2.4.5-RELEASE][admin@sg4860.local.lan]/root: pfctl -sr | grep ipv6
                  pass quick inet6 proto ipv6-icmp all icmp6-type unreach keep state
                  pass quick inet6 proto ipv6-icmp all icmp6-type toobig keep state
                  pass quick inet6 proto ipv6-icmp all icmp6-type neighbrsol keep state
                  pass quick inet6 proto ipv6-icmp all icmp6-type neighbradv keep state
                  

                  Echo reply is not a requirement for ipv6 to function. Other than at the link-local layer its not allowed automatic

                  pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echorep keep state
                  

                  There are many more, just touching on the highlights..

                  Out of the box it doesn't allow ping to wan on ipv4 either, etc.

                  An intelligent man is sometimes forced to be drunk to spend time with his fools
                  If you get confused: Listen to the Music Play
                  Please don't Chat/PM me for help, unless mod related
                  SG-4860 24.11 | Lab VMs 2.8, 24.11

                  lohphatL 2 Replies Last reply Reply Quote 0
                  • lohphatL
                    lohphat @johnpoz
                    last edited by

                    @johnpoz Thank you! Just what I was looking for.

                    When it comes to troubleshooting, knowing the actual rules vs implied is important.

                    There are gray areas when it comes to implied functionality which could be handled better. e.g. if IPv6 is enabled then due to the inherent need to support multicast groups (e.g. in lieu of ARP) it's not obvious how much of multicast functionality is implied. Is all FE80::/10 traffic allowed? Is IGMPv6 automatically implied (or needed), etc.

                    It would be nice to have an intro section covering just what is actually in play when VPN, IPv6, et al are enabled for each.

                    SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                    1 Reply Last reply Reply Quote 0
                    • lohphatL
                      lohphat @johnpoz
                      last edited by

                      @johnpoz Here's an interesting find implying that pfSense still isn't multicast complete for either IPv4 or IPv6, in this case not supporting multicast membership management protocols.

                      https://redmine.pfsense.org/issues/6228

                      SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                      1 Reply Last reply Reply Quote 0
                      • johnpozJ
                        johnpoz LAYER 8 Global Moderator
                        last edited by

                        The way I read that since set to OS, is that freebsd doesn't support it as of yet. So not really a "pfsense" thing that could be fixed.

                        An intelligent man is sometimes forced to be drunk to spend time with his fools
                        If you get confused: Listen to the Music Play
                        Please don't Chat/PM me for help, unless mod related
                        SG-4860 24.11 | Lab VMs 2.8, 24.11

                        lohphatL 1 Reply Last reply Reply Quote 0
                        • lohphatL
                          lohphat @johnpoz
                          last edited by

                          @johnpoz Agreed. I'm a bit surprised as FreeBSD is the basis for router code.

                          But it does expose the lack of clarity of what functionality is or is not available. If a product claims to support IPv6 but is missing part of the protocol suite that needs to be documented somewhere instead of needing to hunt it down across several domains of dependency (OS, pfSense, OEM, etc.). Having a section listing known limitations, e.g. incomplete protocol suite/RFC implementation would REALLY help.

                          SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                          1 Reply Last reply Reply Quote 0
                          • johnpozJ
                            johnpoz LAYER 8 Global Moderator
                            last edited by

                            I think your confused about multicast.. Routers don't need to do shit with that.. multicast is suppose to be on the L2...

                            Membership management for multicast is not really something a router has to do or support.. Do that on your switch! ;) Ie your L2 device..

                            An intelligent man is sometimes forced to be drunk to spend time with his fools
                            If you get confused: Listen to the Music Play
                            Please don't Chat/PM me for help, unless mod related
                            SG-4860 24.11 | Lab VMs 2.8, 24.11

                            lohphatL JKnottJ 2 Replies Last reply Reply Quote 0
                            • lohphatL
                              lohphat @johnpoz
                              last edited by

                              @johnpoz Not with IPTV. The multicast streams must pass the firewall. Also, if you have multicast inside the firewall they need to traverse VLANS. Where are the VLANS terminated? pfSense.

                              Routers, and thus the reason IGMP proxy exists as a package, must be coordinated by all devices, especially routers, not just switches, when different segments must be traversed.

                              SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                              1 Reply Last reply Reply Quote 0
                              • johnpozJ
                                johnpoz LAYER 8 Global Moderator
                                last edited by

                                That is why IPTV providers gives you their own shit ;)

                                An intelligent man is sometimes forced to be drunk to spend time with his fools
                                If you get confused: Listen to the Music Play
                                Please don't Chat/PM me for help, unless mod related
                                SG-4860 24.11 | Lab VMs 2.8, 24.11

                                lohphatL 1 Reply Last reply Reply Quote 0
                                • lohphatL
                                  lohphat @johnpoz
                                  last edited by

                                  @johnpoz Well even without IPTV, I've led multicast video deployments on internal enterprise networks, and as stated, traffic must traverse vlans and routers too. pfSense is a critical router if VLANS are terminated there.

                                  IPv4 made us complacent about multicast, it was easy to ignore, but with IPv6 it's an integral part of the protocol stack and piecemeal protocol stack implementations are not helping. We need to up our game.

                                  All I'm asking is for a call-out in the docs of where the known holes are instead of having to find them on our own.

                                  /end rant ;-)

                                  SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                                  1 Reply Last reply Reply Quote 0
                                  • JKnottJ
                                    JKnott @johnpoz
                                    last edited by

                                    @johnpoz said in 2.4.4 ICMPv6 Firewall Rules?:

                                    multicast is suppose to be on the L2...

                                    Multicast can pass through routers, but that must be arranged for. That is normally done with IGMP on IPv4 or MLD on IPv6.

                                    PfSense running on Qotom mini PC
                                    i5 CPU, 4 GB memory, 32 GB SSD & 4 Intel Gb Ethernet ports.
                                    UniFi AC-Lite access point

                                    I haven't lost my mind. It's around here...somewhere...

                                    lohphatL 2 Replies Last reply Reply Quote 1
                                    • lohphatL
                                      lohphat @JKnott
                                      last edited by lohphat

                                      @JKnott That's the point, MLDv2 is not supported on FreeBSD yet, thus pfSense can't handle the IPv6 multicast routing properly.

                                      https://redmine.pfsense.org/issues/6228

                                      SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                                      1 Reply Last reply Reply Quote 0
                                      • lohphatL
                                        lohphat @JKnott
                                        last edited by lohphat

                                        @JKnott Hmm. I just found this: https://www.freebsd.org/releases/8.0R/relnotes.html

                                        "The IGMPv3 and SSM (Source-Specific Multicast) including IPv6 SSM and MLDv2 have been added."

                                        Since pfSense is running on 11.x now (I think) then that feature request must be blocked by something else.

                                        SG-3100 24.11-RELEASE (arm) | Avahi (2.2_6) | ntopng (5.6.0_1) | openvpn-client-export (1.9.5) | pfBlockerNG-devel (3.2.1_20) | System_Patches (2.2.20_5)

                                        1 Reply Last reply Reply Quote 0
                                        • O
                                          OffstageRoller
                                          last edited by

                                          The confusion for me, comes from third party sites and their "tests."

                                          If I don't create a rule on my WAN to allow Any to my computer on ICMPv6, the following site will show a "not tested" for ICMP and instruct me to adjust my firewall:
                                          https://ipv6-test.com

                                          I see the rejected entry in my logs for that test.

                                          If I create the rule to allow that connection, I show as passing and I can see that request pass through my firewall to my computer.

                                          But that begs the question, what exactly are they testing? Are they sending a ping request without me initiating the connection? Because I believe that's not valid for how IPv6 is designed to work correct?

                                          Here's an example of what they show when I don't create a specific rule to allow ICMPv6 through my firewall:

                                          Screen Shot 2020-06-12 at 12.39.30 PM.jpg

                                          1 Reply Last reply Reply Quote 0
                                          • johnpozJ
                                            johnpoz LAYER 8 Global Moderator
                                            last edited by johnpoz

                                            If you want to allow icmp through pfsense to your IPv6 clients - yes you would have to allow that.

                                            Pfsense out of the box does not allow icmp echo requests to it or through it out of the box.. Doing so would be a horrible IDEA.. Out of the box no unsolicited inbound traffic is allowed or answered..

                                            Other than the min required to say get an IPv6 address.. on your wan, which is not a echo request for sure.

                                            But its simple enough to fix - see my test..

                                            ipv6test.jpg

                                            I am curious how they are doing their PTR test though.. Because my IPv6 address does have a PTR setup..

                                            reverse.jpg
                                            ptr.jpg

                                            That resolves on the public internet, but they are saying there isn't one.. Maybe because it doesn't resolve? I will check on it later, and change it so forward matches and is valid domain see if that fixes their test site result.

                                            request pass through my firewall to my computer.

                                            You have to make sure the IP your pinging firewall also allows it... Just because you allow it through pfsense doesn't mean the clients firewall will answer.

                                            An intelligent man is sometimes forced to be drunk to spend time with his fools
                                            If you get confused: Listen to the Music Play
                                            Please don't Chat/PM me for help, unless mod related
                                            SG-4860 24.11 | Lab VMs 2.8, 24.11

                                            JKnottJ 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.