Course 851:
IPv6 Programming

(3 days)


Course Description

This course is designed for individuals with detailed knowledge of IPv4 and socket-level programming using the C programming language on Red Hat-based operating systems. This three day course details the new IP addressing architecture, how address assignment works, tunneling, dual stack consideration, and how to interface to an IPv6 server and build IPv6 servers. The course continues with how to program extension headers, IPv4 broadcasts, setting up IPsec and an approach to porting IPv4 code to IPv6.

Learning Objectives

  • IPv6 Address Structure
  • Address Acquisition
  • Details of Unicast
  • How Tunneling works
  • IPv6 Client and Server programming interfaces
  • Programming Extension headers
  • Setup and Program IPsec in IPv6
  • How to transition existing IPv4 code including broadcast

Who Should Attend

Programmers who need to quickly come up to speed on IPv6.

Suggested Prerequisites

To receive maximum benefit from this course, attendees should have a strong background in IPv4 protocols and socket level programming.

Course Outline

Unit 1: IPv6 Architecture

  • The Network Address “Domains”
  • The Addresses of a Node
  • Specialized Addresses
  • Comparison to IPv4

Unit 2: Address Acquisition

  • Controls Files for a Fixed Address
  • Address Transition: DHCPv6
  • Control Files for DHCPv6
  • DHCPv4 and DHCPv6
  • Hand-On: Reviewing Address Setup

Unit 3: Unicast Access

  • Review Unicast Addressing
  • Routing and Neighbor Discovery
  • Autoconfiguration Details
  • Path Discovery
  • Hands-On: Following a Path Discovery Trace
  • Link-Layer Address Resolution
  • Hands-On: Traces of Link-Layer Address Resolution 

Unit 4: ICMPv6 Review

  • Review of All Message Types
  • Hands-On: Ping Trace 

Unit 5: Programming Interface

  • Building a IPV6 Client: C Interface to IPv6
  • Hands-On: Building TCP Client
  • Hands-On: Building a UDP Client
  • Hands-On: Building a Simple Server
  • The Multicast API
  • Hands-On: Working with a Multicast Application

Unit 6: Dual Stack Considerations

  • What Is Dual Stack?
  • Comparison of IPv6 to IPv4 Stacks
  • Approaches to Dual Stack Programming
  • Hands-On: Completing a Dual Stack Program

Unit 7: Tunneling

  • How Tunneling Works: Interfaces
  • Point to Point Tunneling
  • IPv6 in IPv4
  • Automatic Tunneling
  • Hands-On: Setting Up a Tunnel

Chapter 8: Programming Extension Headers

  • Flow Labels
  • Quality of Service (QoS)
  • Hop-by-Hop Header
  • Fragmentation
  • Jumbo Packets

Chapter 9: IPsec

  • Cryptographic Techniques
  • IPv6 and IPSec
  • IPv6 AH and ESP Headers
  • Transport and Tunnel Modes
  • Security Associations
  • ISAKMP and IKE
  • Template Programs

Chapter 10: Testing Techniques

  • Simple nc
  • Netalyzr
  • Overview of External Testing Suites

Chapter 11: Transitioning IPv4 to IPv6

  • Dual Stack Review
  • DNS Issues Review
  • Keeping Original Functionality
  • Changes for new IPv6 Functionality
  • Moving IPv4 Broadcast to IPv6

Please Contact Your ROI Representative to Discuss Course Tailoring!