IPv6 fc00::/7 — Unique local addresses

If you have PI space, changing providers can be even easier and you can
leave
multiple providers running in parallel.

That's a big IF, given the above. He doesn't qualify for PI space, thanks to
ARIN policies set by people who want routing tables to stay as small as
possible, so PI space to be as difficult as possible to obtain for people
like him.

Would it help if ARIN's policies were changed to allow anyone and everyone
to obtain PI space directly from them (for the appropriate fee, of course), and
then it was left up to the operating community to decide whether or not to
route the smaller chunks of space?

I really don't expect this to be as much of an issue in IPv6.

Right now, we're trying to keep the two communities somewhat in alignment,
so that when people obtain IP space, they have a relatively good feeling about
it being routed correctly. If we let the ARIN policies stray too far
from what the
router operators can/will accept, we're going to end up with an ugly, fragmented
internet in which organizations are given PI GUA space, only to
discover it's not
actually useful for reaching large swaths of the internet.

PI GUA is at least as useful in that context as ULA.

I'd hazard a guess that people would consider that to be a worse scenario
than the one in which we limit who can get PI space so that there's a reasonably
good probability that when the space is issued and announced via BGP, it will be
reachable from most of the rest of the internet...that is to say, our
current modus
operandi.

Not if they are turning to ULA.

Owen

Seems to me the options are:

1) PI, resulting in no renumbering costs, but RIR costs and routing table bloat
2) PA w/o ULA, resulting in full site renumbering cost, no routing table bloat
3) PA w/ ULA, resulting in externally visible-only renumbering cost, no routing table bloat

Folks appear to have voted with their feet that (2) isn't really viable -- they got that particular T-shirt with IPv4 and have been uniformly against getting the IPv6 version, at last as far as I can tell.

My impression (which may be wrong) is that with respect to (1), a) most folks can't justify a PI request to the RIR, b) most folks don't want to deal with the RIR administrative hassle, c) most ISPs would prefer to not have to replace their routers.

That would seem to leave (3).

Am I missing an option?

Regards,
-drc

Why would the commercial interests that have driven ISPs to remove long prefix length filters in IPv4 not apply to IPv6?

Regards,
-drc

Seems to me the options are:

1) PI, resulting in no renumbering costs, but RIR costs and routing
table bloat
2) PA w/o ULA, resulting in full site renumbering cost, no routing
table bloat
3) PA w/ ULA, resulting in externally visible-only renumbering cost,

no

routing table bloat

In my particular case, IPv6 offers no advantage when it comes to
renumbering. It is just exactly as difficult to renumber with v6 as it
is with v4. I do understand that in a lot of cases where end nodes are
autoconfiguring based on RA it makes it easy but in many places that
really isn't an option.

why not just use link-local then? eventually you'll have to connect
that network with another one, chances of overlap (if the systems
support real revenue) are likely too high to want to pay the
renumbering costs, so even link-local isn't a 100% win :frowning:
globally-unique is really the best option all around.

-chris

I don't think so, though I'd add 2 bits to your 1 and 3 options:
1) we ought to make getting PI easy, easy enough that the other
options just don't make sense.
2) ULA brings with it (as do any options that include multiple
addresses) host-stack complexity and address-selection issues... 'do I
use ULA here or GUA when talking to the remote host?'

-chris

why not just use link-local then? eventually you'll have to connect
that network with another one, chances of overlap (if the systems
support real revenue) are likely too high to want to pay the
renumbering costs, so even link-local isn't a 100% win :frowning:
globally-unique is really the best option all around.

-chris

Routing mostly on the end host is why. If I have 10 clustering vlans
(which will never get routed outside the cluster) and they all have the
same link local address (if the vlan interfaces are configured on the
same ethernet device, they will all have the same link local address),
how do they know which vlan interface to send the packet out? All of
them will have exactly the same link local address. And I have an
aversion to putting link local IPs in DNS as everyone thinks the
hostname is on the local link in case of some kind of dns screwup.

