I'm currently working on adding IPv6 capabilities to our network, and I have some questions on what is considered best practice in 2020 to convert some of the IPv4 concepts we are used to into the IPv6 world.
In the current setup that I have, we are allocated a /64 from the ISP, and the router advertises that prefix for clients to configure themselves using SLAAC. This seems to work fine and as far as I know everyone has IPv6 internet access.
However we like to be able to query things by name, and I'm not sure what the best practice is to provision AAAA records for the clients.
What I have done is deploy stateful DHCPv6 on the dnsmasq instance that runs our DHCPv4 and tell it to hand out ULAs from some range which naturally provisions AAAA records for anyone who asks for an address. This also seems to work fine, but I know there is some dislike of stateful DHCPv6. This also helps me to consolidate the assignment of the servers we have on static IPs exactly as I do for DHCPv4, these servers for various reasons should be accessible at a fixed IP address and we would like that to continue to be the case for IPv6.
The only other way I can think of to do the AAAA records is to send the dnsmasq machine the RA prefix from the router via unicast and then use the dnsmasq to advertise the GUA prefix for slaac using the ra-names
option. This wouldn't solve the static address assignments though as far as I can tell and I'm not sure how reliable it actually is. Is there a better way to handle internal AAAA records than ULAs with stateful DHCPv6?
Finally, as things are starting to work, we are now looking at migrating our public services to IPv6. My understanding is that this would require a fixed GUA for the servers to provision public AAAA records. I'm not sure how to achieve this using SLAAC from the edge router, unless there is some kind of dynamic-dns equivalent. Can I again use DHCPv6 or another manual assignment method to pick IPs in our assigned prefix? I was hesitant to do this because I thought it might collide with a SLAAC address and I'm not sure what happens if there's a collision. Alternatively I have the option to ask the ISP for a /48, should I do that and advertise a single /64 for local clients to get connectivity and different /64 for static servers? This seemed like overkill to me, we already wont come close to filling the single /64 but this might be my IPv4 mindset confusing me.