How to configure DHCPv6 server for downstream routing?
-
I'm new to IPv6 and am trying to configure my pfsense firewall appropriately. This is what is working so far:
- I have an IPv6/56 delegation from my ISP (Verizon Fios): 2600:4040:ABCD:EF00::/56 (following this)
- IPv6 is working on the OPT1 interface configured with Prefix ID 03 -- devices on that interface are allocated IPv6 addresses in 2600:4040:ABCD:EF03::/64 by the DHCPv6 server on pfsense.
I have a Google Wifi mesh router on my LAN interface and want to enable IPv6 on it. According to the instructions, the Google Wifi router needs to be allocated a prefix length of less than 64 bits to allow for proper subnet addressing, which is needed for the guest wifi network.
This network shows what I think I need to do:
In words:
- Configure the LAN interface to have the IPv6 Prefix ID A0
- Configure DHCPv6 server on LAN to allocate 2600:4040:ABCD:EFAx::/60
- The Google Wifi router should then detect that it has a prefix length of 60 bits and create two subnets (2600:4040:ABCD:EFAx::/64 and 2600:4040:ABCD:EFAy::/64 in the diagram).
I am having trouble figuring out how to configure the DHCPv6 server on pfsense to allow this. This is what I have configured at the moment (Router Advertisements set to Assisted):
Have I got the right values in the Prefix Delegation fields? I see some EFA0 entries in the NDP table and there is a DHCPv6 lease, which implies that something is working right. However, devices connected to the Google Wifi router aren't being allocated IPv6 addresses (other than fe80:: ones). If I've got the DHCPv6 settings right, then the problem must be in the Google router and I'll take it up with them.
-
Update: I did some more reading on these forums and found this discussion from a few months ago that contained the solution.
I need to specify the whole prefix delegation range allocated to me by the ISP:
As far as I know it's not possible to automatically update this prefix delegation range if the ISP decides to change it; I'll have to update it manually if that ever happens. Please correct me if this statement is wrong...
Consider this question answered. Will leave the post up in the hopes that it will serve as a template / tutorial for others trying to do the same thing in the future.