Title: Outline of IPv6
1Outline of IPv6
- Yoshiaki Kitaguchi
- ltkita_at_hako.is.uec.ac.jpgt
2What is IPv6?
- The new Internet Protocol
- IPv6 - Internet Protocol version 6
- Has been examined since 1991
- IPv4 is currently in-use Internet protocol
- IPv6 takes over more IPv4 design advantages
- Improvement added based on experience
3Problems of the Internet
- Exhaustion of IP addresses
- 32 bit address space can identify only
- 4 billion hosts
- Less than the world population (6 billion)
- Bloated routing table
- The increase of table space faster than the
development speed of memory technology - Influence the performance of routing
4Resolution on IPv4 Internet
- CIDR - Classless Internet Domain Routing
- Wastes less addresses and allows aggregation
- Private address
- Only used for local networks
- Ex. 10/8, 172.16/12, 192.168/16
- Needs of NAT or firewalls to go outside
- NAT - Network Address Translation
- Translation IP address in packets
- Reduce the need for global address
5Why NAT is not Good?
- Breaks the end-to-end Internet model
- Inhibits experimentation with new applications
- Relations with IPsec is bad
- Renewal of the IP header can not be done with
IPsec - (IPsec - IP SECurity)
- Needs Tricky DNS
- Required two-faced DNS for internal network and
external network complicated
6Why IPv6 is Good?
- Fundamental expansion of IP addresses
- IP addresses don't increase with NAT
- Home electric appliances, car, mobile phone can
be connected to the Internet - Many newcomers can join the Internet
- Affinity for IPsec
- IPsec filtering IPv6
- Restoration of the end-to-end model
- Return to the original Internet
7IPv6 Overview
8IPv6 Specification
- Increased IP address size
- Simplified Header format
- Hierarchically structured address
- Supported address autoconfiguration
- Included security functions
- Improved Quality of Service
9IPv6 Addressing
- 32 bit to 128 bit
- 4 billion x 4 billion x 4 billion x 4 billion
addresses - 340,282,366,920,938,463,463,374,607,431,768,211,45
6 - Astronomical huge address space
- 665,570,793,348,866,943,898,599 addresses per
square meter of the surface of the Earth - Simpler address autoconfiguration can be supported
10IPv6 Address Notation
- Colon hexadecimal notation
- 8 integers (16-bit) separated by colons
- 3ffe5011844126023fffe862543
Dot Decimal Notation
11010010 10100111 00000110 00000010
210 . 167 . 6 . 2
Colon Hexadecimal notation
0011111111111110 0000010100000001
0001100001000100 0000000000000001 ???
3ffe 501
1844 1
???
11Simplification of the Notation
- Skip leading zeros
- Ex. 3ffe050100000001000000000000eff
- can be reduced to 3ffe50101000eff
- A set of consecutive nulls is replaced by double
colons - Maximum one par address
- The above address can be reduced to
3ffe50101eff
12IPv4 Header
Version
Hd. Len.
TOS
Total Packet Length
Identification
flags
Fragment Offset
TTL
Protocol
Header Checksum
20 bytes
Source IP Address
Destination IP Address
Options
n bytes
Padding
32 bits
13IPv6 Header
Version
Traffic Class
Flow Label
Total Packet Length
Protocol
TTL
Source IP Address
40 bytes
Destination IP Address
32 bits
14Header Format Simplification
- Fixed length of header
- Length field eliminated by no options
- No fragmentation on router
- Fragmentation field and option field moved to
extension header - Hosts should use path MTU discovery
- No header checksum
- Reduce cost of header processing, no checksum
updates at each router - Improvement of the routing speed
15Daisy Chain Header
IPv6 header Next header TCP
IPv6 header Next header Authentication
Authentication header Next header TCP
IPv6 header Next header Routing
Routing header Next header Fragment
Fragment header Next header TCP
16IPv6 Address Format
- Prefix and interface ID
- Prefix
- Defines address types
- Identifies the network
- Interface ID
- Identifies network node
- Used MAC address of interface
Prefix
Interface ID
64 bits
64 bits
17IPv6 Address Types
- Unicast address
- Identifier for a interface
- Multicast address
- Identifier for a group of
- interfaces and routed to
- the all group of interfaces
- Anycast address
- Routed to the only "nearest
- interface of a group
S
D
G
S
G
G
A
S
A
A
18Unicast Addresses
- Aggregatable global unicast address
- Link local unicast address
- Site local unicast address
- Embedded IPv4 addresses
- IPv4 compatible address
- IPv4 mapped address
- 6to4 address
19Aggregatable Address
- Aggregatable global unicast address
- Equivalent of the global IPv4 address
- Hierarchically structured
- Section labels - hierarchical routing
- TLA - Top-Level Aggregator for the backbone IPSs
- NLA - Next-Level Aggregator for the next level
IPSs - SLA - Site-Level Aggregator for the leaf sites
prefix
FP 001
Interface ID
TLA
NLA
SLA
20Aggregation
FP 001
Interface ID
TLA
NLA
SLA
IX
IX
ISP
ISP
SITE
SITE
SITE
ISP
ISP
SITE
SITE
SITE
SITE
21Local-use IPv6 Addresses
- Link local unicast address
- Designed to be used for addressing on a single
link for purposes such as auto-configuration - Used instead of ARP in IPv4
- Site local unicast address
- Like private IPv4 address
- No current requirement to use
22Plug and Play
- Stateless address auto-configuration
- Append MAC address to link-local prefix
- MAD 00a0f8016ab8 -gt fe802a0f8fffe016ab8
- Check for duplicate address on sub-network
- Create global address
- Get prefix from router advertisement
- prefix ID -gt 3ffe501184412a0f8fffe016ab8
23Neighbor discovery
- Neighbor solicitation
- Search of address duplication
- Neighbor advertisement
- Notice of address duplication
Router A
Router B
Node A
Node B
Node C
Node
24Router advertisement
- Router advertises periodically
- default route, prefix lists, etc.
- Notice by router solicitation
Router A
Router B
Node A
Node B
Node C
Node
25Security - IPsec
- IPsec - IP SECurity
- Transport-level security for IPv4 and IPv6
- Must implement IPsec on IPv6
- Extension header types
- AH - Authentication Header
- Provides packets integrity
- ESP - Encapsulating Security Payload
- Encrypts packets data
26IPsec security mode
- Transport mode (ESP)
- Encapsulate Payload only
- Tunnel mode (ESP)
- Encapsulate all IP diagram
IPv6
TCP Payload
IPv6
EPS TCP Payload
IPv6
TCP Payload
VPN
IPv6
ESP IPv6 TCP
Payload
27Quality of Service Support
- Traffic class field
- Used to provide class of queuing
- Flow label field
- Label packets for stream routing
- Route cache speed up the routing after the
second time - No current requirement to use these fields
28IPv6 Transition Techniques
29Dual Stack
- Support both IPv4 and IPv6
- Present standard of implementation
- IPv6 nodes on the Internet will be dual stack
v6 host
IPv6
Dual stack
v4 host
IPv4
30IP Tunneling
- IPv6 over IPv4
- Encapsulation IPv6 by IPv4 on dual stack machine
IPv6
IPv6
IPv6 site
IPv6 site
IPv4 Internet
Virtual tunnel
316to4
- Use IPv4 Internet as link layer
- To connect IPv6 end-site networks
- Use prefix 2002/16
- Use IPv4 address for IPv6 prefix
- 6to4 gateway 133.243.254.1
- -gt IPv6 prefix 200287f5fe01/48
- Can not aggregate
32Translation
- IP header translation
- like the NAT mechanism
- some techniques
- NAT-PT, Socks64, SIIT and so on
IPv6
IPv6
IPv4
v6 host
v4 host
IP gateway
IPv6
IPv4
33DNS on IPv6
- DNS Domain Name System
- AAAA record
- Like the A record
- ns.apii.net IN AAAA 3ffe501184411
- Reverse lookup
- ip6.arpa domain
- 3ffe501184411
- -gt 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. \
- 1.0.0.0.4.4.8.1.1.0.5.0.e.f.f.3.ip6.arpa
34Update of IPv6
35IPv6 Status
- almost fixed protocol stack
- RFC2460 - Draft Standard
- to the commercial network
- started to operate business use address
- subTLA since July 2000
- IPv6 Address Assignment on RFC2405
- new prefix 2001/16
- 66 sites has subTLA
IPv6 Address Assignment on RFC2405
3 FP
13 TLA
13 sub-TLA
19 NLA
16 SLA
64 Host ID
36IPv6 TLA Reservations
- Pseudo Top-Level Aggregation (pTLA)
- TLA 3ffe/16 reserved for 6bone
- 6bone Global IPv6 test network since 1995
- Experimental address space
- SubTLAs
- TLA 2001/16 reserved for subTLAs
- Production address space
- SubTLA blocks (/23) allocated to each RIR and to
the IANA (64 subTLAs each)
37IPv6 Address Allocations
- Regional IP address registries (RIRs)
- Assignment for subTLA
- APNIC - Asia and Pacific
- http//www.apnic.net/
- ARIN - North and South America (Africa)
- http//www.arin.net/
- RIPE-NCC - Europe and Middle East
- http//www.ripe.net/
38SubTLA Allocations by RIRs
Total Allocations 126
http//www.ripe.net/ripencc/mem-services/registrat
ion/ipv6/ipv6allocs.html as of February 14, 2002
39APNIC Allocations by Country
Total Allocations 50
http//www.ripe.net/ripencc/mem-services/registrat
ion/ipv6/ipv6allocs.html as of February 14, 2002
40ARIN Allocations by Country
Total Allocations 24
http//www.ripe.net/ripencc/mem-services/registrat
ion/ipv6/ipv6allocs.html as of February 14, 2002
41RIPE Allocations by Country
Total Allocations 52
http//www.ripe.net/ripencc/mem-services/registrat
ion/ipv6/ipv6allocs.html as of February 14, 2002
42pTLA Allocations by Country
Total Allocations 123
http//www.6bone.net/6bone_pTLA_list.html as of
February 14, 2002
43IPv6 Sites on 6bone
Total Allocations 1068
http//www.cs-ipv6.lancs.ac.uk/ipv6/6Bone/Whois/by
country.html as of February 14, 2002
44Asian IPv6 Site on 6bone
Total Allocations 112
http//www.cs-ipv6.lancs.ac.uk/ipv6/6Bone/Whois/by
country.html as of February 14, 2002
45Implementation of IPv6
- OS implementations
- BSD, Linux, Windows XP, MAC OS X and so on
- Router implementations
- Cisco Systems GSR, VXR
- Juniper Networks M10, M20
- Hitachi GR2000
- NEC IX
- etc
- Most OSs and router venders are ready !!
46IPv6 APIs
- Structure for IPv6
- in6_addr
- Holds a single IPv6 address
- sockaddr_in6
- Address date structure for IPv6
- Function for protocol independent
- getaddrinfo
- Hostname to address translation
- getnameinfo
- Address to hostname translation
47Socket address structure
sockaddr_in
sockaddr_in6
sockaddr_strage
Length
AF_INET
Length
AF_INET6
Length
Family
Port
Port
Port
Address
Flowinfo
Padding (max 126byte)
Address
Scope_id
48getaddrinfo
- gethostbyname to getaddrinfo
struct sockaddr sa struct hostent hp char
name int af struct addrinfo hints struct
addrinfo res hp gethostbyname(name, af)
struct sockaddr sa struct hostent hp char
name int af struct addrinfo hints struct
addrinfo res memset(hints, 0,
sizeof(hints)) hints.ai_family
PF_UNSPEC error getaddrinfo(name, NULL,
hints, res) if (error) perror(gai_strerror(
error)) else while (res) sa
(struct sockaddr )res-gtai_addr res
res-gtai_next
49getnameinfo
- gethostbyaddr to getnameinfo
struct sockaddr_in sin struct hostent hp char
name hp gethostbyaddr(sin-gtsin_addr,
sizeof(sin-gtsin_addr), AF_INET) name
hp-gth_name
struct sockaddr_strage ss char name,
namebuf error getnameinfo((struct sockaddr
)ss, ss.ss_len, namebuf, sizeof(namebuf),
NULL, 0. 0) if (error)
perror(getnameinfo) name namebuf
50IPv6 Future
- All IP
- Household electric appliance, car, mobile phone
and so on will connect to the Internet - New many countries can join the Internet
- The establishment of IPv6 transition techniques
is pressing need