ipv6
DESCRIPTION
History and current state of ipv6TRANSCRIPT
IPv6Prepared by
ydrugalyagmailcom
Agenda
bull IPv6 features overviewbull IPv6 addressingbull Integration and co-existing strategiesbull IPv6 application developmentbull A Big Picturebull References
History
bull 1974 Cerf and Kahn developed TCPIP for ARPA
bull NSF (end of 70-th)bull 1992 ndash RFC 1550 21 response 7 left CLNPbull 1993 3 proposals left (Deering Francis Katz
and Ford) SIPPbull SIPP IPv6 (IPv5 ndash already allocated)
NAT
1921680100 -gt -gt 741258799(googlecom)
1921680100 (5043 80) 19216801 15755110 (666 80) 741258799(googlecom)
NAT
Why NAT is bad
bull This was a temporary solution from the beginningbull NAT keep us away from transparent connectionbull NAT violates security and principle of packets
consistencybull NAT was blocking development of transparent
applicationsbull Doubletriple NAT translation is very ugly thing
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Agenda
bull IPv6 features overviewbull IPv6 addressingbull Integration and co-existing strategiesbull IPv6 application developmentbull A Big Picturebull References
History
bull 1974 Cerf and Kahn developed TCPIP for ARPA
bull NSF (end of 70-th)bull 1992 ndash RFC 1550 21 response 7 left CLNPbull 1993 3 proposals left (Deering Francis Katz
and Ford) SIPPbull SIPP IPv6 (IPv5 ndash already allocated)
NAT
1921680100 -gt -gt 741258799(googlecom)
1921680100 (5043 80) 19216801 15755110 (666 80) 741258799(googlecom)
NAT
Why NAT is bad
bull This was a temporary solution from the beginningbull NAT keep us away from transparent connectionbull NAT violates security and principle of packets
consistencybull NAT was blocking development of transparent
applicationsbull Doubletriple NAT translation is very ugly thing
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
History
bull 1974 Cerf and Kahn developed TCPIP for ARPA
bull NSF (end of 70-th)bull 1992 ndash RFC 1550 21 response 7 left CLNPbull 1993 3 proposals left (Deering Francis Katz
and Ford) SIPPbull SIPP IPv6 (IPv5 ndash already allocated)
NAT
1921680100 -gt -gt 741258799(googlecom)
1921680100 (5043 80) 19216801 15755110 (666 80) 741258799(googlecom)
NAT
Why NAT is bad
bull This was a temporary solution from the beginningbull NAT keep us away from transparent connectionbull NAT violates security and principle of packets
consistencybull NAT was blocking development of transparent
applicationsbull Doubletriple NAT translation is very ugly thing
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
NAT
1921680100 -gt -gt 741258799(googlecom)
1921680100 (5043 80) 19216801 15755110 (666 80) 741258799(googlecom)
NAT
Why NAT is bad
bull This was a temporary solution from the beginningbull NAT keep us away from transparent connectionbull NAT violates security and principle of packets
consistencybull NAT was blocking development of transparent
applicationsbull Doubletriple NAT translation is very ugly thing
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
NAT
Why NAT is bad
bull This was a temporary solution from the beginningbull NAT keep us away from transparent connectionbull NAT violates security and principle of packets
consistencybull NAT was blocking development of transparent
applicationsbull Doubletriple NAT translation is very ugly thing
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Why NAT is bad
bull This was a temporary solution from the beginningbull NAT keep us away from transparent connectionbull NAT violates security and principle of packets
consistencybull NAT was blocking development of transparent
applicationsbull Doubletriple NAT translation is very ugly thing
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Requirements
bull Larger address spacebull Simpler protocol for faster routing processing bull Better securitybull Better QoSbull Extensibilitybull Auto configurationbull Better Multicast and Anycast abilitiesbull Better support for mobile devicesbull Coexisting
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
New Header Format(RFC 2460 )
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 Header Fields
bull Version ndash always 6 for IPv6bull Traffic class ndash 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
bull Flow label Experimental Idea reserve throughput for flow between two hosts Virtual channel
bull Next header ndash tells which one from 6 extension headers follows
bull HOP Limit ndash ex TTLbull SourceDestination addresses
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Comparing IPv4 and IPv6 headersbull IHL ndash removedbull Protocol ndash removedbull Removed all fields related to fragmentationbull TTL replaced by Hop limit fieldbull Header checksum - deprecated (upper level checksum can do it)
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Extension Headers
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Extension HeadersHeader 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 Payload
Indicates that the rest of payload is encrypted
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Stateless and Stateful Address Configuration
bull Statefull address configurationndash DHCP for IPv6
bull Stateless address configurationndash No DHCP serverndash Automatic link-local address configuration
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 Address format
RFC 2373200105c01000000b0000000000009eaf
20015c01000b9eaf
http[262001cfefaceb00c3]
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 address types
- Unicast ndash address for single interface- Global- Site-local- Link-local
- Anycast ndash address of set of interfaces- Multicast ndash scoped address of group of
interfacesRFC 4291
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Global Unicast address format
262001cfefaceb00c7
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Site-Local address format
FEC032608FFFE52F9D8
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Link-local format
EUI-64(RFC 2373) VS Random number
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Multicast address format
bull ff021 - all nodes in local segmentbull ff022 - all routers in local network segmentbull FF012 - node local scope all routersbull FF022 - link-local scop all-routers
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv4 compatible IPv6 address
deprecated
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv4 mapped IPv6 address
RFC 4038
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Integration and co-existing strategies
bull Dual-stackbull IPv6 over IPv4 tunnelsbull Dedicated data links
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Dual-stack
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Popular transition technologies
bull Static 6 over 4 tunnelsbull Automatic 6to4 Tunnel ndash 6to4ndash Teredondash ISATAPndash go6netndash SixXS
IPv6 Transition Technologies
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 over IPv4 tunnels
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
6to4
Idea- Encapsulate IPv6 packet into IPv4 packetExample IPv4 address 162424469 --gt20021018f4451018f445
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Teredo
Idea- encapsulate IPv6 into UDP- encapsulate UDP port and ipv4 into ipv6
address RFC 4380 Example200105ef579fd34a03750e0e08ed1
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
ISATAP
RFC 4214
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 Application development
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 Application development
IPv6 Guide for Windows Sockets ApplicationsCheckv4exe
Main idea make your application dual stack- use agnostic data structures- change function calls- remove hardcoded addresses- change UI
RFC 4038
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 Application developmentData structures
Data structures sockaddr_in sockaddr_storageShims getPort getSockAddrBytes getAddrLen etcint getPort(sockaddr_storageamp addr) switch(addrss_family)
case AF_INETreturn ntohs ( reinterpret_castltsockaddr_ingt(ampaddr)-gtsin_port )
case AF_INET6 return ntohs ( reinterpret_castltsockaddr_in6gt(ampaddr)-gtsin6_port ) default throw exception
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 Application developmentFunction calls
if defined(IPV6_V6ONLY) define IPV6_V6ONLY 27endifsetsockopt(sockfd PPROTO_IPV6 IPV6_V6ONLY
(char )ampoff sizeof(off) )
gethostbyname getaddrinfogethostbyaddr getnameinfo
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Troubleshooting
netsh interface ipv6 show address
netsh interface ipv6 show neighborsnetsh interface ipv6 delete neighbors
netsh interface ipv6 show destinationcachenetsh interface ipv6 delete destinationcache
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Troubleshooting
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
BIG PICTURE
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
IPv6 deployment status
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
Necessity vs Inertness
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
References
bull IPv6 Learning Roadmapbull IPv6 Guide for Windows Sockets Applicationsbull wwwipv6combull Test your IPv6 connectivitybull Google IPv6 Conference 2008 What will the IPv6 I
nternet look like
bull SixXS - IPv6 Deployment amp Tunnel Brokerbull Cool IPv6 stuffbull icmpv6x
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-
- IPv6 Prepared by ydrugalyagmailcom
- Agenda
- History
- NAT
- NAT (2)
- Why NAT is bad
- Requirements
- New Header Format(RFC 2460 )
- IPv6 Header Fields
- Comparing IPv4 and IPv6 headers
- Extension Headers
- Extension Headers
- Stateless and Stateful Address Configuration
- IPv6 Address format
- IPv6 address types
- Global Unicast address format
- Site-Local address format
- Link-local format
- Multicast address format
- IPv4 compatible IPv6 address
- IPv4 mapped IPv6 address
- Integration and co-existing strategies
- Dual-stack
- Popular transition technologies
- IPv6 over IPv4 tunnels
- 6to4
- Teredo
- ISATAP
- IPv6 Application development
- IPv6 Application development (2)
- IPv6 Application development Data structures
- IPv6 Application development Function calls
- Troubleshooting
- Troubleshooting
- Slide 35
- IPv6 deployment status
- Necessity vs Inertness
- References
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
-