>> ula really never should an option... except for a short lived lab,
>> nothing permanent.
>
> I have a few candidate networks for it. =A0Mostly networks used for
> clustering or database access where they are just a flat LAN with no
> "gateway". =A0No layer 3 gets routed off that subnet and the only things
> talking on it are directly attached to it.

why not just use link-local then?

If you had actually every tried to use link-local then you would know why
you don't use link-local.

eventually you'll have to connect
that network with another one, chances of overlap (if the systems
support real revenue) are likely too high to want to pay the
renumbering costs, so even link-local isn't a 100% win :frowning:
globally-unique is really the best option all around.

2^40 is 1099511627776. The chances of collision are so low that
one really shouldn't worry about it. You are millions of times
more likely of dieing from a asteroid 1-in-500,000[1].

If you merge thousands of ULA and don't consolidate then you start
to have a reasonable chance of collision. Even if you do have
colliding ULA prefixes you don't necessarially have colliding subnets
when merging companies. Just allocate subnet randomly. It's not
like 2^16 internal subnets is going to be a major routing problem.

Mark

[1] The Odds of Dying | Live Science

I don't expect the IPv6 routing table to be long enough to drive prefix filtration
in the foreseeable future.

Owen

ula really never should an option... except for a short lived lab,
nothing permanent.

I have a few candidate networks for it. =A0Mostly networks used for
clustering or database access where they are just a flat LAN with no
"gateway". =A0No layer 3 gets routed off that subnet and the only things
talking on it are directly attached to it.

why not just use link-local then?

If you had actually every tried to use link-local then you would know why
you don't use link-local.

I use link local often for many things. Try again.

eventually you'll have to connect
that network with another one, chances of overlap (if the systems
support real revenue) are likely too high to want to pay the
renumbering costs, so even link-local isn't a 100% win :frowning:
globally-unique is really the best option all around.

2^40 is 1099511627776. The chances of collision are so low that
one really shouldn't worry about it. You are millions of times
more likely of dieing from a asteroid 1-in-500,000[1].

There are almost 7,000,000,000 people on the planet. We have
not had anywhere near 14,000 people killed by asteroids, I
think their calculation is off.

If you merge thousands of ULA and don't consolidate then you start
to have a reasonable chance of collision. Even if you do have
colliding ULA prefixes you don't necessarially have colliding subnets
when merging companies. Just allocate subnet randomly. It's not
like 2^16 internal subnets is going to be a major routing problem.

This is, of course, assuming many things:

  1. Everyone follows the same random ULA allocation algorithm.
  2. The algorithm is not flawed and yields relatively smooth
    distribution without significant hot-spots.
  3. People are not lazy
  4. People read instructions

Assumption 1 depends on assumptions 3 and 4.
Assumption 2 is still relatively unknown as we don't have enough operational
experience with it.
Assumption 3 is pretty well provably false.
Assumption 4 is virtually guaranteed to fail.

Since Assumptions 3 and 4 are non-starters, assumption 1 is seriously flawed
at best.

Owen

>>>> "If Woody had gone straight to a ULA prefix, this would never have happened..."
>>> Or better yet, if Woody had gone straight to PI, he wouldn't have this problem, either.
>> ula really never should an option... except for a short lived lab, nothing permanent.
>
> Seems to me the options are:
>
> 1) PI, resulting in no renumbering costs, but RIR costs and routing table bloat
> 2) PA w/o ULA, resulting in full site renumbering cost, no routing table bloat
> 3) PA w/ ULA, resulting in externally visible-only renumbering cost, no routing table bloat
>
> Folks appear to have voted with their feet that (2) isn't really viable -- they got that particular T-shirt with IPv4 and have been uniformly against getting the IPv6 version, at last as far as I can tell.
>
> My impression (which may be wrong) is that with respect to (1), a) most folks can't justify a PI request to the RIR, b) most folks don't want to deal with the RIR administrative hassle, c) most ISPs would prefer to not have to replace their routers.
>
> That would seem to leave (3).
>
> Am I missing an option?

I don't think so, though I'd add 2 bits to your 1 and 3 options:
1) we ought to make getting PI easy, easy enough that the other
options just don't make sense.

