For dynamic IPv4 addresses, dynamic DNS services such as Dyn or No-IP are well-known. If an ISP issues a single dynamic IPv4 address every 24 hours (or the like), the router or any other device registers the IPv4 address for a DNS record. With port-forwardings on the router, several services on different clients can be accessed.
Since there are some ISPs that offer dynamic IPv6 prefixes as well, I have a suggestion on how to optimize the “dynamic DNS” service for several IPv6 addresses and names. The main idea is to update only the IPv6 prefix, while the host IDs are static configured on the DNS server. This limits the DNS updates and expands the usage of DNS names even for devices that have no “DynDNS update client” built-in.
A straightforward solution for several IPv6 hosts with dynamic IPv6 addresses would be to have a DNS name for every host and to update every single name from each individual host. This would require that each host itself is capable of updating the DynDNS account. However, only a few devices such as Linux servers or Windows machines will be able to do this update. Many other devices such as printers, network-cameras, etc. do not have the possibility to update a DynDNS record.
Basic Idea: One Update – Many Names
Normally, servers have static IPv6 address. That is, the interface ID such as the EUI-64 “ff:fe” ID is static, too. If a user stores his interface IDs from his devices in a DNS server, the only portion which is missing for a full IPv6 address is the prefix.
The prefix is split into the global routing prefix, allocated from the ISP, and the subnet ID, set by the user. While the subnet ID remains static, the IPv6 prefix can be updated by a single device, e.g., the router or any other device in the network.
With this three information (dynamic prefix, subnet ID, interface ID) the DNS server can build the complete IPv6 address.
This is is quick sketch for this idea:
If I would implement such a system, I would call it dynprefix.net. ;)
The idea of using only the interface ID is not new. For example, interface IDs are used on IPv6 ACLs on the german router AVM FRITZ!Box:
Sample DNS Entries on the DNS Server
This is how the DNS entries on the DNS server would look like. In this example, the current IPv6 prefix for that network is 2001:db8:0:0::/56.
|DNS Name||Dyn Prefix|
|Subnet ID||Interface ID|
|e.g. /56||e.g. 8 Bits||64 Bits|
[Update] Already existing Services
After a deeper search on the Internet and a mailing on the ipv6-ops mailing list I found several services and scripts that use the same idea as above mentioned:
- D.U.I.A. – Dynamic Updates for Internet Addressing: IPv6 for LAN Feature
- HZNET Tools: gen6dns, generates static DNS records (AAAA and PTR)