+ All Categories
Home > Documents > IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we...

IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we...

Date post: 12-Oct-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
49
IPv6: Are we really ready to turn off IPv4?
Transcript
Page 1: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6: Are we really ready to turn off

IPv4?

Page 2: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

The IPv6 Timeline…

1990 2000 2010 2020

Page 3: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

The IPv6 Timeline…

1990 2000 2010 2020

Yes, we’ve been working on this for close to 30 years!

Page 4: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

The IPv6 Timeline…

1990 2000 2010 2020

Yes, we’ve been working on this for close to 30 years!

Page 5: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In-situ transition…

Page 6: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In-situ transition…

IPv4 Internet

Phase 1 – Early Deployment

Edge Dual -Stack Networks

IPv6 networks interconnect byIPv6-over-IPv4 tunnels

Page 7: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In-situ transition…Phase 2 – Dual Stack Deployment

Edge Dual-StackNetworks

IPv6 networks interconnect byDual Stack transit paths

Transit Dual-StackNetworks

Page 8: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In-situ transition…

IPv6 Internet

Phase 3 – IPv4 Sunset

Edge Dual Stack Networks

IPv4 networks interconnect byIPv4-over-IPv6 tunnels

Page 9: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In-situ transition…

IPv4PoolSize

IPv6Deployment

SizeoftheInternet

Dual Stack Transition

We’re pretty lousy at following plans!

Page 10: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

We’re stuck in Phase 2

Some15%- 20%ofInternetusershaveIPv6capability

MostnewIPdeploymentsuseIPv6+(NATTED) IPv4

IPv4-onlyLegacynetworksarebeing(gradually)migratedtodualstack

Page 11: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

The Map of IPv6 penetration – August 2017

Page 12: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

The Map of IPv6 penetration – August 2017

Page 13: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

We’re stuck in Phase 2

Some15%ofInternetusershaveIPv6capability

MostnewIPdeploymentsuseIPv6

IPv4-onlyLegacynetworksarebeing(gradually)migratedtodualstack

Page 14: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Today

Weappeartobeinthemiddleofthetransition!

DualStack networksuseappsthatprefertouseaIPv6connectionoveranIPv4connectionwhenbothareavailable

ThisimpliesthatthehighertheIPv6deploymentnumbersthelessthelevelofuseofV4connection,andthelowerthepressureontheNATbindingclients

Page 15: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Today

Weappeartobeinthemiddleofthetransition!

DualStack networksuseappsthatprefertouseaIPv6connectionoveranIPv4connectionwhenbothareavailable(*)

ThisimpliesthatthehighertheIPv6deploymentnumbersthelessthelevelofuseofV4connection,andthelowerthepressureontheNATbindingclients

Couple of problems with this:

This preference is often relative, and in the quest for ever faster connections the ante keeps rising – Apple is now pressing for a 50ms differential. This means that there is strong pressure for the IPv4 and IPv6 routing systems to be congruent – and this is just not the case today!

Secondly, it’s a client/server Internet, rather than a client/client network, and the number of end clients running IPv6 has to be matched against the server population

*

Page 16: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Today

Weappeartobeinthemiddleofthetransition!

DualStack networkscannotdropsupportforIPv4aslongassignificantservicesanduserpopulationsdonotsupportIPv6– andwecan’ttellwhenthatmaychange

Nobodyisreallyinapositiontodeployarobustat-scaleipv6-onlynetworkservicetoday,eveniftheywantedto!

Andwearenotevensureifwecan!

Page 17: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Today

Weappeartobeinthemiddleofthetransition!

DualStack networkscannotdropsupportforIPv4aslongassignificantservicesanduserpopulationsdonotsupportIPv6– andwecan’ttellwhenthatmaychange

Nobodyisreallyinapositiontodeployarobustat-scaleipv6-onlynetworkservicetoday,eveniftheywantedto!

Andwearenotevensureifwecan!

Page 18: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

The Issue

WecannotrunDual-Stackservicesindefinitely

AtsomepointweneedtosupportnetworksthatonlyhaveIPv6

Isthatviable?

Page 19: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In other words…

WhatdowerelyontodayinIPv4thatdoesnotappeartohaveaclearworkingcounterpartinIPv6?

Page 20: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

In other words…

WhatdowerelyontodayinIPv4thatdoesnotappeartohaveaclearworkingcounterpartinIPv6?

Iftheansweris“nothing”thenwearedone!

Butifthereisanissuehere,thenweshouldbeworkingonit!

Page 21: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Version IHL Total Length

FlagsIdentification Fragment Offset

Time To Live

Source Address

Destination Address

Options Padding

Protocol Header Checksum

Type of Service

Version Class Flow

Payload Length Hop Limit

Source Address

Destination Address

Next Header

IPv4 Header

IPv6 Header

IPv6: What changed?

Page 22: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6: What changed?

TypeofServiceischangedtoTrafficClass

32bitFragmentationControlwerepushedintoanExtensionHeader

FlowLabelAdded

OptionsandProtocolfieldsreplacedbyExtensionHeaders

Checksumbecomesamedialayerfunction

Page 23: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6: What changed?

