Apparently people are still having a hard time visualizing use cases for
ULA-C, so let me try again to lay one out:
Let's say I build a somewhat ad-hoc wireless mesh network covering a
residential area to provide Internet service. For my Internet
connectivity, I get service from several different ISPs, each of which
gives me an IPv6 subnet (PA space). As this is a wireless network based
on inexpensive hardware often deployed in a residential setting (and
possibly involves some mobility), I can't count on any portion of my
network to maintain reachability to any particular ISP uplink. In
addition, I am likely to change ISPs over time, and I'm too small to
qualify for PI space, so I choose to number my internal network
infrastructure out of private (ULA) space. In parallel, I also use
DHCP, DHCP-PD, etc. to assign subnets of my various PA space to users on
various portions of my network (thereby giving them IPv6 address(es) of
whichever Internet uplinks are available to them). (I may also use some
form of DHCP to assign PA space to my router interfaces, or I may choose
to hide that detail by doing my mesh networking below layer 3, or I may
choose to use ULA space there and rewrite the source address of any
ULA-sourced packets leaving my network for the Internet.)
Now let's say I am thinking a little bit bigger than just my
neighborhood, and would also like my network to connect to neighboring
mesh networks. (This could fairly easily evolve into an arbitrarily
large internetwork enabling disaster-resistant connectivity across
neighborhoods, cities, or entire regions.) In order to facilitate
troubleshooting, I elect to use ULA-C space for my network
infrastructure, including router interfaces, (and either rewrite source
addresses of any packets (presumably ICMP) my routers send out to the
Internet, or also assign PA space to each interface with something like
DHCP-PD, so that the router can use IPv6 address selection to use a
public address for packets destined for public Internet addresses). As
before, I would give out PA subnet(s) to users for Internet
connectivity, but I might also elect to give them ULA addresses to
communicate with other hosts on my mesh network and neighboring ones.
In a situation like this, I need to be able to resolve PTRs for hosts
using my neighboring networks' ULA space without any prior knowledge
about the neighboring wireless network. If both networks are numbered
out of ULA-C space, this is easy: I send my PTR queries to my regular
DNS resolver, which has a PA address and Internet connectivity, and can
resolve the PTR from the DNS server authoritative for my neighboring
wireless network's ULA-C block.
So, again, I see that ULA-C is a very simple solution to fill a very
useful function that cannot be filled by local ULAs alone (at least
without adding additional complexity to DNS). Importantly, this
functionality does not depend on ULA-C providing an additional assurance
of uniqueness, but on the fact that my block (and its authoritative DNS
servers) can be registered, and others can query the registered data.
As IPv6 adoption takes hold and dynamic wireless networking becomes
cheaper and more widespread, I would see this kind of use case, and its
many permutations, becoming more and more common. Can you describe a
way to use existing address types available to small networks (PA and
ULA-L) and existing DNS technologies to support the requirements listed
above? If not, I would argue that we should complete the process of
ULA-C standardization, as it represents the simplest available solution
to the problem.
-Scott
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------