@jta joão taveira araújo RIPE 74 Addressing IPv6 A CDN perspective
@jta joão taveira araújo
RIPE 74
Addressing IPv6 A CDN perspective
@jta joão taveira araújo
RIPE 74
Addressing IPv6 A CDN perspective
clickbait
@jta joão taveira araújo
RIPE 74
Addressing IPv6 A CDN perspective
your mileage may vary
@fastly
LHRSFO
LHRSFO
SJC
LAXclients
Points of Presence
Unicast model 2012
SJC
Unicast model
LAX
SJC
LAX
Prefix announcements
2012
SJC
Unicast model
LAX
SJC
LAXDNS
offsetLAX offsetSJC
IP address
2012
SJC
Unicast model
LAX
SJC
LAXDNS
offsetLAX offsetSJC
2012
IP allocation 2012
SJC
SJC/24
(most specific prefix)
IP allocation 2012
SJC
SJC/24
(most specific prefix)
IP allocation 2012
SJC
SJC/24
(most specific prefix)
Hosts
IP allocation 2012
SJC
SJC/24
(most specific prefix)
Hosts
VIPs
Fate-sharing 2012
SJC
SJC/24
(most specific prefix)
Hosts
VIPs 💀
fate-sharing between address types🔥unicast has poor fallback properties🔥
2013
Everything is fine
💸 anycast to support apex domains and in-house DNS
/24 per POP will run out at some point💣
SJC
Anycast model
LAXDNS
Same prefix offset
Anycast IP address
2014
SJC
LAX
SJC
LAXDNS
offset
Anycast model 2014
SJC
LAXDNS
offset
Anycast model 2014
SJC
LAXDNS
offset
Anycast model 2014
SYD
Everything is fine
fate-sharing between address types🔥unicast has poor fallback properties🔥
2014
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
/24 per POP will run out at some point💣
IP addressing 2013
SJC
SJC/24
(most specific prefix)
Hosts
VIPs
IP addressing 2014
SJC
SJC/24
(most specific prefix)
Hosts
VIPs
IP addressing 2015
SJC
SJC/24
(most specific prefix)
Hosts
VIPs
/24 per POP will run out at some point💣
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
💸 you should probably do IPv6
outgrown IPv4 allocation scheme🔥
The good news
no first-mover advantage
limited demand for IPv6
more valued features: caching, purging, logging, stats, VCL
already lost the very few customers who cared about IPv6
wasn’t affecting our retention rate or growth
at least two competitors already offered IPv6
no need to rush, so clean slate
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
Decouple address types
VIPsone-to-many mapping, service abstraction
Infrastructureone-to-one mapping to a physical endpoint
Decouple address types
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
SYD
anycast prefix
SYD“unicast” prefix(subnetted from anycast prefix)
Backing anycast ~2015
SYD SYD
DNS
offset SYD
Backing anycast ~2015
SYD
Backing anycast ~2015
SYD
DNS
offset SYD
SYD
DNS
offset SYD
Backing anycast ~2015
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
VIPsone-to-many mapping, service abstraction
Infrastructureone-to-one mapping to a physical endpoint
VIP allocation 2016
/32
Per provider planes 2016
/36
/32
FRA
FRA
FRA
FRA
FRA
FRA
FRA
FRA
FRA
VIP allocation 2016
SYD
SYD
SYD
SYD
SYD
LAX
LAX
LAX
LAX
LAX
ASIA
ASIA
ASIA
ASIA
ASIA
/48
FRA FRA
VIP allocation 2016
offset FRA FRA
FRA
FRA
FRA
Impact on global table 2016
number of VIP groups
number of provider planes
Impact on global table 2016
number of VIP groups
number of provider planes
provider independent
set no-export (more specific routes)
number of VIP groups
number of provider planes
Impact on global table 2016
set no-export (more specific routes)
provider independent
Locator / Identifier 2016
www.example.com
64 bit service identifier
VIPsone-to-many mapping, service abstraction
Infrastructureone-to-one mapping to a physical endpoint
FRA
FRA
FRA
Infrastructure allocation 2016
FRA
Infrastructure allocation 2016
FRA
FRA
FRA
FRA
Impact on global table 2016
Σ | providersi |number of announcements ~POPs∈i
Impact on global table 2016
Σ | providersi |number of announcements ~POPs∈i
each infrastructure prefix in a POP is a /40
Impact on global table 2016
Σ | providersi |number of announcements ~POPs∈i
each infrastructure prefix in a POP is a /40
up to 16 /44s
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2015
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2016
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
outgrown IPv4 allocation scheme🔥
Everything is terrible
fate-sharing between address types🔥unicast has poor fallback properties🔥
2016
anycast is hard to get right 🔥🔥
overhead of running concurrent models🔥
inbound path control is terrible
Locator names 2016
FRA
FRA
SJC
SJC
SJC
SJC sjc.global.vip.
peering.fra.inf.fra.inf.
FRA
FRA
ntt.vip.vip.
Locator names 2016
FRA
FRA
SJC
SJC
SJC
SJC sjc.global.vip.
peering.fra.inf.fra.inf.
FRA
FRA
ntt.vip.vip.
Locator names 2016
FRA
FRA
SJC
SJC
SJC
SJC sjc.global.vip.
peering.fra.inf.fra.inf.
FRA
FRA
ntt.vip.vip.
Anchoring IPv4 2016! bird-export.exampleif locator ~ "*cogent.vip" && provider != "cogent" then reject;if locator ~ "*.cogent.vip" && provider == "cogent" then set_no_export()
decoupled address types
graceful fallback
fine-grained inbound path control
unified model based on locator names
VIP prefix mobility
Summary
takes a long time
ILNP mobility, multi-homing, inbound TE
MP-TCP resource pooling
re-ECN information asymmetry in connectivity markets
Intellectual heritage
ILNP locators expose path diversity
MP-TCP pool path diversity at transport and above
re-ECN e2e metrics drive path selection
WIP
ILNP
MP-TCP
re-ECN
WIP
EU research from ~ 10 years ago
LHR
Either the questions don’t matter
ILNP mobility, multi-homing, inbound TE
MP-TCP resource pooling
re-ECN information asymmetry in connectivity markets
Either the ideas don’t work
ILNP locators expose path diversity
MP-TCP paths exposed to transport/app
re-ECN e2e metrics drive path selection
@jta joão taveira araújo
RIPE 74
Questions