10.6. Configuring ULA Preference
Sections 2.1.4, 2.2.2, and 2.2.3 of RFC 5220 [RFC5220] describe address selection problems related to Unique Local Addresses (ULAs) [RFC4193]. By default, global IPv6 destinations are preferred over ULA destinations, since an arbitrary ULA is not necessarily reachable:
Example 1:
- Candidate Source Addresses:
2001:db8:1::1orfd11:1111:1111:1::1 - Destination Address List:
2001:db8:2::2orfd22:2222:2222:2::2 - Result:
2001:db8:2::2(src2001:db8:1::1) thenfd22:2222:2222:2::2(srcfd11:1111:1111:1::1) (prefer higher precedence)
However, a site-specific policy entry can be used to cause ULAs within a site to be preferred over global addresses as follows.
Prefix Precedence Label
::1/128 50 0
fd11:1111:1111::/48 45 14
::/0 40 1
::ffff:0:0/96 35 4
2002::/16 30 2
2001::/32 5 5
fc00::/7 3 13
::/96 1 3
fec0::/10 1 11
3ffe::/16 1 12
Such a configuration would have the following effect:
Example 2:
- Candidate Source Addresses:
2001:db8:1::1orfd11:1111:1111:1::1 - Destination Address List:
2001:db8:2::2orfd22:2222:2222:2::2 - Unchanged Result:
2001:db8:2::2(src2001:db8:1::1) thenfd22:2222:2222:2::2(srcfd11:1111:1111:1::1) (prefer higher precedence)
Example 3:
- Candidate Source Addresses:
2001:db8:1::1orfd11:1111:1111:1::1 - Destination Address List:
2001:db8:2::2orfd11:1111:1111:2::2 - New Result:
fd11:1111:1111:2::2(srcfd11:1111:1111:1::1) then2001:db8:2::2(src2001:db8:1::1) (prefer higher precedence)
Since ULAs are defined to have a /48 site prefix, an implementation might choose to add such a row automatically on a machine with a ULA.
It is also worth noting that ULAs are assigned global scope. As such, the existence of one or more rows in the prefix policy table is important so that source address selection does not choose a ULA purely based on longest match:
Example 4:
- Candidate Source Addresses:
2001:db8:1::1orfd11:1111:1111:1::1 - Destination Address List:
ff00:1 - Result:
2001:db8:1::1(prefer matching label)