Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
IPv6 
Prepared by: 
ydrugalya@gmail.com
Agenda 
• IPv6 features overview 
• IPv6 addressing 
• Integration and co-existing strategies 
• IPv6 application developm...
History 
• 1974 Cerf and Kahn developed TCP/IP for 
ARPA. 
• NSF (end of 70-th) 
• 1992 – RFC 1550. 21 response. 7 left. C...
NAT 
192.168.0.100 ->.. -> 74.125.87.99(google.com) 
192.168.0.100 (5043, 80)  
192.168.0.1 / 157.55.1.10 (666, 80)  
74...
NAT
Why NAT is bad 
• This was a temporary solution from the beginning 
• NAT keep us away from transparent connection 
• NAT ...
Requirements 
• Larger address space 
• Simpler protocol for faster routing processing 
• Better security 
• Better QoS 
•...
New Header Format(RFC 2460 )
IPv6 Header Fields 
• Version – always 6 for IPv6 
• Traffic class – similar to ToS in IPv4. Each traffic class 
can be ma...
Comparing IPv4 and IPv6 headers 
• IHL – removed 
• Protocol – removed 
• Removed all fields related to fragmentation 
• T...
Extension Headers*
Extension Headers 
Header Type Purpose 
Hop-By-Hop Optional data that each host must examine(Deprecated) 
Routing Causes p...
Stateless and Stateful Address 
Configuration 
• Statefull address configuration 
– DHCP for IPv6 
• Stateless address con...
IPv6 Address format 
RFC 2373 
2001:05c0:1000:000b:0000:0000:0000:9eaf 
 
2001:5c0:1000:b::9eaf 
http://[2620:0:1cfe:face...
IPv6 address types 
- Unicast – address for single interface 
- Global 
- Site-local 
- Link-local 
- Anycast – address of...
Global Unicast address format 
2620:0:1cfe:face:b00c::7
Site-Local address format 
FEC0::3:260:8FF:FE52:F9D8
Link-local format 
EUI-64(RFC 2373) VS Random number
Multicast address format 
• ff02::1 - all nodes in local segment 
• ff02::2 - all routers in local network segment 
• FF01...
IPv4 compatible IPv6 address 
deprecated
IPv4 mapped IPv6 address 
RFC 4038
Integration and co-existing strategies 
• Dual-stack 
• IPv6 over IPv4 tunnels 
• Dedicated data links
Dual-stack
Popular transition technologies 
• Static 6 over 4 tunnels 
• Automatic 6to4 Tunnel. 
– 6to4 
– Teredo 
– ISATAP 
– go6.ne...
IPv6 over IPv4 tunnels
6to4* 
Idea: 
- Encapsulate IPv6 packet into IPv4 packet 
Example: 
IPv4 address: 16.24.244.69 --> 
2002:1018:f445::1018:f...
Teredo* 
Idea: 
- encapsulate IPv6 into UDP 
- encapsulate UDP port and ipv4 into ipv6 
address 
RFC 4380 . Example 
2001:...
ISATAP 
RFC 4214
IPv6 Application development
IPv6 Application development 
IPv6 Guide for Windows Sockets Applications 
Checkv4.exe 
Main idea: make your application d...
IPv6 Application development 
Data structures 
Data structures 
sockaddr_in  sockaddr_storage 
Shims: getPort, getSockAdd...
IPv6 Application development 
Function calls 
#if !defined(IPV6_V6ONLY) 
# define IPV6_V6ONLY 27 
#endif 
setsockopt(sockf...
Troubleshooting 
netsh interface ipv6 show address 
netsh interface ipv6 show neighbors 
netsh interface ipv6 delete neigh...
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References 
• IPv6 Learning Roadmap 
• IPv6 Guide for Windows Sockets Applications 
• www.ipv6.com 
• Test your IPv6 conne...
Ipv6
Ipv6
Ipv6
Ipv6
Ipv6
Ipv6
Upcoming SlideShare
Loading in …5
×

Ipv6

405 views

Published on

History and current state of ipv6

Published in: Software
  • Be the first to comment

  • Be the first to like this

Ipv6

  1. 1. IPv6 Prepared by: ydrugalya@gmail.com
  2. 2. Agenda • IPv6 features overview • IPv6 addressing • Integration and co-existing strategies • IPv6 application development • A Big Picture • References
  3. 3. History • 1974 Cerf and Kahn developed TCP/IP for ARPA. • NSF (end of 70-th) • 1992 – RFC 1550. 21 response. 7 left. CLNP. • 1993. 3 proposals left (Deering, Francis, Katz and Ford). SIPP. • SIPP  IPv6 (IPv5 – already allocated)
  4. 4. NAT 192.168.0.100 ->.. -> 74.125.87.99(google.com) 192.168.0.100 (5043, 80)  192.168.0.1 / 157.55.1.10 (666, 80)  74.125.87.99(google.com)
  5. 5. NAT
  6. 6. Why NAT is bad • This was a temporary solution from the beginning • NAT keep us away from transparent connection • NAT violates security and principle of packets consistency • NAT was blocking development of transparent applications • Double/triple NAT translation is very ugly thing
  7. 7. Requirements • Larger address space • Simpler protocol for faster routing processing • Better security • Better QoS • Extensibility • Auto configuration • Better Multicast and Anycast abilities • Better support for mobile devices • Coexisting
  8. 8. New Header Format(RFC 2460 )
  9. 9. IPv6 Header Fields • Version – always 6 for IPv6 • Traffic class – similar to ToS in IPv4. Each traffic class can be managed differently, ensuring preferential treatment for higher-priority traffic on the network. Not widely used. • Flow label. Experimental. Idea reserve throughput for flow between two hosts. Virtual channel. • Next header – tells which one from 6 extension headers follows • HOP Limit – ex TTL. • Source/Destination addresses
  10. 10. Comparing IPv4 and IPv6 headers • IHL – removed • Protocol – removed • Removed all fields related to fragmentation • TTL replaced by Hop limit field. • Header checksum - deprecated (upper level checksum can do it).
  11. 11. Extension Headers*
  12. 12. Extension Headers Header Type Purpose Hop-By-Hop Optional data that each host must examine(Deprecated) Routing Causes packet to visit specific hosts on its way to destination Fragment Contains fragment identification, offset flags Destination Options Processed only by destination host Authentication Sender verification Encapsulating Security Indicates that the rest of payload is encrypted Payload
  13. 13. Stateless and Stateful Address Configuration • Statefull address configuration – DHCP for IPv6 • Stateless address configuration – No DHCP server – Automatic link-local address configuration
  14. 14. IPv6 Address format RFC 2373 2001:05c0:1000:000b:0000:0000:0000:9eaf  2001:5c0:1000:b::9eaf http://[2620:0:1cfe:face:b00c::3]
  15. 15. IPv6 address types - Unicast – address for single interface - Global - Site-local - Link-local - Anycast – address of set of interfaces - Multicast – scoped address of group of interfaces RFC 4291
  16. 16. Global Unicast address format 2620:0:1cfe:face:b00c::7
  17. 17. Site-Local address format FEC0::3:260:8FF:FE52:F9D8
  18. 18. Link-local format EUI-64(RFC 2373) VS Random number
  19. 19. Multicast address format • ff02::1 - all nodes in local segment • ff02::2 - all routers in local network segment • FF01::2 - node local scope all routers • FF02::2 - link-local scop all-routers
  20. 20. IPv4 compatible IPv6 address deprecated
  21. 21. IPv4 mapped IPv6 address RFC 4038
  22. 22. Integration and co-existing strategies • Dual-stack • IPv6 over IPv4 tunnels • Dedicated data links
  23. 23. Dual-stack
  24. 24. Popular transition technologies • Static 6 over 4 tunnels • Automatic 6to4 Tunnel. – 6to4 – Teredo – ISATAP – go6.net – SixXS IPv6 Transition Technologies
  25. 25. IPv6 over IPv4 tunnels
  26. 26. 6to4* Idea: - Encapsulate IPv6 packet into IPv4 packet Example: IPv4 address: 16.24.244.69 --> 2002:1018:f445::1018:f445
  27. 27. Teredo* Idea: - encapsulate IPv6 into UDP - encapsulate UDP port and ipv4 into ipv6 address RFC 4380 . Example 2001:0:5ef5:79fd:34a0:3750:e0e0:8ed1
  28. 28. ISATAP RFC 4214
  29. 29. IPv6 Application development
  30. 30. IPv6 Application development IPv6 Guide for Windows Sockets Applications Checkv4.exe Main idea: make your application dual stack - use agnostic data structures - change function calls - remove hardcoded addresses - change UI RFC 4038
  31. 31. IPv6 Application development Data structures Data structures sockaddr_in  sockaddr_storage Shims: getPort, getSockAddrBytes, getAddrLen, etc. int getPort(sockaddr_storage& addr) { switch(addr.ss_family) { case AF_INET: return ntohs ( reinterpret_cast<sockaddr_in*>(&addr)->sin_port ); case AF_INET6: return ntohs ( reinterpret_cast<sockaddr_in6*>(&addr)->sin6_port ); default: throw exception; }
  32. 32. IPv6 Application development Function calls #if !defined(IPV6_V6ONLY) # define IPV6_V6ONLY 27 #endif setsockopt(sockfd, PPROTO_IPV6, IPV6_V6ONLY, (char *)&off, sizeof(off) ); gethostbyname  getaddrinfo gethostbyaddr getnameinfo
  33. 33. Troubleshooting netsh interface ipv6 show address netsh interface ipv6 show neighbors netsh interface ipv6 delete neighbors netsh interface ipv6 show destinationcache netsh interface ipv6 delete destinationcache
  34. 34. Troubleshooting
  35. 35. BIG PICTURE
  36. 36. IPv6 deployment status
  37. 37. Necessity vs Inertness
  38. 38. References • IPv6 Learning Roadmap • IPv6 Guide for Windows Sockets Applications • www.ipv6.com • Test your IPv6 connectivity • Google IPv6 Conference 2008: What will the IPv6 Internet look like? • SixXS - IPv6 Deployment & Tunnel Broker • Cool IPv6 stuff • icmpv6x

×