Surely your not saying "we ought to make getting PI easy, easy enough
that the other options just don't make sense" so that all residential
users get PI so that if their ISP disappears their network doesn't
break?

Recently we've seen somebody (on either nanog or ipv6-ops) proposing to
set valid lifetimes of 24 hours on ISP GUA prefixes. While a 24 hour
outage is unusual for a always connected broadband service, it isn't
for intermittently connected nodes and networks.

In effect people who suggest using PA GUAs or PI for all IPv6 addressing
are saying you can't run IPv6 unless you have an available IPv6 ISP
connection or you must be able to afford to be able to thrust upon the
world occupation of a global route table slot. They're not realistic
requirements for all potential users of IPv6.

For the most common and scalable case of PA, external addressing
dependencies reduce reliability, because you can't control them.
Completely relying on external connectivity and addressing for your
internal networks reduces their reliability and availability.

In this common case of PA, how are you going to justify that "no IPv6
without an IPv6 ISP" view to people who are very remote, such that even
intermittent Internet access is very occasional; to people who run IPv6
sensor networks and don't ever want them connected to the Internet; or
3rd world countries where just local connectivity provides a very
significant benefit, when global connectivity just isn't affordable?
These and similar are cases where only ISP PA or PI aren't acceptable.

Permanent connectivity to the global IPv6 Internet, while common,
should not be essential to being able to run IPv6, and neither should
PI. All you should need to run IPv6 reliably is stable internal
addressing. Global connectivity should be optional, and possibly only
occasional.

2) ULA brings with it (as do any options that include multiple
addresses) host-stack complexity and address-selection issues... 'do I
use ULA here or GUA when talking to the remote host?'

There's an app for that (or rather a library routine called
getaddrinfo() and an optional table it consults), and there's soon going
to be a way to distribute it via DHCPv6 if the defaults don't suit -

Regards,
Mark.

Surely your not saying "we ought to make getting PI easy, easy enough
that the other options just don't make sense" so that all residential
users get PI so that if their ISP disappears their network doesn't
break?

I've seen this last point come up a few times, and I really don't get it.

If you're multihomed with multiple PA GUAs, yes, you'd want each RA to track its corresponding WAN availability so your devices are using a prefix that has connectivity.

If you're a single-homed leaf network, why on earth wouldn't you want to generate RAs for your statically-assigned prefix all the time, regardless of the state of your WAN connection?

Regards,
Tim.

Define long prefix length. Owen has been fairly forceful in his
advocacy of /48s at every site. Is this too long a prefix? Should
peers only except /32s and shorter?

One assumes unpaid peers will accept prefixes up to the maximum length
the RIR issues for that block, which is currently either /32 (PA) or /48
(PI). Presumably, "long" means any prefix longer than that; paid peers
may accept those as well, but one assumes unpaid peers will not.

S

This isn't to do with anything low level like RAs. This is about
people proposing every IPv6 end-site gets PI i.e. a default free zone
with multiple billions of routes instead of using ULAs for internal,
stable addressing. It's as though they're not aware that the majority
of end-sites on the Internet are residential ones, and that PI can
scale to that number of end-sites. I can't see any other way to
interpret "we ought to make getting PI easy, easy enough that the other
options just don't make sense".

Regards,
Mark.

all the world is not a corner case... I don't think sane folks are
supportive of 'every end site gets pi', I think it's somewhat sane to
believe that enterprise type folks can/should be able to get PI space
to suit their needs. ULA for enterprises is really not a good
solution.

Cable/dsl end users can certainly apply for PI space they may even be
able to justify an allocation (see owen...) I don't think they'll have
much success actually getting a DSL/Cable provider to actually hold
the route for them though... so I'm not sure that your pathological
case matters here.

-chris

"If Woody had gone straight to a ULA prefix, this would never have happened..."

Or better yet, if Woody had gone straight to PI, he wouldn't have this problem, either.

ula really never should an option... except for a short lived lab, nothing permanent.

Seems to me the options are:

1) PI, resulting in no renumbering costs, but RIR costs and routing table bloat
2) PA w/o ULA, resulting in full site renumbering cost, no routing table bloat
3) PA w/ ULA, resulting in externally visible-only renumbering cost, no routing table bloat

