IPv6 for Software Developers

Understanding and developing software to support the IPv6 protocol

• 4 days • £2860/$3640 • world-wide

You will learn:

  • Configure basic IPv6 networking and services
  • Implement new networking software and devices to support IPv6
  • Use IPv6 addresses effectively
  • Implement network security using IPv6 IPSec
  • Write code using the basic IPv6 socket API
  • Migrate legacy code to IPv6
  • Use code migration tools
  • Implement best practice coding practice for IPv6 and for IPv4
  • Choose appropriate code migration approach
  • Use new features of IPv6 in code
  • Test dual stack applications


Course Benefits

IPv6 is the result of many years of research and activity by the international Internet community. IPv6 provides increased addressing space, improved routing, better security and support for new applications.

The implementation of IPv6 is inevitable and will impact on all companies that maintain, implement or use IP networks.

In this course, you will learn how the IPv6 protocol and related protocols differ from IPv4 and how this impacts writing network software. You will learn complex options available for migrating code to IPv6 and the best practice approaches that should be used in different scenarios. The course shows you how to migrate legacy applications to IPv6. The course includes extensive hands-on IPv6 practical exercises and in-depth technical analysis.


Who should attend?

This course is ideal for Unix and Windows software developers working in C and C++, who use the sockets interface.


A good knowledge of general networking concepts is assumed. IPv4 is reviewed as it is compared and contrasted with IPv6, but experience of IPv4 is very useful. Knowledge of network programming and the IPv4 socket API is recommended.


Course Contents

The Need for IPv6

  • The problems with IPv4
  • Internet growth
  • The solution - IPv6
  • What does this mean for us?

The Features of IPv6

  • IPv6 datagram header
  • IPv6 addresses
  • IPv6 address representation
  • Multicast, unicast & anycast
  • IPv6 link-local addresses
  • The IPv6 datagram format
  • IPv6 extension headers
  • IPv6 fragmentation
  • ICMPv6
  • IPv6 multicast group management


  • Stateless & Stateful
  • Neighbor Discovery in IPv6
  • IPv6 Router Discovery
  • DHCPv6
  • Stateless DHCPv6
  • IPv6 Router Renumbering

Routing and Internetworking IPv6

  • IPv6 routing protocols
  • MTU Path Discovery in IPv6
  • IPv6 dynamic routing

Interfacing IPv6 to the Lower Layers

  • Data-link and physical layer
  • Point to point and IPv6
  • NBMA networks and IPv6
  • IPv6 and PPP
  • ATM and IPv6
  • IEEE802 and IPv6
  • IPv6 in 3G, 4G, LTE and IMS
  • MPLS and IPv6
  • 6PE and 6VPN

Transport Layer and IPv6

  • Operation of TCP and UDP
  • Ports and Sockets
  • Changes to TCP for IPv6
  • Changes to UDP for IPv6

IPv6 Transition Mechanisms I

  • Overview of transition mechanisms
  • IPv6 Dual stacks
  • Compatibility addresses
  • Automatic and configured tunnelling
  • 6over4 and 6to4
  • 6rd - IPv6 rapid deployment
  • Teredo
  • Dual stack Lite (DSLite)
  • Dual Stack Transition Mechanism (DSTM)
  • IPv6 Tunnel brokers
  • Tunnel setup protocol (TSP)

IPv6 Transition Mechanisms II

  • Protocol translators
  • SIIT
  • Application layer gateways
  • DNS64 & NAT64
  • TRT
  • IPv6 SOCKS
  • Bump-in-the-stack (BIS)
  • Bump-in-the-API (BIA)
  • Transition mechanisms and DNS

IPv6 Security (IPSec)

  • Cryptographic techniques
  • IPv6 and IPSec
  • IPv6 AH & ESP Headers
  • Transport and tunnel modes
  • Security associations

Mobile IPv6

  • Limitations of link layer mobility
  • Mobile IPv4 vs Mobile IPv6
  • IPv6 Home agents
  • Binding updates and the binding cache
  • Mobile IPv6 in operation
  • Mobile IPv6 Security
  • NEMO

