[ppml] Practical alternatives to v6 deaggregation for ISP/NSPs
Kevin Day
kevin at your.org
Wed Mar 12 00:50:12 EDT 2008
I've brought this up a long while back, and while we got some
interesting discussion... I still don't have a solution to this for
our network. Bringing this up to some other operators with similar
networks who haven't even begun to deploy v6 has brought out comments
like "I'm totally screwed if that's the case, that would require
changing my network and/or business model."
For simplicity, I'll describe the (slightly modified for simplicity's
sake) case of my own network, and I'd love some suggestions for
alternatives. I'm pretty much stuck with not being able to deploy v6
any further until I get some kind of resolution to this, so any advice
would be appreciated. If policy changes are necessary because
situations like this weren't known when some of the original v6
allocation/use policies were created, I'd like to solicit this
community's opinions before proposing changes.
Some may ask why this is a discussion for ARIN at all. ARIN's policies
strongly suggest that v6 space isn't to be deaggregated at all:
6.3.8 "In IPv6 address policy, the goal of aggregation is considered
to be the most important."
6.4.3 "RIRs will apply a minimum size for IPv6 allocations, to
facilitate prefix-based filtering. The minimum allocation size for
IPv6 address space is /32."
and most importantly:
6.5.1.1 "advertising that connectivity through its single aggregated
address allocation"
Based off this (and other RIR's policies) many networks are already
filtering on RIR assignment boundaries - meaning if you get a /32, you
won't be heard from a sizable chunk of the internet if you announce
less than that.
Our network:
Consists of several unconnected geographically separate Points of
Presence.
Each POP has peering and transit through different upstreams than the
others. There is no single transit provider that has service in all
the locations we're in.
What we do now in v4:
We have a /19.
One /24 is reserved for anycast, and announced from all our POPs.
One /23 is announced at each POP.
This works really well for us. Nearly everyone will accept
announcements down to a /24, and for those that don't we announce the
full /19 as well.
In v6:
We have a /32.
We cannot deaggregate this at all.
This causes the problem that I can't direct incoming traffic to the
correct POP.
Possible solution #1 - Deaggregate to our upstreams and let them sort
it out.
Some people suggested that I announce the full /32, and announce
deaggregates with no-export set to my upstreams to let them direct
inbound traffic to the correct POP. If I had all the same transit
providers at every POP, I could announce the /32 to them and announce
a /36s per POP. This breaks if you have a transit provider that isn't
connected to *every* POP I have. As an example, assume I have transit
provider A at my POP in NYC, and transit provider B at my POP in Los
Angeles.
To Provider A I announce at our connection in NYC:
2001:1234::/32 (covering prefix for my whole space)
2001:1234:1000::/36 (space I'm using only in NYC)
To Provider B I announce at our connection in Los Angeles:
2001:1234::/32 (covering prefix for my whole space)
2001:1234:2000::/36 (space I'm using only in Los Angeles)
This works until Provider B receives a packet destined for
2001:1234:1000::/36. They haven't received that /36 route (since it's
smaller than the /32 RIR boundry, and a network between A and B is
filtering it out), so they deliver it to me in Los Angeles because of
the /32. That either causes a routing loop between us, or I'm forced
to tunnel it back to New York.
Possible solution #2 - Get more address space.
A few suggested that we get more address space. ARIN policy doesn't
allow us to get any additional space until we've reached a 0.94 HD
ratio. I'll never reach that amount if I'm only running my network out
of one POP. I'd also like to deploy v6 everywhere now.
We don't qualify for micro-allocations, despite some suggestions that
we might be able to. We're not "critical infrastructure" as much as
I'd like to think we are, and "Internal Infrastructure" micro-
allocations are intended to be non-routed.
The suggestion that we should start multiple corporations and get a /
32 for each one is creative, but I don't see that as a fair solution.
Possible solution #3 - Announce the /32 from all of our POPs and haul
the bits around ourselves
This really doesn't work either. Some of our POPs are really tiny and
have 1/100th the bandwidth of the others. I'd be required to be able
to support receiving a lot more inbound at *all* POPs just to handle
inbound traffic that I'm going to bounce right out.
We'd either have to invest in expensive transport between all of our
POPs, or waste a lot of bandwidth tunneling things around. If we have
8 pops, roughly 7/8ths of the packets coming into each one would be
for the wrong POP and have to be bounced right back out. This would
make our network fragile (any POP being temporarily unable to talk to
another one would cause outages), and dramatically increase our costs
of doing business. It also seems very unnecessary, endpoints like us
shouldn't really be involved in routing at that level.
While I'm not saying every ASN works like this, a lot of hosting/colo/
content companies operate in this manner. Forcing them all to change
how they do things is going to really increase the struggle-factor of
getting them on board with v6.
I also have no solution for anycast. I saw talk of a proposal a while
back for v6 anycast allocations, did that die off?
For those reading this far... If this were your network, what would
you do if you needed to deploy v6 immediately?
How many people here are strongly opposed to the idea of a TINY amount
of deaggregation being explicitly allowed, but discouraged? Something
along the lines of "/32 networks may be deaggregated down to /36
announcements. Deaggregation may only be done if other methods to
avoid deaggregation have been considered, etc etc etc" Or allow
someone who qualifies for a /32 to obtain multiple smaller allocations
if they choose?
I'm not asking to allow every network to deaggregate their /32 into
65536 /48s, but rather a small amount of deaggregation ONLY where
there really are multiple routes to different places.
-- Kevin
More information about the ARIN-PPML
mailing list