Mobile IPv6 has become the key enabling technology for mobile data and multimedia services and devices worldwide (i.e., cellular systems, VoIP handovers over LAN, multi-access network handovers, location privacy, enterprise mobile networking, etc.). This book covers the IPv6 host mobility protocol known as "mobile IPv6" and begins with a basic description of mobile IPv6 and then details protocol specifications and data structures as well as actual implementation. A sample configuration for a real Mobile IPv6 operation is provided at the end of the book. Source code will be downloadable form a companion website. - Provides a detailed introduction to the IETF Mobile IPv6 standard - Includes extensive line-by-line code sets with meticulous explanations of their implementation - Numerous diagrams and illustrations to help in visualizing the implementation Title Page 4 Copyright Page 5 Contents 6 About the Authors 12 Chapter 1. Introduction 14 1.1 History of IP Mobility 15 1.2 Benefit of IP Mobility 16 1.3 Supplemental Technologies of Mobile IPv6 18 1.4 Coverage of this Book 29 Chapter 2. Mobile IPv6 Overview 30 2.1 Types of Nodes 31 2.2 Basic Operation of Mobile IPv6 32 Chapter 3. Header Extension 38 3.1 Alignment Requirements 39 3.2 Home Address Option 39 3.3 Type 2 Routing Header 40 3.4 Mobility Header 41 3.5 Mobility Options 49 3.6 Neighbor Discovery Messages 52 3.7 ICMPv6 Messages 55 Chapter 4. Procedure of Mobile IPv6 60 4.1 Protocol Constants and Variables 60 4.2 Home Registration 60 4.3 Bidirectional Tunneling 64 4.4 Intercepting Packets for a Mobile Node 67 4.5 Returning Home 67 Chapter 5. Route Optimization 70 5.1 Return Routability 71 5.2 Sending Initial Messages 71 5.3 Responding to Initial Messages 72 5.4 Computing a Shared Secret 74 5.5 Verifying Message 75 5.6 Security Considerations 77 5.7 Deregister Binding for Correspondent Nodes 77 5.8 Backward Compatibility 77 5.9 Movement Detection 79 Chapter 6. Dynamic Home Agent Address Discovery 80 Chapter 7. Mobile Prefix Solicitation/Advertisement 84 Chapter 8. Relationship with IPsec 88 Chapter 9. Code Introduction 92 9.1 Statistics 92 Chapter 10. Mobile IPv6-related Structures 96 10.1 Files 96 10.2 Mobility Header Message: ip6_mh{} Structure 97 10.3 Binding Refresh Request Message: ip6_mh_binding_request{} Structure 98 10.4 Home Test Init Message: ip6_mh_home_test_init{} Structure 99 10.5 Care-of Test Init Message: ip6_mh_careof_test_init{} Structure 100 10.6 Home Test Message: ip6_mh_home_test{} Structure 100 10.7 Care-of Test Message: ip6_mh_careof_test{} Structure 101 10.8 Binding Update Message: ip6_mh_binding_update{} Structure 102 10.9 Binding Acknowledgment Message: ip6_mh_binding_ack{} Structure 103 10.10 Binding Error Message: ip6_mh_binding_error{} Structure 105 10.11 Mobility Option Message Structures 105 10.12 Mobility Option Message: ip6_mh_opt{} Structure 106 10.13 Binding Refresh Advice Option: ip6_mh_opt_refresh_advice{} Structure 106 10.14 Alternate Care-of Address Option: ip6_mh_opt_altcoa{} Structure 107 10.15 Nonce Index Option: ip6_mh_opt_nonce_index{} Structure 107 10.16 Authentication Data Option: ip6_mh_opt_auth_data{} Structure 108 10.17 The Internal Mobility Option: mip6_mobility_options{} Structure 108 10.18 Home Address Option: ip6_opt_home_address{} Structure 109 10.19 Type 2 Routing Header: ip6_rthdr2{} Structure 109 10.20 The Modified Router Advertisement Message: nd_router_advert{} Structure 110 10.21 The Modified Prefix Information Option: nd_opt_prefix_info{} Structure 111 10.22 Advertisement Interval Option: nd_opt_adv_interval{} Structure 112 10.23 Home Agent Information Option: nd_opt_homeagent_info{} Structure 112 10.24 Dynamic Home Agent Address Discovery Request Message: mip6_dhaad_req{} Structure 112 10.25 Dynamic Home Agent Address Discovery Reply Message: mip6_dhaad_rep{} Structure 113 10.26 Mobile Prefix Solicitation Message: mip6_prefix_solicit{} Structure 114 10.27 Mobile Prefix Advertisement Message: mip6_prefix_advert{} Structure 114 10.28 Binding Cache Entry: mip6_bc{} Structure 115 10.29 Binding Update List Entry: mip6_bu{} Structure 117 10.30 Home Agent Entry: mip6_ha{} Structure 119 10.31 Prefix Entry: mip6_prefix{} Structure 120 10.32 Home Virtual Interface: hif_softc{} Structure 121 Chapter 11. Macro and Type Definitions 126 Chapter 12. Utility Functions 130 12.1 Global Variables 130 12.2 Files 130 12.3 Creation of IPv6 Header 130 12.4 Checksum Computation 133 Chapter 13. Common Mobility Header Processing 136 13.1 Files 136 13.2 Mobility Header Input 136 13.3 Generating Binding Error Messages 142 13.4 Rate Limitation of Binding Error Messages 143 13.5 Creation of Binding Error Message 144 13.6 Mobility Header Message Delivery to Raw Sockets 146 Chapter 14.Home Agent and Correspondent Node 150 14.1 Files 150 14.2 Binding Update Message Input 151 14.3 Binding Cache Entry Management 159 14.4 Mobility Options Processing 169 14.5 Validation of Binding Update Message for Correspondent Node 170 14.6 Kbm and Authorization Data Computation 172 14.7 Managing Binding Cache Entry as Correspondent Node 176 14.8 Sending Binding Refresh Request Message 180 14.9 Home Registration Processing 183 14.10 The DAD Procedure 189 14.11 Proxy Neighbor Discovery Control 196 14.12 Home Deregistration Procedure 201 14.13 Sending a Binding Acknowledgment Message 203 14.14 Nonce and Nodekey Management 210 14.15 Receiving a Home Address Option 214 14.16 Sending Packets to Mobile Nodes via Tunnel 221 14.17 Recovery of Temporarily Disabled Proxy Entry 225 14.18 Receiving ICMPv6 Error Messages 227 14.19 Home Agent List Management 231 14.20 Prefix List Management 244 14.21 Sending a Mobile Prefix Advertisement Message 245 14.22 Constructing the Payload 247 Chapter 15. Mobile Node 250 15.1 Files 250 15.2 Binding Update List Entry Management 250 15.3 Movement Detection 260 15.4 Configuring Home Addresses 272 15.5 Sending a Binding Update Message 281 15.6 Receiving a Binding Acknowledgment Message 296 15.7 Receiving a Type 2 Routing Header 309 15.8 Receiving a Binding Refresh Request Message 313 15.9 Receiving a Binding Error Message 314 15.10 Source Address Selection 317 15.11 Home Agent List Management 322 15.12 Prefix Information Management 331 15.13 Receiving Prefix Information by Router Advertisement Messages 343 15.14 Sending a Mobile Prefix Solicitation Message 351 15.15 Receiving a Mobile Prefix Advertisement Message 354 15.16 Sending a Dynamic Home Agent Address Discovery Request Message 362 15.17 Receiving a Dynamic Home Agent Address Discovery Reply Message 366 15.18 Receiving ICMPv6 Error Messages 370 15.19 State Machine 373 15.20 Primary State Machine 375 15.21 Secondary State Machine 394 15.22 Virtual Home Interface 400 15.23 Return Routability and Route Optimization 413 15.24 Route-Optimized Communication 430 15.25 Tunnel Control 439 15.26 Receiving Packets from a Tunnel 443 15.27 I/O Control 444 Chapter 16. Mobile IPv6 Operation 448 16.1 Rebuilding a Kernel with Mobile IPv6 Extension 448 16.2 Rebuilding User Space Programs 449 16.3 IPsec Signal Protection 450 16.4 Configuring Node 453 16.5 Viewing Status Information 455 16.6 Viewing Statistics 456 Appendix: The Manual Page of mip6control 458 A.1 Name 458 A.2 Synopsis 458 A.3 Description 458 A.4 Examples 459 A.5 History 460 A.6 Bugs 460 References 462 Index 464
Mobile IPv6 has become the key enabling technology for mobile data and multimedia services and devices worldwide (i.e., cellular systems, VoIP handovers over LAN, multi-access network handovers, location privacy, enterprise mobile networking, etc.).
This book covers the IPv6 host mobility protocol known as "mobile IPv6" and begins with a basic description of mobile IPv6 and then details protocol specifications and data structures as well as actual implementation. A sample configuration for a real Mobile IPv6 operation is provided at the end of the book. Source code will be downloadable from a companion website.
- Provides a detailed introduction to the IETF Mobile IPv6 standard
- Includes extensive line-by-line code sets with meticulous explanations of their implementation
- Numerous diagrams and illustrations to help in visualizing the implementation