TypeofServiceischangedtoTrafficClass

32bitFragmentationControlwerepushedintoanExtensionHeader

FlowLabelAdded

OptionsandProtocolfieldsreplacedbyExtensionHeaders

Checksumbecomesamedialayerfunction

Page 24: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6: What changed?

TypeofServiceischangedtoTrafficClass

32bitFragmentationControlwerepushedintoanExtensionHeader

FlowLabelAdded

OptionsandProtocolfieldsreplacedbyExtensionHeaders

Checksumbecomesamedialayerfunction

Page 25: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv4 Router

IPv4 header

PayloadTCP/UDP header

IPv4 header

PayloadTCP/UDP header1

2

IPv6: What changed?IPv4 “Forward Fragmentation”

Page 26: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv4 Router

IPv4 header

PayloadTCP/UDP header

IPv4 header

PayloadTCP/UDP header

IPv6 Router

IPv6 header

PayloadTCP/UDP xtn header

PayloadTCP/UDP xtn header

ICMPv6 PTBIPv6 header

IPv6 header

PayloadTCP/UDP xtn header

Fragmentation xtn header

1

2

3

12

IPv6: What changed?IPv4 “Forward Fragmentation”

IPv6 “Source Fragmentation”

Source

Source

Page 27: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

New Dependencies

ForIPfragmentationtoworkinIPv6then:

- allICMPv6messageshavetobepassedbackwards fromtheinteriorofthenetworktothesender

- IPv6packetscontainingaIPv6FragmentationExtensionheadershouldnot bedropped

Page 28: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

ICMPv6

Onlythesendinghostnowhascontroloffragmentation– thisisanewtwist

AreceivedICMPv6messageneedstoalterthesender’sstatetothatdestination

ForTCP,iftheICMPpayloadcontainstheTCPheader,thenyoucanpassthistotheTCPcontrolblock.TCPcanalterthesessionMSSandresendthedroppeddata,oryoucanjustalterthelocalper-destinationMSSandhopethatTCPwillbepromptedtoresend

ForUDP – um,err,umwell

Page 29: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

ICMPv6

Onlythesendinghostnowhascontroloffragmentation– thisisanewtwist

AreceivedICMPv6messageneedstoalterthesender’sstatetothatdestination

ForTCP,iftheICMPpayloadcontainstheTCPheader,thenyoucanpassthistotheTCPcontrolblock.TCPcanalterthesessionMSSandresendthedroppeddata,oryoucanjustalterthelocalper-destinationMSSandhopethatTCPwillbepromptedtoresend

ForUDP – um,err,umwell

MaybeyoushouldstoretherevisedpathMTUinahost forwardingtablecacheforawhile

IfyoueverneedtosendanotherUDPpackettothishostyoucanusethiscacheentrytoguideyourfragmentationbehaviour

Page 30: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

ICMPv6 and Anycast

Sender InstanceClient

Sender Instance

Sender Instance

Anycast Constellation

Sender Instance

Sender Instance

Itisnotobvious(orevenassured)thateveryrouteronthepathfromananycastinstancetoaclienthostwillnecessarilybepartofthesameanycast instance“cloud”

Theimplicationisthatinanycast,thereverseICMPv6PTBmessageswillnotnecessarilyheadbacktotheoriginalsender!

Page 31: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation Extension Header Handling

TheextensionheadersitsbetweentheIPv6packetheaderandtheupperlevelprotocolheaderfortheleadingfraggedpacket,andsitsbetweentheheaderandthetrailingpayloadfragsforthetrailingpackets

Practically,thismeansthattransport-protocolawarepacketprocessors/switchesneedtodecodetheextensionheaderchain,ifitspresent,whichcanconsumeadditionalcyclestoprocess/switchapacket– andtheadditionaltimeisnotpredictable.Fortrailingfragsthereisnotransportheader!

OrtheunitcansimplydiscardallIpv6packetsthatcontainextensionheaders!

WhichiswhatalotoftransportprotocolsensitiveIPv6deployedswitchingequipmentactuallydoes(e.g.loadbalancers!)

IPv6 header

Payload

TCP/UDP xtn header

Fragmentation xtn header

Page 32: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation Extension Header Handling

Thereisalotof“drop”behaviour intheIpv6InternetforFragmentationExtensionheaders

RFC7872– recordeddropratesof30%- 40%

Thisexperimentsentfragmentedpacketstowardswell-knownserversandobservedwhethertheserverreceivedandreconstructedthefragmentedpacket

Butsendingfragmentedqueriestoserversisnotallthatcommon– thereversesituationofbigresponsesismorecommon

SowhataboutsendingfragmentedpacketsBACK fromservers– what’sthedroprateofthereversecase?

Page 33: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation Extension Header Handling

Weusedanad-basedmeasurementsystem,usingacustompacketfragmentationwranglerasafrontendtoaDNSandWebservertotestIPv6fragmentationbehaviour

Client

DNS Resolver IPv6 DNS Server

IPv6 NGINX Server

IPv6 ‘Fragmenter’DNS Goo