Folks appear to have voted with their feet that (2) isn't really viable -- they got that particular T-shirt with IPv4 and have been uniformly against getting the IPv6 version, at last as far as I can tell.

My impression (which may be wrong) is that with respect to (1), a) most folks can't justify a PI request to the RIR, b) most folks don't want to deal with the RIR administrative hassle, c) most ISPs would prefer to not have to replace their routers.

That would seem to leave (3).

Am I missing an option?

I don't think so, though I'd add 2 bits to your 1 and 3 options:
1) we ought to make getting PI easy, easy enough that the other
options just don't make sense.

Surely your not saying "we ought to make getting PI easy, easy enough
that the other options just don't make sense" so that all residential
users get PI so that if their ISP disappears their network doesn't
break?

He may or may not be. I don't think it's such a bad idea.

Recently we've seen somebody (on either nanog or ipv6-ops) proposing to
set valid lifetimes of 24 hours on ISP GUA prefixes. While a 24 hour
outage is unusual for a always connected broadband service, it isn't
for intermittently connected nodes and networks.

The upstream valid lifetime doesn't have a lot to do with what happens on
the internal network if you're smart.

In effect people who suggest using PA GUAs or PI for all IPv6 addressing
are saying you can't run IPv6 unless you have an available IPv6 ISP
connection or you must be able to afford to be able to thrust upon the
world occupation of a global route table slot. They're not realistic
requirements for all potential users of IPv6.

No...PI does not require an available IPv6 ISP connection at all. This
is a misstatement that does not become any less false no matter how
many times you repeat it.

For the most common and scalable case of PA, external addressing
dependencies reduce reliability, because you can't control them.
Completely relying on external connectivity and addressing for your
internal networks reduces their reliability and availability.

This is also false if you use any form of sanity in applying the assigned
PA prefix to your network.

In this common case of PA, how are you going to justify that "no IPv6
without an IPv6 ISP" view to people who are very remote, such that even
intermittent Internet access is very occasional; to people who run IPv6
sensor networks and don't ever want them connected to the Internet; or
3rd world countries where just local connectivity provides a very
significant benefit, when global connectivity just isn't affordable?
These and similar are cases where only ISP PA or PI aren't acceptable.

Nobody is trying to. This is a fallacy of logic that you keep pushing,
but, it's still false. If I wire a PA prefix into my router, it doesn't go
away just because the ISP does. All that happens is that I can't
reach the internet from it, which is kind of true regardless of the
address space used at the point where your ISP goes away.

Permanent connectivity to the global IPv6 Internet, while common,
should not be essential to being able to run IPv6, and neither should
PI. All you should need to run IPv6 reliably is stable internal
addressing. Global connectivity should be optional, and possibly only
occasional.

Why shouldn't PI if it was easy to get? I still don't understand the
perceived advantage of ULA vs. PI other than the perception that
it is easier to get. If PI is just as easy to get, why is it a problem?

2) ULA brings with it (as do any options that include multiple
addresses) host-stack complexity and address-selection issues... 'do I
use ULA here or GUA when talking to the remote host?'

There's an app for that (or rather a library routine called
getaddrinfo() and an optional table it consults), and there's soon going
to be a way to distribute it via DHCPv6 if the defaults don't suit -

draft-fujisaki-dhc-addr-select-opt-09

Sure, now, how many applications have been coded to actually
pay attention to what getaddrinfo is telling them about address
selection order?

Owen

oops, I clipped a little too much from the message before replying...

Permanent connectivity to the global IPv6 Internet, while common,
should not be essential to being able to run IPv6, and neither should
PI. All you should need to run IPv6 reliably is stable internal
addressing. Global connectivity should be optional, and possibly only
occasional.

I think there are many cases where a 'disconnected' network will want
ipv6, I do NOT believe they should use ULA space except in the most
extreme cases. It makes more sense to just get these folks a GUA
allocation of their proper size, support their DNS and registry needs.

I agree that global connectivity should be optional... I've worked on
more than one network that had better never see the light of day, and
will most likely need (or already has?) ipv6 deployments in the coming
months/years.

-chris

>
>>>>>> "If Woody had gone straight to a ULA prefix, this would never have happened..."
>>>>> Or better yet, if Woody had gone straight to PI, he wouldn't have this problem, either.
>>>> ula really never should an option... except for a short lived lab, nothing permanent.
>>>
>>> Seems to me the options are:
>>>
>>> 1) PI, resulting in no renumbering costs, but RIR costs and routing table bloat
>>> 2) PA w/o ULA, resulting in full site renumbering cost, no routing table bloat
>>> 3) PA w/ ULA, resulting in externally visible-only renumbering cost, no routing table bloat
>>>
>>> Folks appear to have voted with their feet that (2) isn't really viable -- they got that particular T-shirt with IPv4 and have been uniformly against getting the IPv6 version, at last as far as I can tell.
>>>
>>> My impression (which may be wrong) is that with respect to (1), a) most folks can't justify a PI request to the RIR, b) most folks don't want to deal with the RIR administrative hassle, c) most ISPs would prefer to not have to replace their routers.
>>>
>>> That would seem to leave (3).
>>>
>>> Am I missing an option?
>>
>> I don't think so, though I'd add 2 bits to your 1 and 3 options:
>> 1) we ought to make getting PI easy, easy enough that the other
>> options just don't make sense.
>
> Surely your not saying "we ought to make getting PI easy, easy enough
> that the other options just don't make sense" so that all residential
> users get PI so that if their ISP disappears their network doesn't
> break?
>
He may or may not be. I don't think it's such a bad idea.

How about algorithmically generating these addresses, so that
they're near unique, instead of having the overhead of a central
registry, and a global routability expectation?

> Recently we've seen somebody (on either nanog or ipv6-ops) proposing to
> set valid lifetimes of 24 hours on ISP GUA prefixes. While a 24 hour
> outage is unusual for a always connected broadband service, it isn't
> for intermittently connected nodes and networks.
>
The upstream valid lifetime doesn't have a lot to do with what happens on
the internal network if you're smart.

Residential end-users aren't "smart" and aren't network engineers - they
pay people like us so that they don't have to be.

> In effect people who suggest using PA GUAs or PI for all IPv6 addressing
> are saying you can't run IPv6 unless you have an available IPv6 ISP
> connection or you must be able to afford to be able to thrust upon the
> world occupation of a global route table slot. They're not realistic
> requirements for all potential users of IPv6.
>
No...PI does not require an available IPv6 ISP connection at all. This
is a misstatement that does not become any less false no matter how
many times you repeat it.

What if you don't have an IPv6 ISP connection? Where do you get your PA
from? Link local isn't good enough, because it can't span more than a
single link. Homes in the future are likely to have multiple networks -
visitor segments, multicast segments for video, children
segments, 6LowPAN for home sensor networks etc.

You've stated you use link locals for this sort of thing, yet you'd be
specifying the interface to use as well. That isn't much different to
using a subnet number, embedded in the address, to specify either
directly attached or remotely reachable subnets. The nice thing about
doing it that way is that IPv6 applications are addressing scope
agnostic - they just use the address supplied, and ask the
underlying OS, which uses the local route table, to
direct where the packets go and therefore select the outgoing interface.
Link locals + interfaces is more complicated, because now socket
options have to be invoked, and only in the case of when a link local
address is specified, which also means performing an address type check
for the interface option. This code has to be present in ever
application, instead of letting the underlying OS taking care of how
application packets are directed towards their destinations, and the
applications not having to care.

> For the most common and scalable case of PA, external addressing
> dependencies reduce reliability, because you can't control them.
> Completely relying on external connectivity and addressing for your
> internal networks reduces their reliability and availability.
>
This is also false if you use any form of sanity in applying the assigned
PA prefix to your network.

I suppose since they don't have the expertise, you could consider
residential end-users insane. You can't make the insane sane just by
telling them to be so. Preventing their "insanity" from breaking their
Internet service, causing them to call your helpdesk, is the sane
thing to do. That is achieved by making their Internet service work
with the absolute least operational intervention on their part. It's
hard enough to get them to enter their username/password via an
embedded web server - to the point where some vendors supply setup CDs
to automate the discovery of the device, avoiding the end user having
to type an IP address URL into their browser.

> In this common case of PA, how are you going to justify that "no IPv6
> without an IPv6 ISP" view to people who are very remote, such that even
> intermittent Internet access is very occasional; to people who run IPv6
> sensor networks and don't ever want them connected to the Internet; or
> 3rd world countries where just local connectivity provides a very
> significant benefit, when global connectivity just isn't affordable?
> These and similar are cases where only ISP PA or PI aren't acceptable.
>
Nobody is trying to. This is a fallacy of logic that you keep pushing,
but, it's still false. If I wire a PA prefix into my router, it doesn't go
away just because the ISP does. All that happens is that I can't
reach the internet from it, which is kind of true regardless of the
address space used at the point where your ISP goes away.

You haven't ever tried to get a majority of residential end-users
to update their firmware have you? You'll have the same luck getting a
majority of them to "wire a PA prefix into" their routers.

> Permanent connectivity to the global IPv6 Internet, while common,
> should not be essential to being able to run IPv6, and neither should
> PI. All you should need to run IPv6 reliably is stable internal
> addressing. Global connectivity should be optional, and possibly only
> occasional.
>
Why shouldn't PI if it was easy to get? I still don't understand the
perceived advantage of ULA vs. PI other than the perception that
it is easier to get. If PI is just as easy to get, why is it a problem?

It seems to me your main criticism of ULAs is that people would expect
it to be globally routed if they paid enough money. Now you're saying
that if PI is really easy to get, people *won't* have a global routing
expectation of PI routability? I certainly would if I was given PI.
What would be worse is that this "non-routable" PI won't come out of a
specific prefix so that it can easily filtered, unlike ULAs.

>> 2) ULA brings with it (as do any options that include multiple
>> addresses) host-stack complexity and address-selection issues... 'do I
>> use ULA here or GUA when talking to the remote host?'
>>
>
> There's an app for that (or rather a library routine called
> getaddrinfo() and an optional table it consults), and there's soon going
> to be a way to distribute it via DHCPv6 if the defaults don't suit -
>
> draft-fujisaki-dhc-addr-select-opt-09
>
Sure, now, how many applications have been coded to actually
pay attention to what getaddrinfo is telling them about address
selection order?

All the ones I use - they all seem to use the first getaddrinfo()
response. They should be attempting to successively connect() to all
responses in the order that getaddrinfo() returns as connect()
failures occur. I don't know if they are (as destination reachability
is usually good), however if they aren't, then the application
developers haven't used getaddrinfo() correctly. That behaviour
wouldn't be exclusive to IPv6 though - IPv4 applications should also be
attempting to connect() to successive addresses when multiple are
returned. IOW, applications coping with multiple responses to
getaddrinfo() is not an exclusive issue to IPv6.

I actually override the current default IPv6 address rules. Here's
my /etc/gai.conf, which makes ULAs override GUAs as that currently
isn't in the default address selection rules, and makes tunnelled IPv6
preferred over native IPv4, as I don't currently have native IPv6. The
MRS entries are the non-defaults, the rest are from the gai.conf manual
page.

Hi,

>> 2) ULA brings with it (as do any options that include multiple
>> addresses) host-stack complexity and address-selection issues... 'do I
>> use ULA here or GUA when talking to the remote host?'
>>
>
> There's an app for that (or rather a library routine called
> getaddrinfo() and an optional table it consults), and there's soon going
> to be a way to distribute it via DHCPv6 if the defaults don't suit -
>
> draft-fujisaki-dhc-addr-select-opt-09

I'm a co-author of this draft.
The draft was redirected to 6man wg at IETF, and has a filename:
draft-fujisaki-6man-addr-select-opt-00

Unfortunately, I cannot declare it's gonna be ready soon.
This proposal has been hanging in the air for long time without any
remarkable progress. IMO, this is mainly due to lack of interests on
this kind of issues, and lack of operator's perspective on it.

I'm glad if anyone could make comments to the 6man list.

Best regards,