IPv6 and Quality of Service

  • Traffic class in IPv6
  • The IPv6 Flow label
  • Differential services (DiffServ)
  • Integrated services (IntServ)
  • Traffic flows in IPv6
  • RSVP and IPv6 QoS

DNS and IPv6

  • The domain name system
  • Changes to DNS for IPv6
  • IPv6 AAAA resource records
  • PTR records and IPv6
  • Reverse lookups in IPv6
  • ip6.arpa. & ip6.int.
  • IPv6 in BIND and MS DNS
  • IPv6 and EDNS0

Application Changes for IPv6

  • Basic Internet commands
  • IPv6 ping, telnet and FTP
  • Mail systems and IPv6
  • IPv6 enabled web-servers

The IPv6 Programming Interface

  • The basic IPv6 programming API
  • IPv4 socket API vs IPv6 socket API
  • Address structures
  • Socket functions
  • Name resolution
  • Interface identification
  • New constants, macros and header files
  • Sockets and Winsock
  • Support for IPv6 in Perl, Java and C#

Migrating code to IPv6

  • Aims of code migration to IPv6
  • IPv6 code migration problems
  • Code migration scenarios
  • Writing protocol independent code
  • Converting code to IPv6
  • IPv6 code migration tools
  • Testing IPv6 (dual stack) code

IPv6 new features and coding

  • Overview of IPv6 new features
  • Interface selection
  • Selecting source and destination addresses
  • IPv6 multicast
  • Coding to use IPv6 QoS
  • Coding to use IPv6 IPSec
  • Mobile IPv6 issues


IPv6 Practical Work

During the course there will be many opportunities for hands-on work. Each module has detailed exercises or demonstrations associated with it. Every delegate has at least one server provided for their own use.

Practicals are run on a mixture of Linux, and Windows. Delegates will have the opportunity to choose their preferred platform or platforms.

The practicals include:

  • Upgrading and configuring IPv6
  • Capturing and decoding IPv6 datagrams
  • Network monitoring of IPv6
  • Basic IPv6 configuration
  • IPv6 router configuration
  • Assigning IPv6 addresses
  • Configuring IPv6 auto-configuration
  • Configuring IPv6 dynamic routing
  • Security configuration using IPv6 IPSec
  • Configuring IPv6 transition mechanisms
  • Configuring 6to4, ISATAP, Teredo, NAT-PT etc.
  • Configuring and testing Mobile IPv6
  • Upgrading and configuring IPv6 DNS servers
  • Configuring IPv6 applications and services
  • Writing code using the basic socket API
  • Developing IPv6 server and client applications
  • Handling IPv6 in name resolution code
  • Writing code using the advanced socket API
  • Coding to use IPv6 interfaces
  • Auditing IPv4 code prior to migration to IPv6
  • Migrating code to IPv6 manually and automatically
  • Coding to use new IPv6 features
  • Testing IPv6 ready code



All Erion IPv6 courses are certified by the IPv6 Forum. Erion also has its own IPv6 certification programme.

Certified IPv6 Certification
Certified Course IPv6 Forum
Certified Security Course IPv6 Forum


The Lecturers

All our trainers are practising network consultants with extensive experience with IPv6 networking on UNIX, and Windows in large commercial environments. They are ideally suited to bringing you the highest quality of training.

Erion is the world's leading IPv6 training company.



Our courses are available world-wide in our virtual classrooms accompanied by virtual labs. We also deliver on-site training and public training at venues around the world.

Please contact us if you are looking for training in your area.


  • Aberdeen, Scotland, UK
  • Basingstoke, England, UK
  • Edinburgh, Scotland, UK
  • Glasgow, Scotland, UK
  • Inverness, Scotland, UK
  • Leeds, England, UK
  • London, England, UK
  • Manchester, England, UK
  • Sheffield, England, UK
  • Europe - various locations
  • Ljubljana, Slovenia
  • Malaysia - various locations
  • Boston, USA
  • San Francisco, USA
  • New York, USA
  • Washington DC, USA
  • USA - various locations