Next Generation IP (IPv6)
Size of the Internet
60 00
IPv4 Doomsday ?
50 00 40 00 30 00 20 00 10 00 0
Approx. 27% remain unallocated
19 88 19 89 19 90 19 91 19 92 19 93 19 94 19 95 19 96 19 97 19 98 19 99 20 00 20 01 20 02 20 03 20 04 20 05 20 06 20 07
Theoretical
Usable
Allocated
Addressable
Distribution Statement A: Cleared for Public Release; Distribution is unlimited.
Internet BGP Routing Table
CIDR deployment No Growth Exponential Growth - CIDR breaking down
Exponential Growth
Linear Growth
http://www.telstra.net/ops/bgptable.html
Distribution Statement A: Cleared for Public Release; Distribution is unlimited.
14 12
16
10 8
2 0
6 4
Un Ja p an i te d St a S. t es Ko r Ge ea rm an Sw y ed en
ARIN RIPE APNIC
78 Top Level IPv6 ISPs in 26 Countries
Distribution Statement A: Cleared for Public Release; Distribution is unlimited.
UK ro p Fr e an ce Ru ss ia Po Ne la t h nd er la n Fi d s nl an Ta d Ch iw an in a & H Ca K na da M ex ic Au o Sw st r it z i a er la nd Gr ee Po ce rt u g Be a l lg iu m It De al y nm ar No k rw Au a y st r Si a li a ng ap or e Eu
Ju
100 90 80 70 60 50 40 30 20 10 0
ARIN RIPE APNIC
78 Top Level IPv6 ISPs in 22 months
Distribution Statement A: Cleared for Public Release; Distribution is unlimited.
lAu 99 gSe 99 p9 Oc 9 t- 9 No 9 vDe 99 cJa 99 nFe 00 bM 00 ar Ap 00 r M -00 ay Ju 00 n0 Ju 0 lAu 00 g0 Se 0 p0 Oc 0 t- 0 No 0 vDe 00 c0 Ja 0 nFe 01 bM 01 ar Ap 01 r-0 M 1 ay -0 1
Top Level IPv6 ISPs
American Registry for Internet Numbers (ARIN). (15)
ESNET(US), vBNS(US), CANET3(CA), VRIO(US), CISCO(US), QWEST(US), DEFENSENET(US), ABOVENET(US), SPRINT(US), UNAM(MX), GBLX(US), STEALTH (US), NET-CW-10BLK(US), ABILENE(US), and HURRICANE(US).
Asian Pacific Network Information Centre (APNIC). (29)
WIDE(JP), NUS(SG), CONNECT(AU), KIX(KR), NTT(JP), JENS(JP), ETRI(KR), HINET(TW), IIJ(JP), IMNET(JP), CERNET(CN), INFOWEB(JP), BIGLOBE(JP), 6DION (JP), DACOM-BORONET(KR), ODN(JP), KOLNET(KR), TANET(TW), HANANET(KR), SONYTELECOM(JP), TTNET(JP), CCCN (JP), KORNET(KR), NGINET (KR), INFOSHERE(JP), OMP(JP), and ZAMA (JP), SHTELCOMNET(KR), and HKNET(HK).
Reseaux IP Europeans Network Coordination Centre (RIPE NCC). (34)
UUNET(EU), SPACENET(DE), SURFNET(NL), BT(UK), SWITCH(CH), ACONET(AT), JANET(UK), DFN(DE), FREENET(RU), GRNET(GR), ECRC(DE), TRMD(DE), RENATER(FR), NACAMAR(DE), EUNET(EU), GIGABELL(DE), XLINK(DE), TELECOM(FR), RCCN(PT), SWIPNET(SE), ICM(PL), BELNET(BE), SUNET(SE), CSELT(IT), TELIANET (SE), TELEDANMARK (DK), ROSNIIROS(RU), CYFRONET(PL), INTOUCH(NL), TELIVO(FI), DIGITAL(SE), EASYNET(UK), UNINETT(NO), and FUNET(FI).
Distribution Statement A: Cleared for Public Release; Distribution is unlimited.
Why a New IP?
1991 ALE WG studied projections about address consumption rate showed exhaustion by 2008.
Bake-off in mid-1994 selected approach of a new protocol over multiple layers of encapsulation.
What Ever Happened to IPv5?
0 IP (deprecated) 1 IP 2 IP (deprecated) 3 IP (deprecated) 4 IPv4 5 ST 6 IPv6 7 CATNIP 8 Pip 9 TUBA 10-15 March 1977 version
January 1978 version February 1978 version A February 1978 version B September 1981 version (current widespread) Stream Transport (not a new IP, little use) December 1998 version (formerly SIP, SIPP) IPng evaluation (formerly TP/IX; deprecated) IPng evaluation (deprecated) IPng evaluation (deprecated) unassigned (deprecated)
What about technologies & efforts to slow the consumption rate?
Dial-access / PPP / DHCP
Provides temporary allocation aligned with actual endpoint use.
Strict allocation policies
Reduced allocation rates by policy of current-need vs. previous policy based on projected-maximum-size.
CIDR
Aligns routing table size with needs-based address allocation policy. Additional enforced aggregation actually lowered routing table growth rate to linear for a few years.
NAT
Hides many nodes behind limited set of public addresses.
What did intense conservation efforts of the last 5 years buy us?
Actual allocation history
1981 IPv4 protocol published 1985 ~ 1/16 total space 1990 ~ 1/8 total space 1995 ~ 1/4 total space 2000 ~ 1/2 total space
The lifetime-extending efforts & technologies delivered the ability to absorb the dramatic growth in consumer demand during the late 90s. In short they bought TIME
NO!
Would increased use of NATs be adequate?
NAT enforces a client-server application model where the server has topological constraints.
They wont work for peer-to-peer or devices that are called by others (e.g., IP phones) They inhibit deployment of new applications and services, because all NATs in the path have to be upgraded BEFORE the application can be deployed.
NAT compromises the performance, robustness, and security of the Internet. NAT increases complexity and reduces manageability of the local network. Public address consumption is still rising even with current NAT deployments.
What were the goals of a new IP design?
Expectation of a resurgence of always-on technologies
xDSL, cable, Ethernet-to-the-home, Cell-phones, etc.
Expectation of new users with multiple devices.
China, India, etc. as new growth Consumer appliances as network devices
(1015 endpoints)
Expectation of millions of new networks.
Expanded competition and structured delegation.
(1012 sites)
Return to an End-to-End Architecture
New Technologies/Applications for Home Users
Always-onCable, DSL, Ethernet@home, Wireless,
Always-on Devices Need an Address When You Call Them
Global Addressing Realm
Why is a larger address space needed? Overall Internet is still growing its user base
~320 million users in 2000 : ~550 million users by 2005
Users expanding their connected device count
405 million mobile phones in 2000, over 1 billion by 2005
UMTS Release 5 is Internet Mobility, ~ 300M new Internet connected 15% likely to use GPS and locality based Yellow Page services Always-On ; Consumer simplicity required
~1 Billion cars in 2010
Billions of new Internet appliances for Home users
Emerging population/geopolitical & economic drivers
MIT, Xerox, & Apple each have more address space than all of China Moving to an e-Economy requires Global Internet accessibility
Why Was 128 Bits Chosen as the IPv6 Address Size?
Proposals for fixed-length, 64-bit addresses
Accommodates 1012 sites, 1015 nodes, at .0001 allocation efficiency (3 orders of mag. more than IPng requirement) Minimizes growth of per-packet header overhead Efficient for software processing on current CPU hardware
Proposals for variable-length, up to 160 bits
Compatible with deployed OSI NSAP addressing plans Accommodates auto-configuration using IEEE 802 addresses Sufficient structure for projected number of service providers
Settled on fixed-length, 128-bit addresses
(340,282,366,920,938,463,463,374,607,431,768,211,456 in all!)
Benefits of 128 bit Addresses
Room for many levels of structured hierarchy and routing aggregation Easy address auto-configuration Easier address management and delegation than IPv4 Ability to deploy end-to-end IPsec
(NATs removed as unnecessary)
Incidental Benefits of New Deployment
Chance to eliminate some complexity in IP header
improve per-hop processing
Chance to upgrade functionality
multicast, QoS, mobility
Chance to include new features
binding updates
Summary of Main IPv6 Benefits
Expanded addressing capabilities Structured hierarchy to manage routing table growth Serverless autoconfiguration and reconfiguration Streamlined header format and flow identification Improved support for options / extensions
IPv6 Advanced Features
Source address selection Mobility - More efficient and robust mechanisms Security - Built-in, strong IP-layer encryption and authentication Quality of Service Privacy Extensions for Stateless Address Autoconfiguration (RFC 3041)
IPv6 Markets
Home Networking
Set-top box/Cable/xDSL/Ether@Home Residential Voice over IP gateway
Gaming (10B$ market)
Sony, Sega, Nintendo, Microsoft
Mobile devices Consumer PC Consumer Devices
Sony (Mar/01 - energetically introducing IPv6 technology into hardware products )
Enterprise PC Service Providers
Regional ISP, Carriers, Mobile ISP, and Greenfield ISPs
Address Complexity
IPv6 has many different kinds of addresses unicast, anycast, multicast, link-local, site-local, loopback, IPv4-embedded, care-of, manuallyassigned, DHCP-assigned, self-assigned, solicited-node, and more most of this complexity is also present in IPv4, just never written down in one place a result of 20 years of protocol evolution one simplification: no broadcast addresses in IPv6! uses multicast to achieve same effects
IPv6 Addresses
3 m n o p 125-mnop
010
Registry ID
Provider ID
Subscriber ID
Subnet ID
Interface ID
Classless addressing/routing (similar to CIDR) Notation: x:x:x:x:x:x:x:x (x = 16-bit hex number)
contiguous 0s are compressed: 47CD::A456:0124 IPv6 compatible IPv4 address: ::128.42.1.87
Address assignment
provider-based (cant change provider easily) geographic
Prefix 0000 0000 0000 0001 0000 001 0000 010 0000 011 0000 1 0001 001 010 011 100 101 110 1110 1111 0 1111 10 1111 110 1111 1110 0 1111 1110 10 1111 1110 11 1111 1111
Use Reserved Unassigned Reserved for NSAP Allocation Reserved for IPX Allocation Unassigned Unassigned Unassigned Unassigned Provider-Based Unicast Address IPV4-like Unassigned Reserved for Geographic-Based Unicast Addresses Unassigned Unassigned Unassigned Unassigned Unassigned Unassigned Unassigned Link Local Use Addresses no global uniqueness Site Local Use Addresses no global uniqueness Multicast Addresses
IPv6 Header
Ver-
sion
Priority
FlowLabel (24)
NextHeader HopLimit
40-byte base header Extension headers (fixed order, mostly fixed length)
PayloadLen
SourceAddress
fragmentation source routing authentication and security other options
DestinationAddress
Next header/data
Routing
Same longest-prefix match routing as IPv4 CIDR Straightforward changes to existing IPv4 routing protocols to handle bigger addresses
unicast: OSPF, RIP-II, IS-IS, BGP4+, multicast: MOSPF, PIM,
Use of Routing header with anycast addresses allows routing packets through particular regions
e.g., for provider selection, policy, performance, etc.
Routing Header
Next Header Hdr Ext Len Routing Type Reserved Segments Left
Address[0]
Address[1]
Example of Using the Routing Header
S
Example of Using the Routing Header
S
Example of Using the Routing Header
S
Example of Using the Routing Header
S
Transition
Gradual Transition with IPV4 and IPV6 Dual Stack - (both supported on some nodes) Tunneling
When v6 passes through v4 network Encapsulate v6 inside v4 packet with a v6 router as a destination destination router then sends v6 packet lose QoS and other desirable features in v4 segment
Tunneling
B Z IPV4 IPV4
B Z
B
B Z
B
IPV6=C IPV4=Y
IPV6=D IPV4=Z
IPV6=A
IPV6=B
IPv6 Sockets programming
New address family: AF_INET6
New address data type: in6_addr New address structure: sockaddr_in6
in6_addr
struct in6_addr { uint8_t s6_addr[16]; };
sockaddr_in6
struct sockaddr_in6 { uint8_t sin6_len; sa_family_t sin6_family; in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; };
Dual Server
In the future it will be important to create servers that handle both IPv4 and IPv6. The work is handled by the O.S. (which contains protocol stacks for both v4 and v6):
automatic creation of IPv6 address from an IPv4 client (IPv4-mapped IPv6 address).
IPv4 client
IPv6 client IPv4-mapped IPv6 address
IPv6 server
TCP IPv4 Datalink
TCP IPv6 Datalink
TCP IPv6 Datalink
IPv4
IPv6 Clients
If an IPv6 client specifies an IPv4 address for the server, the kernel detects and talks IPv4 to the server. DNS support for IPv6 addresses can make everything work.
gethostbyname() returns an IPv4 mapped IPv6 address for hosts that only support IPv4.
IPv6 - IPv4 Programming
The kernel does the work, we can assume we are talking IPv6 to everyone! In case we really want to know, there are some macros that determine the type of an IPv6 address.
We can find out if we are talking to an IPv4 client or server by checking whether the address is an IPv4 mapped address.
Internet Multicast
Overview
IPv4
class D addresses demonstrated with Mbone (uses tunneling) Place least significant 23 bits of IP number in last 23 bits of ETH/FDDI address MSB on in Ethernet indicates multicast
Integral part of IPv6
problem is making it scale
Link-State Multicast
Each host on a LAN periodically announces the groups it belongs to (IGMP). Augment update message (LSP) to include set of groups that have members on a particular LAN. Each router uses Dijkstra's algorithm to compute shortest-path spanning tree for each source/group pair. Each router caches tree for currently active source/group pairs.
source
Link State multicast Example
B
R1
A
R2
R3
R4
R5
R6
R7
source
R1
A
R2
R1
A
R2
R3
R4
R5
R3
R4
R5
R6
R7
R6
R7
R1
A
R2
R3
R4
R5
R6
R7
source
Distance-Vector Multicast
Reverse Path Broadcast (RPB) Each router already knows that shortest path to destination S goes through router N. When receive multicast packet from S, forward on all outgoing links (except the one on which the packet arrived), iff packet arrived from N. Eliminate duplicate broadcast packets by only letting parent for LAN (relative to S) forward
shortest path to S (learn via distance vector) smallest address to break ties
Reverse Path Multicast (RPM)
Goal: Prune networks that have no hosts in group G Step 1: Determine of LAN is a leaf with no members in G
leaf if parent is only router on the LAN determine if any hosts are members of G using IGMP
Step 2: Propagate no members of G here information
augment <Destination, Cost> update sent to neighbors with set of groups for which this network is interested in receiving multicast packets. only happens with multicast address becomes active.
Protocol Independent Multicast (PIM)
Create forwarding entry for shared tree
PIM
RP Join R3 R2 R4 R3 Join R1 (a) R5 R1 (b) R5 R2 R4 RP
RP
Dense Mode
R2 R4 R3
RP
Join
R3
R2 Join Join R5 (d)
R4
R1 (c)
R5
R1
RP = Rendezvous point Shared tree Source-specific tree for source R1
Sparse Mode PIM
RP
RP G
G G R3 R2 G R4
RP G
R1 G Host
R5
Open Questions
ATM LANE? Reliable Multicast BGP? Exterior routing protocols