Page 34: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Weusedanad-basedmeasurementsystem,usingacustompacketfragmentationwranglerasafrontendtoaDNSandWebservertotestIPv6fragmentationbehaviour

IPv6 Fragmentation Extension Header Handling

Client

DNS ResolverIPv6 ‘Fragmenter’DNS Goo

We use a technique of “glueless” delegation and fragmentation of the NS query response to allow us to detect if the DNS resolver received the fragmented response

We track TCP ACKs at the server to see if the client received the fragmented TCP response

Client

DNS Resolver IPv6 DNS Server

IPv6 NGINX Server

Page 35: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation Extension Header Handling

OurExperimentswererunacrosssome40Mindividualsamplepoints:

37%ofenduserswhousedIPv6-capableDNSresolverscouldnotreceiveafragmentedIPv6DNSresponse

20%ofIPv6-capableenduserscouldnotreceiveafragmentedIPv6packet

Page 36: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation is very unreliable

Whydon’tweseethisunreliabilityintoday’sIPv6networksaffectingusertransactions?

Page 37: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation is very unreliable

Whydon’tweseethisunreliabilityintoday’sIPv6networksaffectingusertransactions?

BecauseIPv4papersovertheproblem!

Page 38: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation is very unreliable

Whydon’tweseethisunreliabilityintoday’sIPv6networksaffectingusertransactions?

BecauseIPv4papersovertheproblem!

InaDual-StackenvironmentthereisalwaystheoptiontofliptouseIPv4ifyouarestuckwithIpv6.

TheDNSdoesthis,andHappyEyeballsdoesthis

Sothereisnouser-visibleprobleminadualstackenvironment

ThismeansthatthereisnourgentimperativetocorrecttheseunderlyingproblemsindeployedIPv6networks

Page 39: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

IPv6 Fragmentation is very unreliable

Whydon’tweseethisunreliabilityintoday’sIPv6networksaffectingusertransactions?

BecauseIPv4papersovertheproblem!

InaDual-StackenvironmentthereisalwaystheoptiontofliptouseIPv4ifyouarestuckwithIpv6.

TheDNSdoesthis,andHappyEyeballsdoesthis

Sothereisnouser-visibleprobleminadualstackenvironment

ThismeansthatthereisnourgentimperativetocorrecttheseunderlyingproblemsindeployedIPv6networks

Page 40: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Living without IPv6 Fragmentation

Ifweapparentlydon’twanttofixthis,canwelivewithit?

WearelivingwithitinaDualStackworld,becauseIPv4justmakesitallbetter!

ButwhathappenswhenthereisnoIPv4left?

Page 41: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Living without IPv6 Fragmentation

Ifweapparentlydon’twanttofixthis,canwelivewithit?

WearelivingwithitinaDualStackworld,becauseIPv4justmakesitallbetter!

ButwhathappenswhenthereisnoIPv4left?

TCPcanworkaslongasIPv6sessionsuseconservativeMSSsizes

UDPcanworkaslongasUDPpacketsizesarecappedsoastoavoidfragmentation

We have to avoid IPv6 Fragmentation!

Page 42: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Living without IPv6 Fragmentation

TCPcanworkaslongasIPv6sessionsuseconservativeMSSsizes

UDPcanworkaslongasUDPpacketsizesarecappedsoastoavoidfragmentation

We have to avoid IPv6 Fragmentation!

DNSSEC!

Page 43: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

What can we do about it?

A. Get all the deployed routers and switches to deliver ICMPv6 packets and accept packets with IPv6 Fragmentation Headers

Page 44: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

What can we do about it?

B. Get all the deployed routers and switches to alter the way IPv6 manages packet fragmentation

Page 45: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

What can we do about it?

C. Move the DNS off UDP

Page 46: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Where are we?Intermsofprotocolsupportandreliability,ItseemsthatwearemostlyreadyforanIPv6-onlyenvironment,withtheoneexceptionofIPv6packetfragmentationhandling.

Theconsequenceisthattoday’senvironmentcannotsupportanIPv6-onlyenvironmentfortheDNS,andDNSSECinparticular

Change the deployed IPv6 network and change vendor equipment to correctly manage fragmentation, and stop using anycast!

Change host configurations and change the DNS protocol to avoid any reliance on IPv6 fragmentation

Page 47: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

An IPv6-only Internet?TheissueoftheunreliabilityofIPv6fragmentationisasignificantissue.

Thesemitigationapproachesrepresentsignificanteffortandcost

EffortandcostthatisunnecessaryforaslongasIPv4canpaperovertheproblem!

Sowearetakingtheeasyoption,andcollectivelywearedoingnothingatall!

Page 48: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

An IPv6-only Internet?TheissueoftheunreliabilityofIPv6fragmentationisasignificantissue.

Thesemitigationapproachesrepresentsignificanteffortandcost

EffortandcostthatisunnecessaryforaslongasIPv4canpaperovertheproblem!

Sowearetakingtheeasyoption,andcollectivelywearedoingnothingatall!

Page 49: IPv6: Are we really ready to turn off IPv4? · IPv6 Fragmentation is very unreliable Why don’t we see this unreliability in today’s IPv6 networks affecting user transactions?

Thanks!


Recommended