Sei sulla pagina 1di 49

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