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

    Unexpected alias behaviour - two ranges

    Scheduled Pinned Locked Moved General pfSense Questions
    50 Posts 4 Posters 571 Views 4 Watching
    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.
    • S Offline
      SteveITS Galactic Empire @Patch
      last edited by

      @Patch filterdns processes are left running to monitor for updates in hostnames for Aliases/IPsec/etc, one thread per hostname. So, maybe unrelated to my observed problem.

      But I’d expect some if you had FQDNs to resolve…?

      Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
      When upgrading, allow 10-15 minutes to reboot, or more depending on packages, CPU, and/or disk speed.
      Upvote 👍 helpful posts!

      1 Reply Last reply Reply Quote 0
      • P Offline
        Patch @stephenw10
        last edited by Patch

        @stephenw10 said in Unexpected alias behaviour - two ranges:

        Do you see the full alias set shown in the Resolver logs when you add it?

        More than showing in the alias tables

        • I can't be sure all entries are shown as display is limited to 2000 entries

        • IP_set3 table is empty however the log shows the actual 50 IP addresses are added but duplicates of "Adding Action: pf table: IP_set3 host:" but I think all 50 appear.

        • Similarly "Adding Action: pf table: IP_set2 host: " shows some duplicates. Not all actual IP addresses appear in the 2000 log entires. I was not able to readily tell if all 512 appear at least once in Adding Action: pf table: IP_set2 host:

        As I have not looked at these logs in the past, I'm not sure what is normal

        1 Reply Last reply Reply Quote 0
        • tinfoilmattT Offline
          tinfoilmatt
          last edited by

          I think I agree at this point in some of the most incoherent SQA-masquerading-as-troubleshooting I've ever witnessed that—

          It's true. The ability to add IP addresses and/or IP ranges to "Host" type aliases should be removed completely (and vice versa) via validation. That this makes no sense whatsoever on its face notwithstanding, it clearly has more than mere potential to lead to all of the above confusion.

          1 Reply Last reply Reply Quote 0
          • stephenw10S Online
            stephenw10 Netgate Administrator
            last edited by

            Mmm, you could be right. But that is going to hurt some users. And save some others. Potentially.

            1 Reply Last reply Reply Quote 0
            • P Offline
              Patch @Patch
              last edited by Patch

              For those who have missed what is actually trying to be addressed in this thread

              @Patch said in Unexpected alias behaviour - two ranges:

              I discovered this behaviour when setting up a port forward for a PBX. Unfortunately the behaviour was not immediately obvious.

              @Patch said in Unexpected alias behaviour - two ranges:

              fault detection I suspect was using failure to include specified entries in an alias -> hybrid NAT rule failed -> after firewall restart failure to register of 1 of 4 VoIP suppliers

              Important features of the bug

              • the fault results in failure of pfsense packet filtering not just a display error in debugging tools

              • the error is only revealed when pfsense restarting not after editing and applying an alias change. So not a nice bug to have in a live system.

              • how it presents in my live system is too complex for anyone else to reproduce or Netgate to fix. As a result substitute test end points and a simplified bug reproduction have been searched for (a process which risk masking the bug root cause or miss appropriating blame).

              About the testing

              • Lock up of alias table generation has been used as a substitute marker of packet filter failure of rules which use these aliases.

              • Increasing the entries in each set or increasing the number of sets combined changes the fault behaviour. At least 1 FQDN is required in each IP_set to trigger the error.

              • I have not observed an obvious bug effect in having many FQDN in a set but have not directly tested this. No clear difference between ISC DHCP or Kea DHCP. Doubling the VM ram does not make any difference. Entering the alias via import, manually 1 entry at a time, many host in 1 entry, or network expansion all make minimal difference. A double space between items entered in a host type alias is expanded to a blank entry (which can be manually deleted) but otherwise makes no difference I could detect.

              • Diagnostics -> Tables are useful when the system is working well. It's less clear during fault conditions or as a marker for the bug being investigated in this thread. Double entry in the DNS resolver logs may corresponds to entries missing from these tables. After the primary alias tables stop updating, other aliases table entries is also blocked.

              • If the alias tables are just a diagnostic aid, which are not used in actual filter creation, so as a result at times not representative. Then it would be useful to support more direct alias content display perhaps, through keactrl or directly displaying the database content used by Kea

              To state the obvious

              • I don't like having a production system which stops working for reasons I don't understand so can not reliably avoid. I can configure my systems to keep hierarchical aliases small (combine less than 4 sets with <50 entries) and revert to a higher ram VM allocation, so can avoid triggering this bug in my live systems. Netgate and other users may be less happy to discover it themselves in the future, but I can't speak for them, and my debugging time to support them is finite.

              • The bug can be triggered by sequential or random sets of IP addresses. So blocking easy creation of sequential IP addresses is irrelevant to this bug.

              • Summarising many hours of testing results in information dense posts. While these post are not easy to read, doing the underlying testing is more painful. Useful testing results new understanding of system behaviour, reflected in thread history.

              @stephenw10 said in Unexpected alias behaviour - two ranges:

              that is going to hurt some users. And save some others. Potentially.

              We are off topic but blocking entering IP ranges in an alias is a bad idea.

              • It is sensible to preserve range definition where that optimises resultant filter performance and configuration clarity. As such when a host line is entered which contains a range best left as a range, pfsense could:
              • Change the alias type to Network or
              • Leave the alias type as Host but also retain that line(s) subnet prefix length (it appears when a host type alias is displayed pfsense initially displays all host with a subnet prefix length then hides it).
              S tinfoilmattT 2 Replies Last reply Reply Quote 0
              • S Offline
                SteveITS Galactic Empire @Patch
                last edited by

                It does sound like a bad bug. A deny rule with a partially filled alias, for example.

                I am curious, does it matter where the FQDN is, in your alias? Does it stop updating the alias after the FQDN, if it is listed first or last?

                In my linked thread above it's a rarely used allow rule and I notice it only when I can't connect.

                Diagnostics -> Tables are useful when the system is working well. It's less clear during fault conditions or as a marker for the bug

                The tables are an output of what pf is holding in memory so they should always match. "pfctl -T show -t aliasname" will show the table's contents at a command line, if that helps.

                Per this doc "An alias becomes a table once the firewall loads it into the ruleset."

                Kea is the DHCP server...? (not clear how that's involved...)

                Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                When upgrading, allow 10-15 minutes to reboot, or more depending on packages, CPU, and/or disk speed.
                Upvote 👍 helpful posts!

                tinfoilmattT P 2 Replies Last reply Reply Quote 0
                • tinfoilmattT Offline
                  tinfoilmatt @Patch
                  last edited by

                  @Patch said in Unexpected alias behaviour - two ranges:

                  At least 1 FQDN is required in each IP_set to trigger the error.

                  This is definitely something. It's regarding this exact functionality, from which anything I've attempted to offer this thread stems.

                  @Patch said in Unexpected alias behaviour - two ranges:

                  I can configure my systems to keep hierarchical aliases small

                  [Emphasis added.]

                  I believe what you mean to reference here (and I may be wrong but I think I follow what you're saying)—is more precisely technically referred to as nested aliases. Nested anything—unless prescribed as an absolutely necessary means to accomplish a very particular and limited end—makes anti-kludge warriors and veterans everywhere shudder at the mere idea.

                  Would you be willing to share more about your specific use case of nested aliases?

                  1 Reply Last reply Reply Quote 0
                  • tinfoilmattT Offline
                    tinfoilmatt @SteveITS
                    last edited by

                    @SteveITS What, pray tell, is a "partially filled alias"?

                    1 Reply Last reply Reply Quote 0
                    • S Offline
                      SteveITS Galactic Empire @Patch
                      last edited by SteveITS

                      @tinfoilmatt said in Unexpected alias behaviour - two ranges:

                      What, pray tell, is a "partially filled alias"?

                      OP says they are not filling completely:

                      @Patch said in Unexpected alias behaviour - two ranges:

                      IP_set1 : host type, 50 IPv4 hosts (/32) and at least 1 FQDN
                      IP_set2 : host type, 512 IPv4 hosts (/32) and at least 1 FQDN
                      IP_set3 : host type, 50 IPv4 hosts (/32) and at least 1 FQDN

                      Diagnostic -> tables -> records: Combined_IP = 256, IP_set1=50, IP_set2=206, IP_set3=0

                      ...should have 612 615, has 256. Which seems like a suspiciously specific number, tbh.

                      Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                      When upgrading, allow 10-15 minutes to reboot, or more depending on packages, CPU, and/or disk speed.
                      Upvote 👍 helpful posts!

                      tinfoilmattT 2 Replies Last reply Reply Quote 0
                      • tinfoilmattT Offline
                        tinfoilmatt @SteveITS
                        last edited by

                        @SteveITS said in Unexpected alias behaviour - two ranges:

                        OP says they are not filling completely:

                        An alias either is, or is not. When alias creation fails it's either due to parser logic error and/or a user input error. I thought we'd establised the latter as an errant space.

                        1 Reply Last reply Reply Quote 0
                        • tinfoilmattT Offline
                          tinfoilmatt @SteveITS
                          last edited by

                          @SteveITS Doing that math also, it would seem that there's an error—not necessarily a software bug—somewhere in there, sure.

                          Parsing of "IP_set1" has most likely invalidated the FQDN for some reason (is the conclusion requring the least number of assumpions at least). And now all bets are off with the remaining two, and then of course with the "Combined_IP" nested alias too.

                          If I was being paid to resolve this on behalf of a client, I would establish the end goal intent—and then blow everything out and start over.

                          1 Reply Last reply Reply Quote 0
                          • stephenw10S Online
                            stephenw10 Netgate Administrator
                            last edited by

                            A partially populate table is probably a better description here. That's what I saw when I hit it temporarily.

                            Entering an range of IP addresses as a single line in a host alias is a valid entry. For example: 192.168.1.26-192.168.1.58

                            What's not expected is multiple subnets as a single line in a host alias like: 192.168.10.0/24 192.168.48.0/24. That's not a range.

                            But it looks to be possible to hit this using only valid host aliases. There is a bug here IMO it just needs better defining to fix. Working on it....

                            tinfoilmattT 1 Reply Last reply Reply Quote 0
                            • tinfoilmattT Offline
                              tinfoilmatt @stephenw10
                              last edited by

                              @stephenw10 said in Unexpected alias behaviour - two ranges:

                              That's what I saw when I hit it temporarily.

                              Were/are these the relevant steps?

                              • Create an Alias (host type).
                              • Add a FQDN and two /24 networks one of which includes [one of] the FQDN IPv4 address.
                              • Save and apply.
                              • Look at the filter reload screen,
                              • When complete look at the created table for the Alias.
                              S 1 Reply Last reply Reply Quote 0
                              • S Offline
                                SteveITS Galactic Empire @tinfoilmatt
                                last edited by

                                @tinfoilmatt There were steps above...https://forum.netgate.com/topic/199152/unexpected-alias-behaviour-two-ranges/26

                                As I understood it (if I followed) some additional key details were:

                                1. all child_aliases to be put in the parent_alias needed 1 FQDN, to trigger this
                                2. then restore the new configuration (or reboot?)

                                The restore of course reboots. As I understand the report, it is a latent problem until the reboot when the alias was no longer fully populated.

                                A general usage example (not tested here but used in my other thread), we have an alias that has aliases containing IPs of our clients as well as various dynamic DNS IPs. Obviously we don't want to set up the same rules for each so a nested alias makes sense.

                                Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                                When upgrading, allow 10-15 minutes to reboot, or more depending on packages, CPU, and/or disk speed.
                                Upvote 👍 helpful posts!

                                tinfoilmattT 1 Reply Last reply Reply Quote 0
                                • tinfoilmattT Offline
                                  tinfoilmatt @SteveITS
                                  last edited by

                                  @SteveITS This thread is lacking in coherent, reproducible steps which demonstrate anything. Not picking on you as you're not OP. But Stephen most recently reaffirms that, at one point, he was able to do—something. In this post he referred to it as "case 2".

                                  That's what I'm wanting to try to recreate for myself.

                                  1 Reply Last reply Reply Quote 0
                                  • P Offline
                                    Patch @SteveITS
                                    last edited by Patch

                                    @SteveITS said in Unexpected alias behaviour - two ranges:

                                    I am curious, does it matter where the FQDN is, in your alias? Does it stop updating the alias after the FQDN, if it is listed first or last?

                                    Starting from https://forum.netgate.com/post/1229337
                                    In practice I have entered a FQDN then many actual IPv4 addresses. I have mostly used a fixed prefix such as 201 or 202 or 203 (using a different number for each IP_set alias consists almost) followed by random numbers (0-255). It is far easier to add sequential IPv4 addresses but I was unsure what optimisation pfsense does so avoided that.

                                    These IP_sets are then combined in Combined_IP alias (nested / hierarchical)

                                    The bug is revealed on full alias rebuild. In testing I used a configuration restore to ensure repeatability and clear starting point. Restarting pfsense has trigger it in my active systems.

                                    Using 3 IP_sets containing 50, 512, 50 IP addresses,
                                    for me it happens every time within a 30 sec of pfsense starting up. Smaller IP_set sizes can fail less cleanly. Tested with a clean install pfsense v2.81 and v2.72.

                                    @SteveITS said in Unexpected alias behaviour - two ranges:

                                    ...should have 612 615, has 256. Which seems like a suspiciously specific number, tbh

                                    I agree that's a suspicious number but if I use 2 IP_sets the number is larger and with other IP set sizes the Combined_IP varies slightly.

                                    @stephenw10 said in Unexpected alias behaviour - two ranges:

                                    A partially populate table is probably a better description here.

                                    That's a reasonable term.

                                    Looking at the Resolver logs the missing alias table entries appear to correspond to

                                    said in Unexpected alias behaviour - two ranges:

                                    IP_set3 table is empty however the log shows the actual 50 IP addresses are added but duplicates of "Adding Action: pf table: IP_set3 host:" but I think all 50 appear.

                                    Similarly "Adding Action: pf table: IP_set2 host: " shows some duplicates. Not all actual IP addresses appear in the 2000 log entires. I was not able to readily tell if all 512 appear at least once in Adding Action: pf table: IP_set2 host:

                                    tinfoilmattT 1 Reply Last reply Reply Quote 0
                                    • tinfoilmattT Offline
                                      tinfoilmatt @Patch
                                      last edited by

                                      @Patch said in Unexpected alias behaviour - two ranges:

                                      These IP_sets are then combined in Combined_IP alias (nested / hierarchical)

                                      It's nested.

                                      1 Reply Last reply Reply Quote 0
                                      • tinfoilmattT Offline
                                        tinfoilmatt
                                        last edited by

                                        If anybody can distill two posts above this one, I'm happy to test.

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