Curs IPv6
Curs IPv6
Curs IPv6
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
Background
IP
(deprecated)
IP
IP
IP
IPv4
ST
1
January 1978 version
(deprecated)
2
February 1978 version A
(deprecated)
3
February 1978 version B
(deprecated)
4
September 1981 version (current widespread)
5
Stream Transport
(not a new IP, little
use)
6
IPv6
December 1998 version (formerly SIP, SIPP)
7
CATNIP IPng evaluation (formerly TP/IX; deprecated)
8
Pip
IPng evaluation
(deprecated)
9
TUBA
IPng evaluation
(deprecated)
10-15
unassigned
CIDR
NAT
NO!
(1015 endpoints)
(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
MIT, Xerox, & Apple each have more address space than all of China
Moving to an e-Economy requires Global Internet accessibility
(340,282,366,920,938,463,463,374,607,431,768,211,456 in all!)
Benefits of
128 bit Addresses
Incidental Benefits of
New Deployment
binding updates
IPv6 Markets
Home Networking
Mobile devices
Consumer PC
Consumer Devices
Set-top box/Cable/xDSL/Ether@Home
Residential Voice over IP gateway
Enterprise PC
Service Providers
IPv6 Markets
Academic NRN:
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
A new Header
4
Version
12
Class
16
24
31
Flow Label
Payload Length
Next Header
Hop Limit
4
Ver
8
IHL
16
Service Type
Identifier
Time to Live
24
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
31
Revised
Extended
Extension Headers
IPv6 header
next header =
TCP
IPv6 header
Routing header
next header =
Routing
next header =
TCP
IPv6 header
Routing header
Fragment header
next header =
Routing
next header =
Fragment
next header =
TCP
fragment of TCP
header + data
Fragment Header
Next Header
Reserved
Fragment Offset
Original Packet Identifier
00M
Routing Header
Routing
Routing Header
Next Header
Address[0]
Address[1]
Segments Left
Addressing
Some Terminology
node
router
host
link
neighbors
interface
address
FF01:0:0:0:0:0:0:43
becomes FF01::43
IPv4-compatible: 0:0:0:0:0:0:13.1.68.3
or ::13.1.68.3
Global
Global
Site-Local
Link-Local
Unicast
Multicast
Anycast
Loopback
Link local
Site local
Auto-configured 6to4
(operationally discouraged)
Binary prefix
0000...0 (96 zero bits)
001
1111 1110 10
1111 1110 11
1111 1111
TLA
NLA*
public
topology
(45 bits)
SLA*
site
topology
(16 bits)
interface ID
interface
identifier
(64 bits)
1111111010
interface ID
SLA*
interface ID
Interface IDs
Lowest-order 64-bit field of unicast address
may be assigned in several different ways:
Flags (4bits)
Scope (4bits)
RESERVED (80bits)
Group ID (32bits)
11111111
000T
Lcl/Sit/Gbl
MUST be 0
Locally administered
flag field
scope field:
8 - organization-local
B - community-local
E - global
FP (8bits)
Flags (4bits)
Scope (4bits)
reserved (8bits)
plen (8bits)
Network Prefix
(64bits)
Group ID (32bits)
11111111
00PT
Lcl/Sit/Gbl
MUST be 0
Locally
administered
Unicast prefix
Auto configured
P=1
plen = 0
network prefix = 0
draft-ietf-ipngwg-uni-based-mcast-01.txt
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
Security
IPv6 Security
Authentication Header
Next Header
Reserved
Payload
Padding
Padding Length
Authentication Data
Next Header
Quality of Service
Compromise
Mobility
IPv6 Mobility
correspondent
host
foreign agent
home agent
correspondent
host
foreign agent
home agent
correspondent
host
foreign agent
home agent
correspondent
host
foreign agent
home agent
correspondent
host
home agent
correspondent
host
home agent
correspondent
host
home agent
correspondent
host
home agent
correspondent
host
home agent
IPv6 Routing
RIPng
BGP4+ Overview
IPv6 routing
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
Porting Issues
Core APIs
Use
getsockname()
Name
to
Address
Translation
getaddrinfo()
freeaddrinfo()
struct addrinfo {
int ai_flags;
int ai_family;
int getaddrinfo(
int ai_socktype;
IN const char FAR * nodename,
int ai_protocol;
IN const char FAR * servname,
size_t ai_addrlen;
IN const struct addrinfo FAR * hints,
char *ai_canonname;
OUT struct addrinfo FAR * FAR * res
struct sockaddr *ai_addr;
);
struct addrinfo *ai_next;
};
Address
to Name Translation
getnameinfo()
Flags
NI_NOFQDN
NI_NUMERICHOST
NI_NAMEREQD
NI_NUMERICSERV
NI_DGRAM
int getnameinfo(
IN const struct sockaddr FAR * sa,
IN socklen_t salen,
OUT char FAR * host,
IN size_t hostlen,
OUT char FAR * serv,
IN size_t servlen,
IN int flags
);
Porting Environments
Node Types
Application Types
IPv4-only
IPv6-only
IPv6/IPv4
IPv6-unaware
IPv6-capable
IPv6-required
Porting Issues
Including IPv4-only
Obsolete / New:
AF_INET
replaced by
AF_INET6
SOCKADDR_IN
replaced by
SOCKADDR_STORAGE
IPPROTO_IP
replaced by
IPPROTO_IPV6
gethostbyname
replaced by
getaddrinfo
gethostbyaddr
replaced by
getnameinfo
Other Issues
Multihomed Servers
to allocate storage
IN6ADDR_ANY_INIT
in6addr_loopback, IN6ADDR_LOOPBACK_INIT
Options as Needed
Use getaddrinfo()
For
Address Resolution
IPv4 - IPv6
Co-Existence / Transition
IPv6 Timeline
(A pragmatic projection)
2000
2001
2002
2003
2004
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
2005
2006
2007
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Early adopter
Application porting <= Duration 3+ years
=>
<=
Deployments
Applications
Applications
Applications
(1)
dual-stack techniques, to allow IPv4 and IPv6 to
co-exist in the same devices and networks
(2)
tunneling techniques, to avoid order
dependencies when upgrading hosts, routers, or
regions
(3)
translation techniques, to allow IPv6-only
devices to communicate with IPv4-only devices
Dual-Stack Approach
manual configuration
tunnel brokers (using web-based service to create a tunnel)
automatic (depricated, using IPv4 as low 32bits of IPv6)
6-over-4 (intra-domain, using IPv4 multicast as virtual LAN)
6-to-4 (inter-domain, using IPv4 addr as IPv6 site prefix)
Translation
Tunnels
6to4
Configured
Automatic
6to4 tunnels
FP (3bits)
TLA (13bits)
SLA ID (16bits)
Interface ID (64bits)
001
0x0002
ISP assigned
Locally administered
Auto configured
2002:8243:1::/48
2002:947A:1::/48
IPv4
IPv6
IPv6
148.122.0.1
130.67.0.1
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
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
Configured tunnels II
Pros
Cons
Multicast
Real addresses
No keepalive mechanism,
interface is always up
Automatic tunnels
0
Defined
ISP assigned
148.122.0.1
::148.122.0.1
130.67.0.1
::130.67.0.1
IPv6
IPv4
IPv6
IPv6 Internet
Automatic tunnels II
Pros
Cons
Obsolete
Tunneling issues
Tunneling issues II
Deployment scenarios
Outline
Protocol Background
Technology Highlights
Enhanced Capabilities
Transition Issues
Next Steps
Current Status
Standards
Implementations
IPv6 Addresses
Bootstrap phase
2001:0200::/23
2001:0400::/23
2001:0600::/23
3FFE::/16
APNIC (whois.apnic.net)
CONNECT-AU-19990916 2001:210::/35
WIDE-JP-19990813 2001:200::/35
SONYTELECOM-JPNIC-JP-20001207 2001:298::/35
TTNET-JPNIC-JP-20001208 2001:2A0::/35
CCCN-JPNIC-JP-20001228 2001:02A8::/35
IMNET-JPNIC-JP-20000314 2001:0248::/35
NUS-SG-19990827 2001:208::/35
KIX-KR-19991006 2001:220::/35
KORNET-KRNIC-KR-20010102 2001:02B0::/35
ETRI-KRNIC-KR-19991124 2001:230::/35
NTT-JP-19990922 2001:218::/35
ESNET-V6 2001:0400::/35
ARIN-001 2001:0400::/23
VBNS-IPV6 2001:0408::/35
CANET3-IPV6 2001:0410::/35
VRIO-IPV6-0 2001:0418::/35
CISCO-IPV6-1 2001:0420::/35
QWEST-IPV6-1 2001:0428::/35
DEFENSENET 2001:0430::/35
ABOVENET-IPV6 2001:0438::/35
SPRINT-V6 2001:0440::/35
UNAM-IPV6 2001:0448::/35
GBLX-V6 2001:0450::/35
HINET-TW-20000208 2001:238::/35
IIJ-JPNIC-JP-20000308 2001:240::/35
CERNET-CN-20000426 2001:250::/35
INFOWEB-JPNIC-JP-2000502 2001:258::/35
JENS-JP-19991027 2001:228::/35
BIGLOBE-JPNIC-JP-20000719 2001:260::/35
6DION-JPNIC-JP-20000829 2001:268::/35
DACOM-BORANET-20000908 2001:270::/35
ODN-JPNIC-JP-20000915 2001:278::/35
KOLNET-KRNIC-KR-20000927 2001:280::/35
HANANET-KRNIC-KR-20001030 2001:290::/35
TANET-TWNIC-TW-20001006 2001:288::/35
ARIN (whois.arin.net)
RIPE (whois.ripe.net)
EU-EUNET-20000403 2001:0670::/35
UK-BT-19990903 2001:0618::/35
DE-IPF-20000426 2001:0678::/35
CH-SWITCH-19990903 2001:0620::/35
DE-NACAMAR-20000403 2001:0668::/35
AT-ACONET-19990920 2001:0628::/35
DE-XLINK-20000510 2001:0680::/35
UK-JANET-19991019 2001:0630::/35
DE-DFN-19991102 2001:0638::/35
NL-SURFNET-19990819 2001:0610::/35
DE-ECRC-19991223 2001:0650::/35
FR-TELECOM-20000623 2001:0688::/35
PT-RCCN-20000623 2001:0690::/35
SE-SWIPNET-20000828 2001:0698::/35
RU-FREENET-19991115 2001:0640::/35
GR-GRNET-19991208 2001:0648::/35
EU-UUNET-19990810 2001:0600::/35
DE-TRMD-20000317 2001:0658::/35
FR-RENATER-20000321 2001:0660::/35
PL-ICM-20000905 2001:06A0::/35
DE-SPACE-19990812 2001:0608::/35
BE-BELNET-20001101 2001:06A8::/35
SE-SUNET-20001218 2001:06B0::/35
IT-CSELT-20001221 2001:06B8::/35
SE-TELIANET-20010102 2001:06C0::/35
Deployment
commercial infrastructure
Deployment (cont.)
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
multihoming / address
selection
address allocation
DNS discovery
3GPP usage of IPv6
anycast addressing
scoped address
architecture
flow-label semantics
API issues
Next Steps
http://www.ietf.org/html.charters/ipngwgcharter.html
http://www.ietf.org/html.charters/ngtranscharter.html
http://playground.sun.com/ipv6/
http://www.6bone.net/ngtrans/
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
BGP4+ References
RIPng RFC2080
Books
Questions?
2213
1313_06_2000_c2
119
Cisco Systems