Cisco IP Adddressing New Scheme
Cisco IP Adddressing New Scheme
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
Background
Why a New IP?
1991 – ALE WG studied projections about
address consumption rate showed exhaustion
by 2008.
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
~1 Billion cars in 2010
15% likely to use GPS and locality based Yellow Page services
Billions of new Internet appliances for Home users
Always-On ; Consumer simplicity required
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 ISP’s
IPv6 Markets
Academic NRN:
Internet-II (Abilene, vBNS+), Canarie*3, Renater-II, Surfnet, DFN,
CERNET,… 6REN/6TAP
Geographies & Politics:
Prime Minister of Japan called for IPv6 (taxes reduction)
EEC summit PR advertised IPv6 as the way to go for Europe
China Vice minister of MII deploying IPv6 with the intent to take a
leadership position and create a market force
Wireless (PDA, Mobile, Car,...):
Multiple phases before deployment
RFP -> Integration -> trial -> commercial
Requires ‘client devices’, eg. IPv6 handset ?
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
A new Header
The IPv6 Header
40 Octets, 8 fields
0 4 12 16 24 31
0 4 8 16 24 31
Address[0]
Address[1]
•
•
•
Example of Using the Routing
Header
S A
D
Addressing
Some Terminology
node a protocol module that implements IPv6
router a node that forwards IPv6 packets not explicitly
addressed to itself
host any node that is not a router
link a communication facility or medium over which
nodes can communicate at the link layer,
i.e., the layer immediately below IPv6
neighbors nodes attached to the same link
interface a node’s attachment to a link
address an IPv6-layer identifier for an interface or a set
of interfaces
Text Representation of
Addresses
“Preferred” form: 1080:0:FF:0:8:800:200C:417A
IPv4-compatible: 0:0:0:0:0:0:13.1.68.3
or ::13.1.68.3
IPv6 - Addressing Model
Addresses are assigned to interfaces
No change from IPv4 Model
Interface ‘expected’ to have multiple addresses
Multicast
Address of a set of interfaces
Delivery to all interfaces in the set
Anycast
Address of a set of interfaces
Delivery to a single interface in the set
Link local
Site local
Auto-configured 6to4
(if IPv4 public is address available)
0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:1
Multicast Address Format
FP (8bits) Flags (4bits) Scope (4bits) RESERVED (80bits) Group ID (32bits)
flag field
low-order bit indicates permanent/transient group
(three other flags reserved)
scope field:
1 - node local 8 - organization-local
2 - link-local B - community-local
5 - site-local E - global
(all other values reserved)
map IPv6 multicast addresses directly into low order 32
bits of the IEEE 802 MAC
Multicast Address Format
Unicast-Prefix based
Network Prefix
FP (8bits) Flags (4bits) Scope (4bits) reserved (8bits) plen (8bits) Group ID (32bits)
(64bits)
Locally
11111111 00PT Lcl/Sit/Gbl MUST be 0 Unicast prefix Auto configured
administered
draft-ietf-ipngwg-uni-based-mcast-01.txt
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
Security
IPv6 Security
Authentication Data
Payload
Padding
Padding Length Next Header
Authentication Data
Quality of Service
IP Quality of Service Approaches
Two basic approaches developed by IETF:
“Integrated Service” (int-serv)
fine-grain (per-flow), quantitative promises
(e.g., x bits per second), uses RSVP signaling
“Differentiated Service” (diff-serv)
coarse-grain (per-class), qualitative promises
(e.g., higher priority), no explicit signaling
IPv6 Support for Int-Serv
20-bit Flow Label field to identify specific
flows needing special QoS
each source chooses its own Flow Label
values; routers use Source Addr + Flow
Label to identify distinct flows
Flow Label value of 0 used when no special
QoS requested (the common case today)
this part of IPv6 is not standardized yet, and
may well change semantics in the future
IPv6 Support for Diff-Serv
8-bit Traffic Class field to identify specific
classes of packets needing special QoS
same as new definition of IPv4 Type-of-
Service byte
may be initialized by source or by router
enroute; may be rewritten by routers enroute
traffic Class value of 0 used when no special
QoS requested (the common case today)
Compromise
Signaled diff-serv (RFC 2998)
uses RSVP for signaling with course-grained
qualitative aggregate markings
allows for policy control without requiring per-router
state overhead
Mobility
IPv6 Mobility
Mobile hosts have one or more home address
relatively stable; associated with host name in DNS
A Host will acquire a foreign address when it discovers it
is in a foreign subnet (i.e., not its home subnet)
uses auto-configuration to get the address
registers the foreign address with a home agent,
i.e, a router on its home subnet
Packets sent to the mobile’s home address(es) are
intercepted by home agent and forwarded to the foreign
address, using encapsulation
Mobile IPv6 hosts will send binding-updates to
correspondent to remove home agent from flow
Mobile IP (v4 version)
mobile host
home agent
home agent
home agent
home agent
correspondent
host
home agent
correspondent
host
home agent
correspondent
host
home agent
correspondent
host
home agent
correspondent
host
home agent
connect()
sendmsg()
sendto()
recvfrom()
recvmsg()
getpeername()
getsockname()
Name
to Address
getaddrinfo()
Translation
Pass in nodename and/or servicename string
Can Be Address and/or Port
Optional Hints for Family, Type and Protocol
Flags – AI_PASSIVE, AI_CANNONNAME, AI_NUMERICHOST,
AI_NUMERICSERV, AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG
Pointer to Linked List of addrinfo structures Returned
Multiple Addresses to Choose From
freeaddrinfo()
struct
struct addrinfo
addrinfo {{
int
int ai_flags;
ai_flags;
int ai_family;
int ai_family;
int
int getaddrinfo(
getaddrinfo( int
int ai_socktype;
ai_socktype;
IN const char FAR * nodename,
IN const char FAR * nodename, int ai_protocol;
int ai_protocol;
IN
IN const
const char
char FAR
FAR ** servname,
servname, size_t
size_t ai_addrlen;
ai_addrlen;
IN
IN const
const struct
struct addrinfo
addrinfo FARFAR ** hints,
hints, char *ai_canonname;
char *ai_canonname;
OUT
OUT struct
struct addrinfo
addrinfo FARFAR ** FAR
FAR ** res
res struct
struct sockaddr
sockaddr *ai_addr;
*ai_addr;
);
); struct addrinfo *ai_next;
struct addrinfo *ai_next;
};
};
Address
to Name Translation
getnameinfo()
Pass in address (v4 or v6) and port
Size Indicated by salen
Also Size for Name and Service buffers (NI_MAXHOST, NI_MAXSERV)
Flags
NI_NOFQDN
NI_NUMERICHOST
NI_NAMEREQD
NI_NUMERICSERV int
int getnameinfo(
getnameinfo(
IN
IN const
const struct
struct sockaddr
sockaddr FAR
FAR ** sa,
sa,
NI_DGRAM IN socklen_t salen,
IN socklen_t salen,
OUT
OUT char
char FAR
FAR ** host,
host,
IN size_t hostlen,
IN size_t hostlen,
OUT
OUT char
char FAR
FAR ** serv,
serv,
IN size_t servlen,
IN size_t servlen,
IN
IN int
int flags
flags
);
);
Porting Environments
Node Types
IPv4-only
IPv6-only
IPv6/IPv4
Application Types
IPv6-unaware
IPv6-capable
IPv6-required
Multihomed Servers
More Common with IPv6
Try All Addresses Returned
sockaddr_in6
Use getaddrinfo()
For Address Resolution
IPv4 - IPv6
Co-Existence / Transition
IPv6 Timeline
(A pragmatic projection)
• Early adopter
6to4
Configured
Automatic
6to4 tunnels
FP (3bits) TLA (13bits) IPv4 Address (32bits) SLA ID (16bits) Interface ID (64bits)
2002:8243:1::/48
2002:947A:1::/48
11.0.0.1
6to4 prefix is 2002::/16 + IPv4 address.
2002:a.b.c.d::/48 IPv6 Internet
6to4 relay
2002:B00:1::1
Announces 2002::/16 to the IPv6 Internet
6to4 tunnels II
Pros Cons
Minimal configuration All issues that NMBA
networks have.
Only site border router Requires relay router to
needs to know about 6to4 reach native IPv6 Internet
NB: there is a draft describing how to use IPv4 anycast to reach the relay router.
(This is already supported, by our implementation...)
Configured tunnels
3ffe:c00:2::/48
3ffe:c00:1::/48
IPv4
IPv6 IPv6
130.67.0.1 148.122.0.1
--------------------------------------
|IPv4 header|IPv6 header IPv6 payload|
--------------------------------------
IPv4 protocol type = 41
Configured tunnels II
Pros Cons
As point to point links Has to be configured and
managed
Multicast Inefficient traffic patterns
148.122.0.1
130.67.0.1
::148.122.0.1
::130.67.0.1
SE-TELIANET-20010102 2001:06C0::/35
Deployment
experimental infrastructure: the 6bone
for testing and debugging IPv6 protocols and
operations (see www.6bone.net)
production infrastructure in support of education
and research: the 6ren
CAIRN, Canarie, CERNET, Chunahwa Telecom,
Dante, ESnet, Internet 2, IPFNET, NTT, Renater,
Singren, Sprint, SURFnet, vBNS, WIDE
(see www.6ren.net, www.6tap.net)
commercial infrastructure
a few ISPs (IIJ, NTT, SURFnet, Trumpet,…) have
announced commercial IPv6 service or service trials
Deployment (cont.)
IPv6 address allocation
6bone procedure for test address space
regional IP address registries (APNIC, ARIN,
RIPE-NCC) for production address space
deployment advocacy (a.k.a. marketing)
IPv6 Forum: www.ipv6forum.com
Much Still To Do
though IPv6 today has all the functional capability of IPv4,
implementations are not as advanced
(e.g., with respect to performance, multicast support,
compactness, instrumentation, etc.)
deployment has only just begun
much work to be done moving application, middleware,
and management software to IPv6
much training work to be done
(application developers, network administrators, sales
staff,…)
many of the advanced features of IPv6 still need
specification, implementation, and deployment work
Recent IPv6 “Hot Topics” in the
IETF
multihoming / address enhanced router-to-host info
selection site renumbering procedures
address allocation temp. addresses for privacy
DNS discovery
inter-domain multicast routing
address propagation and AAA
3GPP usage of IPv6 issues of different access
anycast addressing scenarios
scoped address architecture (always-on, dial-up, mobile,…)
and, of course, transition /
flow-label semantics co-existence / interoperability
API issues with IPv4
(flow label, traffic class, PMTU
discovery, scoping,…)
http://www.ietf.org/html.charters/ipngwg-
charter.html
http://www.ietf.org/html.charters/ngtrans-
charter.html
http://playground.sun.com/ipv6/
http://www.6bone.net/ngtrans/
For More Information
http://www.6bone.net
http://www.ipv6forum.com
http://www.ipv6.org
http://www.cisco.com/ipv6/
http://www.microsoft.com/windows2000/librar
y/howitworks/communications/networkbasics/
IPv6.asp
For More Information
BGP4+ References
RFC2858 Multiprotocol extension to BGP
RFC2545 BGP MP for IPv6
RFC2842 Capability negotiation
RIPng RFC2080
Other Sources of Information
Books
IPv6, The New Internet Protocol
by Christian Huitema (Prentice Hall)
Internetworking IPv6 with Cisco Routers
by Silvano Gai (McGraw-Hill)
2213
1313_06_2000_c2 © 2000, Cisco Systems, Inc. 119
Cisco Systems