Unable to change tracked prefix ID used for OPT1 interface
I get a /60 from my ISP on WAN.
I have my GUEST (OPT1) interface set to track WAN... I originally had it set to use prefix ID 5, but apparently that didn't translate over after importing my config to my 2.4.4 box.
GUEST is now showing "0" as the prefix ID it's using.
LAN properly continues to use "1" as its prefix ID, as it did on my 2.4.3 box.
I'm trying to change the GUEST prefix ID back to 5, but it's not working. As soon as I click "Save", the page reloads with the yellow box saying changes need to be applied, but scrolling down the page I can see that the prefix ID is set back to 0.
Edit to add:
More... I added an unused physical interface as OPT2... enabled IPv6 > Track Interface, and entered prefix ID 8. After saving, the field reset to 0, which is already being used by GUEST/OPT1. That's definitely a problem.
Not sure if related or not...
Edit: This wasn't at all related, so removed it. Separate DDNS issue, related to credentials.
Well, there's definitely a bug here somewhere...
As noted in my first post, I restored my config from my 2.4.3 box... kept the DUID the same and all, so I'd get the same IPv6 prefix. Well, I went back on that now... changed the DUID to a current time and MAC address, removed IPv6 from all interfaces, rebooted, and went through to re-apply...
- Re-enabled IPv6 to WAN... DHCP6, send prefix hint, request /60, etc... save, apply changes.
- Re-enabled IPv6 to LAN... Track Interface, WAN, prefix ID 1... save, it gets reset to 0. Apply changes.
- Re-enabled IPv6 to Guest/OPT1... Track Interface, WAN, prefix ID 5... save, it gets reset to 0. Apply changes.
NO errors have shown up anywhere here. Despite my knowing this config is invalid, I proceed anyway, just to see if any errors do show up, or if the correct prefix IDs might have been saved behind-the-scenes.
- Status > Interfaces... release and renew on WAN, to have it request IPv6 from ISP DHCPv6 server.
- WAN gets an address, LAN and Guest get addresses within the same /64. See screenshot below.
So something's not right here... things definitely aren't working the way they should be.
As of the moment I'm posting this, my build is a couple of days old (8/17/18 20:20:38)... so I'll be updating now to see if anything was fixed.
Edit to add: Nope, not fixed... both interfaces still reset to 0 after trying to change the prefix ID.
Edit 2: manually modifying the config and fixing the prefix IDs to be what they should be, then rebooting, works just fine.
Thanks for reporting that!
It appears to be a problem due to a change in PHP 7,
is_numeric()no longer validates hexadecimal values so it defaulted to 0.
I just committed a fix for that, it should be in snapshots soon
virgiliomi last edited by
You're welcome! I'm always happy to find that one instance of a function that has changed, causing issues as a result (noting that this apparently is the only instance of that
is_numeric()check in pfSense).