Failing to add URL alias with mixed IPv4 and IPv6 addresses

  • Hi! I've got a mystery for you all! Or perhaps a bug, we'll see.

    I'm trying to create an alias to represent a list of IP addresses for Cloudflare, which I want to whitelist. The pfSense documentation says that "IPv4 and IPv6 addresses can be mixed inside an alias", but I fail to do so.

    It seems to work fine for me if I create either an alias with IPv4 addresses or IPv6 addresses, just not mixed. When I mix them, I seem to only get IPv6 addresses:

    Screenshot from 2021-01-11 20-34-39.pngScreenshot from 2021-01-11 20-34-28.png

    I thought first that maybe this is just the UI not showing me the full list, but no! If I apply that alias as a whitelist in a FW rule, my traffic gets blocked:

    Screenshot from 2021-01-11 20-35-16.png

    It works fine if I use only the IPv4 list, but I want to whitelist the IPv6 addresses too!

    I even tried to create a nested alias, but I fail to create that. This feels more like just my mistake, that I don't understand how to set it up properly. This is the error I get:

    Screenshot from 2021-01-11 20-56-30.png

    Any idea what I'm doing wrong here? Or could this be a bug?

    I'm running 2.4.5-RELEASE-p1 (arm) on a Netgate SG-3100.

    EDIT: I knew posting here would help me! I tried putting the two URLs in the opposite order (IPv4 first, followed by IPv6), and now that only resolved to IPv4 addresses (it seems)!

    Screenshot from 2021-01-11 21-30-08.png

  • @lindhe

    I found the same issue with Enom. If I create an alias, it will always be used. I use an alias to convert a long host name from my ISP to one on my domain for IPv4. But I have the proper host names on IPv6 for my network.

  • LAYER 8 Global Moderator

    Yeah this does "seem" a bit buggy to me as well. From my quick check.

    I was able to duplicate what your seeing.. Where the the last url seems to be the only one listed.. If v4 is on bottom, then v4 are listed, if v6 is bottom. The v6 is listed in the table.

    You would have to use 2 different lists to see if that is due to the ipv6 and ipv4 different lists. Or if the same sort of thing happens if you have 2 different v4 or v6 lists. And only the bottom url is stored in the table.

    To be honest I would think url (tables) would be the alias you would want to use anyway. This would be reloaded per the number of days you choose from 1 to 128.. Since I would assume these lists could change..

    But with those you can only use 1 url.

    As a work around until can get to the bottom of it. I would suggest create 2 url (table) aliases - one for v4 and one for v6 and use those in different rules for v4 and v6..

  • @johnpoz Thank you! Excellent suggestion. Indeed, two different IPv4 lists exhibit the same behaviour.

    Your suggested work-around makes sense. I guess I should also report this issue to the maintainers. Is Redmine the right place to do so?

    Screenshot from 2021-01-17 13-41-14.png Screenshot from 2021-01-17 13-41-38.png

    Reference files:

  • LAYER 8 Global Moderator

    Yes the correct place would be redmine, with link to this thread for discussion of and showing that others have duplicated the problem.

    As another work around, you could prob leverage pfblocker aliases, they allow for multiple lists in the same alias.. Then use the pfblocker native alias in you rules.

  • @johnpoz This seems similar, but I don't think it's the same issue. Do you think so too?

  • LAYER 8 Global Moderator

    I would say yeah its sim in nature.. But what your doing here is pulling a list of ips, nothing has to be resolved, other then where your list is hosted.. Guess that could be related to why only the 2nd url listed loads?

  • @johnpoz I tried now to use two different domains (github and cloudflare) for the URLs, and it still only resolves the last one.

  • Here is the issue I created for it: