Where to buy Internet IP addresses

I think that they have to be forwarded. What do you do if people chain
three routers? How does your actual CPE know to dish out a /60 and not
a /64 or something? What if someone chains four? What if someone puts
three devices behind the second?

These are weird topologies, sure, but coming up with some algorithm to
handle some of them and not others is going to be too complicated, and
leave some people without a workable solution.

Forwarding these requests up to the ISP's router and having several
PDs per end customer is in my opinion the best way to go.

How is it the ISP's router is able to handle this? Be specific.

Now explain why that can't be made to work at the CPE level.

There hasn't been a lot of consensus on exactly how this should work
(haberman, bykim, arunt, rao, stenberg, etc). so I am conveniently
doing a bit of handwaving, perhaps.

One of the goals of providing larger address spaces was to reduce (and
hopefully eliminate) the need to burn forwarding table entries where
doing so isn't strictly necessary. When we forget this, it leads us
to the same sorts of disasters that we currently have in v4.

... JG

Joe Greco wrote:

One of the goals of providing larger address spaces was to reduce (and
hopefully eliminate) the need to burn forwarding table entries where
doing so isn't strictly necessary. When we forget this, it leads us
to the same sorts of disasters that we currently have in v4.

... JG

And if you are encouraging /48 handouts, /32 isnt large enough to prevent that on the global level.

Joe Greco wrote:

How is it the ISP's router is able to handle this? Be specific.

The primary benefit of chaining is to allocate the correct network length to a router. We are not just talking from the ISP to the customer, but from the customer's CPE out to other routers. I believe chaining also needs support for network length memory (ie, hey, I've been handing out 18 networks, so a /59 is my aggregate I should ask for), and of course, network length negotiation for PD.

Now explain why that can't be made to work at the CPE level.

If the ISP hands out a /56, the CPE will still need support for chaining. All devices from the ISP out to the furthest customer daisy chained router would need support for it. Anything else requires manual configuration which is beyond some people's capabilities. If someone wants to daisy chain 4 routers serially, with 2 subnets per router off a routing CPE, then even if the ISP hands out a /56, each of those routers needs to support chaining PD requests and ideally support only requesting exactly what they need. So:

ISP -> CPE router /56 -> Linksys1 /61 -> Linksys2 /62 & /63 -> Linksys3 /62 -> Linksys4 /63

This is without the ISP participating in the chaining since they are automatically assigning a /56. However, with negotiation in place, an ISP could set a cap on network length (/56 or /48 as they may see fit) and can participate in chaining. So customer starts out with a /64, adds a router than supports 4 networks and the ISP switches them to at least a /61, possibly even just issuing a renumber, reclaiming the original /64. It would also be possible to define boundary caps in addition to upper caps in negotiation. ie, if you only want a /64, we give that to you. If you want a /62, perhaps a /60 is handed out instead. This is probably more useful for the ISP than it is CPE side, as the CPE has no idea up front how much they can obtain and wasting networks downstream through the home network could cause them to run out of assignment space.

In addition, most home network equipment should be able to support individual /64 chained PD's without that much trouble given their smaller routing tables. So a chained PD request for /64's across home networks might work. however, How's a home router supposed to know it's actually chaining in the home and not talking to an ISP? So whatever we did, it would have to be somewhat generic to support both topologies. Or the protocols need to also support flags to define "Hey! I'm an ISP!" Which actually isn't a bad idea. See below.

One of the goals of providing larger address spaces was to reduce (and
hopefully eliminate) the need to burn forwarding table entries where
doing so isn't strictly necessary. When we forget this, it leads us
to the same sorts of disasters that we currently have in v4.

I agree. That being said, if I presume one table entry per customer, it doesn't matter if that entry is a /64, /60, or a /56. Unfortunately, DHCPv6 itself doesn't seem to support dynamic length negotiation at this time, or chaining requests for supporting the automatic numbering of an entire home network with 5+ routers connected however the user wanted to connect them, perhaps completely inefficient and with routing loops.

To work properly, this will have to be standardized, or home router implementations won't handle clueless home networking very well in a number of configurations. It may be useful to treat PD or some other protocol that handles the numbering, routing, and loop detection differently for home based networks where there is a presumption that just plugging something in should work without any knowledge of what happens inside the device.

Jack

From: Joe Maimon [mailto:jmaimon@ttec.com]
Sent: Monday, May 04, 2009 10:04 AM
To: Joe Greco
Cc: nanog list
Subject: Re: Where to buy Internet IP addresses

Joe Greco wrote:

One of the goals of providing larger address spaces was to reduce (and
hopefully eliminate) the need to burn forwarding table entries where
doing so isn't strictly necessary. When we forget this, it leads us
to the same sorts of disasters that we currently have in v4.

... JG

And if you are encouraging /48 handouts, /32 isnt large enough to prevent

that

on the global level.

If you are handing out /48s then
  if have more than 64k clients (or will in the next few years) then
    You should ask (or should have asked) for more than a /32

(Need 128k clients? == /31)
...
(Need 512k clients? == /29)
...
...
...
(Need ~512,000k clients? == /19)
  And, again, each of those clients has 64k subnets.
  With each subnet supporting as many hosts as they want to put there.

And, we can allocate 2^16 (64k) of THOSE (/19) sized allocations from the
CURRENT (2000::)/3.
  IMHO - While that should last us a "long time", we can follow that
up with 4000::/3 - and revisit policies then, as needed.

And, we could do something like use /56s for home-users and the math above
"shifts larger" ...

Ask, and ye shall receive.
/TJ

Joe Maimon wrote:

Joe Greco wrote:

One of the goals of providing larger address spaces was to reduce (and
hopefully eliminate) the need to burn forwarding table entries where
doing so isn't strictly necessary. When we forget this, it leads us
to the same sorts of disasters that we currently have in v4.

... JG

And if you are encouraging /48 handouts, /32 isnt large enough to
prevent that on the global level.

What remains to be seen is what will happen when someone says "hey, my
/32 is full, I need another one". Will it be:

a) Sure, here's another /32, have fun!
b) You didn't subnet very efficiently by current standards even though
it was encouraged in the past; try to reclaim some space internally.

~Seth

We returned our vintage year 2000 /32 to RIPE and got a brand shiny new /25 instead. It helps to have a couple of tens of million customers. We hope we never have to pollute the DFZ, by just having a single prefix for the forseeable future.

Joe Greco wrote:

Forwarding these requests up to the ISP's router and having several PDs per end customer is in my opinion the best way to go.

How is it the ISP's router is able to handle this? Be specific.

I view with suspicion the notion that an ISP is going to take addressing direction from their customers, willy-nilly.

Now explain why that can't be made to work at the CPE level.

Home devices chain with NAT because that is the scheme most likely to work well enough by default 99% of the time out of the box, without requiring ANY upstream cooperation.

Home devices that work out of the box for the common usage scenarios generate profit, those that dont generate loss.

Joe