In the past, I have been providing services (i.e. HTTP, VPN, etc.) on my network via port forwarding. Each service has its own domain name (i.e.
vpn.domain.name, etc), and run on distinct machines within the network. A dynamic DNS client is run on the router to update
home.domain.name and the other subdomains are simply CNAMEs of
home.domain.name. My zone is managed via CloudFlare.
Now, I am given 1 IPv4 address (/32) and 1 IPv6 network (/48) assigned via DHCPv6-PD. My router (which runs OpenWRT Trunk) sends out router advertisements (RA) to let computers on my network know about the assigned IPv6 prefix. Configuration of global addresses within the network is done via stateless configuration. Therefore, while each machine shares the same global IPv4 address, they have distinct IPv6 addresses.
Hence, I can no longer use a CNAME.
One solution I have thought of is to write a dynamic DNS client that runs on each machine providing the service. However, I'd prefer to have the router do it as it is able to listen for changes in network state on the WAN side, so my client does not have to poll the CloudFlare API.
I am wondering if anyone has a better, centralized solution to solve this.