IPv6详解(卷2):高级协议实现(英文版)

1 IPv6 Unicast Routing Protocols
1.1 Introduction
1.2 Overview of Routing Concepts
1.2 Overview of Vector-based Algorithms and Link-StateAlgorithm
1.3.1 Distance-Vector Algorithm
1.3.2 Path-Vector Algorithm
1.3.3 Link-State Algorithm
1.4 Introduction to RIPng
1.4.1 RIPng Message Formats
1.4.2 RIPng Operation
1.4.3 Problems with RIPng
1.5 Introduction to BGP4+
1.5.1 BGP4+ Operation
1.5.2 BGP4+ Messages
1.5.3 Path Attributes
1.5.4 IPv6 Extensions for BGP4+
1.5.5 BGP4+ Route Selection Process
1.6 Introduction to OSPFv2
1.6.1 Router Adjacency and LSDB Synchronization
1.6.2 Area Types and Router Classification
1.6.3 Link State Advertisement and LSA Types
1.6.4 LSA Formats
1.6.5 OSPF Tree Construction and Route Computation
1.7 Code Introduction
1.8 IPv6 Routing Table in the BSD Kernel
1.8.1 Scope Zone Representation in the RoutingTable
1.9 Routing API
1.9.1 Routing Sockets
1.9.2 Dumping Routing Table via sysctl()
1.10 Overview of route6d Daemon
1.11 Common Data Structures, Routines and Global Variables
1.11.1 Structures for RIPng Messages
1.11.2 route6ds Routing Table
1.11.3 Structures for Local Interfaces
1.11.4 route6d Route Filter Entry
1.11.5 Subroutines and Global Variables
1.12 Interface Configuration
1.12.1 ifconfig() Function
1.12.2 ifconfig1() Function
1.12 RIPng Protocol Operation
1.13.1 sendrequest() Function
1.13.2 riprecv() Function
1.13.3 riprequest() Function
1.13.4 ripsend() Function
1.13.5 ripalarm() Function
1.14 Routing Operation Using route6d
1.14.1 A Leaf Network
1.14.2 A Simple Loop Network
1.14.3 A Hierarchical Network
2 IPv6 Multicasting
2.1 Introduction
2.2 IPv6 Multicast Address to Layer-2 Multicast AddressMapping
2.2 Multicast Listener Discovery Protocol
2.3.1 MLD Protocol Message Format
2.3.2 Router Alert Option
2.3.3 Source Address Selection
2.3.4 Destination Address Selection
2.3.5 MLD Querier
2.3.6 Operational Variables
2.3.7 MLD Join Process
2.3.8 MLD Leave Process
2.4 Multicast Routing Fundamentals
2.4.1 Reverse Path Forwarding
2.4.2 Multicast Routing Models
2.4.3 Protocol Independent Multicast
2.4.4 IPv6 Specific Issues about PIM
2.4.5 IPv6 Multicast Future-MLDv2 and SSM
2.5 Code Introduction
2.6 MLD Implementation
2.6.1 Types and Structures
2.6.2 mld6_init() Function
2.6.3 Joining a Group: mld6_start_listening()Function
2.6.4 Leaving a Group: mld6_stop_listening()Function
2.6.5 Input Processing: mld6_input() Function
2.6.6 mld6_fasttimeo() Function
2.6.7 mld6_sendpkt() Function
2.6.8 mld_allocbuf() Function
2.7 IPv6 Multicast Interface: mif6{} Structure
2.8 IPv6 Multicast Routing API
2.8.1 ip6_mrouter_set() Function
2.8.2 ip6_mrouter_init() Function
2.8.3 ip6_mrouter_get() Function
2.8.4 set_pim6() Function
2.8.5 add_m6if() Function
2.8.6 del_m6if() Function
2.8.7 ip6_mrouter_done() Function
2.8.8 mrt6_ioctl() Function
2.8.9 get_mif6_cnt() Function
2.9 IPv6 Multicast Forwarding Cache
2.9.1 add_m6fc() Function
2.9.2 del_m6fc() Function
2.9.3 expire_upcalls() Function
2.9.4 get_sg_cnt() Function
2.10 IPv6 Multicast Forwarding
2.10.1 ip6_mforward() Function
2.10.2 ip6_mdq() Function
2.10.3 phyint_send() Function
2.10.4 register_send() Function
2.10.5 socket_send() Function
2.10.6 pim6_input() Function
2.11 IPv6 Multicast Operation
2.11.1 ifmcstat Command
2.11.2 Enable IPv6 Multicast Routing
2.11.3 pim6dd and pim6sd Routing Daemons
2.11.4 pim6stat Output
2.11.5 netstat Command
3 DNS for IPv6
3.1 Introduction
3.2 Basics of DNS Definitions and Protocols
3.2.1 DNS, Domains, and Zones
3.2.2 Resource Records and Zone Files
3.2.3 DNS Transaction and Packet Format
3.2.4 Name Resolution and Caching
3.2 IPv6-Related Topics about DNS
3.3.1 AAAA Resource Record
3.3.2 DNS Reverse Tree for IPv6
3.3.3 IPv6 Transport for DNS
3.3.4 Packet Size Issue and EDNS0
3.3.5 Misbehaving DNS Servers against AAAA
3.3.6 Obsolete Standards
3.4 Implementation of IPv6 DNS Resolver
3.4.1 _dns_getaddrinfo() Function
3.4.2 getanswer() Function
3.4.3 res_queryN() Function
3.4.4 Resolver State Structure
3.4.5 res_init() Function
3.4.6 res_send() Function
3.4.7 IPv6 Reverse Lookup: _dns_ghbyaddr()Function
3.5 IPv6 DNS Operation with BIND
3.5.1 Overview of BIND9
3.5.2 Getting BIND9
3.5.3 Building and Installing BIND9
3.5.4 Configuring BIND9 for IPv6 Operation
3.5.5 Implementation-Specific Notes
3.5.6 Complete Configuration Example
3.5.7 dig and host Utilities
4 DHCPv6
4.1 Introduction
4.2 Overview of the DHCPv6 Protocol
4.2.1 Cases for DHCPv6
4.2.2 Definitions about DHCPv6
4.2.3 DHCPv6 Message Exchanges
4.2.4 Summary of DHCPv6 Options
4.2.5 Interaction with Neighbor Discovery
4.2.6 Comparison to DHCPv4
4.2 Code Introduction
4.3.1 Common Data Structures and Routines
4.4 Client Implementation
4.4.1 Client-Specific Data Structures
4.4.2 client6_mainloop() Function
4.4.3 client6_timo() Function
4.4.4 client6_send() Function
4.4.5 client6_recv() Function
4.4.6 client6_recvadvert() Function
4.4.7 client6_recvreply() Function
4.4.8 Processing Identity Association
4.4.9 update_ia() Function
4.4.10 update_address() Function
4.4.11 reestablish_ia() Function
4.4.12 ia_timo() Function
4.4.12 Release Resources
4.5 Server Implementation
4.5.1 server6_mainloop() Function
4.5.2 server6_recv() Function
4.5.3 process_relayforw() Function
4.5.4 react_solicit() Function
4.5.5 react_request() Function
4.5.6 make_ia() Function
4.5.7 react_renew() Function
4.5.8 react_rebind() Function
4.5.9 binding_time() Function
4.5.10 react_release() Function
4.5.11 react_informreq() Function
4.5.12 server6_send() Function
4.6 Relay Agent Implementation
4.6.1 relay6_loop() Function
4.6.2 relay6_recv() Function
4.6.3 relay_to_server() Function
4.6.4 relay_to_client() Function
4.7 Implementation of DHCPv6 Authentication
4.7.1 Data Structures Related to DHCPv6 Authentication
4.7.2 set_auth() Function
4.7.2 process_auth() Function (Client Side)
4.7.4 process_auth() Function (Server Side)
4.8 DHCPv6 Operation
4.8.1 Building the DHCPv6 Implementation
4.8.2 Configuring a DUID
4.8.3 Configuring the DHCPv6 Server
4.8.4 Configuring the DHCPv6 Client
4.8.5 Configuring the DHCPv6 Relay Agent
4.8.6 Configuring DHCPv6 Authentication
4.8.7 Configuring Control Command Keys
4.8.8 Operation of DHCPv6 Services
5 Mobile IPv6
5.1 Introduction
5.2 Mobile IPv6 Overview
5.2.1 Types of Nodes
5.2.2 Basic Operation of Mobile IPv6
5.2 Header Extension
5.3.1 Alignment Requirements
5.3.2 Home Address Option
5.3.3 Type 2 Routing Header
5.3.4 Mobility Header
5.3.5 Mobility Options
5.3.6 Neighbor Discovery Messages
5.3.7 ICMPv6 Messages
5.4 Procedure of Mobile IPv6
5.4.1 Protocol Constants and Variables
5.4.2 Home Registration
5.4.3 Bi-directional Tunneling
5.4.4 Intercepting Packets for a Mobile Node
5.4.5 Returning Home
5.5 Route Optimization
5.5.1 Return Routability
5.5.2 Sending Initial Messages
5.5.3 Responding to Initial Messages
5.5.4 Computing a Shared Secret
5.5.5 Verifying Message
5.5.6 Security Considerations
5.5.7 De-Register Binding for Correspondent Nodes
5.5.8 Backward Compatibility
5.6 Movement Detection
5.7 Dynamic Home Agent Address Discovery
5.8 Mobile Prefix Solicitation/Advertisement
5.9 Relationship with IPsec
5.10 Code Introduction
5.10.1 Statistics
5.11 Mobile IPv6 Related Structures
5.11.1 Files
5.11.2 Mobility Header Message-ip6_mh{} Structure
5.11.3 Binding Refresh Request Message-ip6_mh_binding_request{}Structure
5.11.4 Home Test Init Message-ip6_mh_home_test_init{}Structure
5.11.5 Care-of Test Init Message-ip6_mh_careof_test_init{}Structure
5.11.6 Home Test Message-ip6_mh_home_test{}Structure
5.11.7 Care-of Test Message-ip6_mh_careof_test{}Structure
5.11.8 Binding Update Message-ip6_mh_binding_update{}Structure
5.11.9 Binding Acknowledgment Message-ip6_mh_binding_ack{}Structure
5.11.10 Binding Error Message-ip6_mh_binding_error{}Structure
5.11.11 Mobility Option Message Structures
5.11.12 Mobility Option Message-ip6_mh_opt{} Structure
5.11.12 Binding Refresh Advice Option-ip6_mh_opt_refresh_advice{}Structure
5.11.14 Alternate Care-of Address Option-ip6_mh_opt_altcoa{}Structure
5.11.15 Nonce Index Option-ip6_mh_opt_nonce_index{}Structure
5.11.16 Authentication Data Option-ip6_mh_opt_auth_data{}Structure
5.11.17 The Internal Mobility Option-mip6_mobility_options{}Structure
5.11.18 Home Address Option-ip6_opt_home_address{}Structure
5.11.19 Type 2 Routing Header-ip6_rthdr2{} Structure
5.11.20 The Modified Router Advertisement Message-nd_router_advert{}Structure
5.11.21 The Modified Prefix Information Option-nd_opt_prefix_info{}Structure
5.11.22 Advertisement Interval Option-nd_opt_adv_interval{}Structure
5.11.22 Home Agent Information Option-nd_opt_homeagent_info{}Structure
5.11.24 Dynamic Home Agent Address Discovery Request Message-mip6_dhaad_req{} Structure
5.11.25 Dynamic Home Agent Address Discovery Reply Message-mip6_dhaad_rep{} Structure
5.11.26 Mobile Prefix Solicitation Message-mip6_prefix_solicit{}Structure
5.11.27 Mobile Prefix Advertisement Message-mip6_prefix_advert{}Structure
5.11.28 Binding Cache Entry-mip6_bc{} Structure
5.11.29 Binding Update List Entry-mip6_bu{} Structure
5.11.30 Home Agent Entry-mip6_ha{} structure
5.11.31 Prefix Entry-mip6_prefix{} Structure
5.11.32 Home Virtual Interface-hif_softc{} Structure
5.12 Macro and Type Definitions
5.12 Global Variables
5.14 Utility Functions
5.14.1 Files
5.14.2 Creation of IPv6 Header
5.14.3 Checksum Computation
5.15 Common Mobility Header Processing
5.15.1 Files
5.15.2 Mobility Header Input
5.15.3 Generating Binding Error Messages
5.15.4 Rate Limitation of Binding Error Messages
5.15.5 Creation of Binding Error Message
5.15.6 Mobility Header Message Delivery to Raw Sockets
5.16 Home Agent and Correspondent Node
5.16.1 Files
5.16.2 Binding Update Message Input
5.16.3 Binding Cache Entry Management
5.16.4 Mobility Options Processing
5.16.5 Validation of Binding Update Message for CorrespondentNode
5.16.6 Kbm and Authorization Data Computation
5.16.7 Managing Binding Cache Entry as CorrespondentNode
5.16.8 Sending Binding Refresh Request Message
5.16.9 Home Registration Processing
5.16.10 The DAD Procedure
5.16.11 Proxy Neighbor Discovery Control
5.16.12 Home De-Registration Procedure
5.16.13 Sending a Binding Acknowledgment Message
5.16.14 Nonce and Nodekey Management
5.16.15 Receiving a Home Address Option
5.16.16 Sending Packets to Mobile Nodes via Tunnel
5.16.17 Recovery of Temporarily Disabled Proxy Entry
5.16.18 Receiving ICMPv6 Error Messages
5.16.19 Home Agent List Management
5.16.20 Prefix List Management
5.16.21 Sending a Mobile Prefix Advertisement Message
5.16.22 Constructing the Payload
5.17 Mobile Node
5.17.1 Files
5.17.2 Binding Update List Entry Management
5.17.3 Movement Detection
5.17.4 Configuring Home Addresses
5.17.5 Sending a Binding Update Message
5.17.6 Receiving a Binding Acknowledgment Message
5.17.7 Receiving a Type 2 Routing Header
5.17.8 Receiving a Binding Refresh Request Message
5.17.9 Receiving a Binding Error Message
5.17.10 Source Address Selection
5.17.11 Home Agent List Management
5.17.12 Prefix Information Management
5.17.13 Receiving Prefix Information by Router AdvertisementMessages
5.17.14 Sending a Mobile Prefix Solicitation Message
5.17.15 Receiving a Mobile Prefix Advertisement Message
5.17.16 Sending a Dynamic Home Agent Address Discovery RequestMessage
5.17.17 Receiving a Dynamic Home Agent Address Discovery ReplyMessage
5.17.18 Receiving ICMPv6 Error Messages
5.17.19 State Machine
5.17.20 Primary State Machine
5.17.21 Secondary State Machine
5.17.22 Virtual Home Interface
5.17.23 Return Routability and Route Optimization
5.17.24 Route Optimized Communication
5.17.25 Tunnel Control
5.17.26 Receiving Packets from a Tunnel
5.17.27 I/O Control
5.18 Mobile IPv6 Operation
5.18.1 Rebuilding a Kernel with Mobile IPv6 Extension
5.18.2 Rebuilding User Space Programs
5.18.3 IPsec Signal Protection
5.18.4 Configuring Node
5.18.5 Viewing Status Information
5.18.6 Viewing Statistics
5.19 Appendix
5.19.1 The Manual Page of mip6control
6 IPv6 and IP Security
6.1 Introduction
6.2 Authentication Header
6.3 Encapsulating Security Payload
6.4 Transport Mode and Tunnel Mode
6.5 Security Association Database
6.5.1 Security Policy Database
6.5.2 Security Association Database
6.5.3 SAD and SPD Example
6.6 IPsec Traffic Processing
6.7 SPD and SAD Management
6.7.1 Manual Keying and Automatic Keying
6.8 Manual Configuration
6.8.1 Configuration File Format
6.8.2 Examples of Manipulating SP Entries
6.8.3 Examples of Manipulating SA Entries
6.9 Internet Security Association and Key Management Protocol(ISAKMP) Overview
6.9.1 ISAKMP Exchanges
6.9.2 Domain of Interpretation
6.9.3 Internet Key Exchange Protocol
6.10 Racoon Operation
6.10.1 Configuring Racoon
6.10.2 Configuration File Format
6.11 Scenarios
6.11.1 Creating a VPN between 3 Networks
6.11.2 Creating Star Topology VPN
6.11.3 Using Transport Mode IP Security
6.11.4 Connecting to the Server from Public Access Points
References
Index
1.1 Introduction
1.2 Overview of Routing Concepts
1.2 Overview of Vector-based Algorithms and Link-StateAlgorithm
1.3.1 Distance-Vector Algorithm
1.3.2 Path-Vector Algorithm
1.3.3 Link-State Algorithm
1.4 Introduction to RIPng
1.4.1 RIPng Message Formats
1.4.2 RIPng Operation
1.4.3 Problems with RIPng
1.5 Introduction to BGP4+
1.5.1 BGP4+ Operation
1.5.2 BGP4+ Messages
1.5.3 Path Attributes
1.5.4 IPv6 Extensions for BGP4+
1.5.5 BGP4+ Route Selection Process
1.6 Introduction to OSPFv2
1.6.1 Router Adjacency and LSDB Synchronization
1.6.2 Area Types and Router Classification
1.6.3 Link State Advertisement and LSA Types
1.6.4 LSA Formats
1.6.5 OSPF Tree Construction and Route Computation
1.7 Code Introduction
1.8 IPv6 Routing Table in the BSD Kernel
1.8.1 Scope Zone Representation in the RoutingTable
1.9 Routing API
1.9.1 Routing Sockets
1.9.2 Dumping Routing Table via sysctl()
1.10 Overview of route6d Daemon
1.11 Common Data Structures, Routines and Global Variables
1.11.1 Structures for RIPng Messages
1.11.2 route6ds Routing Table
1.11.3 Structures for Local Interfaces
1.11.4 route6d Route Filter Entry
1.11.5 Subroutines and Global Variables
1.12 Interface Configuration
1.12.1 ifconfig() Function
1.12.2 ifconfig1() Function
1.12 RIPng Protocol Operation
1.13.1 sendrequest() Function
1.13.2 riprecv() Function
1.13.3 riprequest() Function
1.13.4 ripsend() Function
1.13.5 ripalarm() Function
1.14 Routing Operation Using route6d
1.14.1 A Leaf Network
1.14.2 A Simple Loop Network
1.14.3 A Hierarchical Network
2 IPv6 Multicasting
2.1 Introduction
2.2 IPv6 Multicast Address to Layer-2 Multicast AddressMapping
2.2 Multicast Listener Discovery Protocol
2.3.1 MLD Protocol Message Format
2.3.2 Router Alert Option
2.3.3 Source Address Selection
2.3.4 Destination Address Selection
2.3.5 MLD Querier
2.3.6 Operational Variables
2.3.7 MLD Join Process
2.3.8 MLD Leave Process
2.4 Multicast Routing Fundamentals
2.4.1 Reverse Path Forwarding
2.4.2 Multicast Routing Models
2.4.3 Protocol Independent Multicast
2.4.4 IPv6 Specific Issues about PIM
2.4.5 IPv6 Multicast Future-MLDv2 and SSM
2.5 Code Introduction
2.6 MLD Implementation
2.6.1 Types and Structures
2.6.2 mld6_init() Function
2.6.3 Joining a Group: mld6_start_listening()Function
2.6.4 Leaving a Group: mld6_stop_listening()Function
2.6.5 Input Processing: mld6_input() Function
2.6.6 mld6_fasttimeo() Function
2.6.7 mld6_sendpkt() Function
2.6.8 mld_allocbuf() Function
2.7 IPv6 Multicast Interface: mif6{} Structure
2.8 IPv6 Multicast Routing API
2.8.1 ip6_mrouter_set() Function
2.8.2 ip6_mrouter_init() Function
2.8.3 ip6_mrouter_get() Function
2.8.4 set_pim6() Function
2.8.5 add_m6if() Function
2.8.6 del_m6if() Function
2.8.7 ip6_mrouter_done() Function
2.8.8 mrt6_ioctl() Function
2.8.9 get_mif6_cnt() Function
2.9 IPv6 Multicast Forwarding Cache
2.9.1 add_m6fc() Function
2.9.2 del_m6fc() Function
2.9.3 expire_upcalls() Function
2.9.4 get_sg_cnt() Function
2.10 IPv6 Multicast Forwarding
2.10.1 ip6_mforward() Function
2.10.2 ip6_mdq() Function
2.10.3 phyint_send() Function
2.10.4 register_send() Function
2.10.5 socket_send() Function
2.10.6 pim6_input() Function
2.11 IPv6 Multicast Operation
2.11.1 ifmcstat Command
2.11.2 Enable IPv6 Multicast Routing
2.11.3 pim6dd and pim6sd Routing Daemons
2.11.4 pim6stat Output
2.11.5 netstat Command
3 DNS for IPv6
3.1 Introduction
3.2 Basics of DNS Definitions and Protocols
3.2.1 DNS, Domains, and Zones
3.2.2 Resource Records and Zone Files
3.2.3 DNS Transaction and Packet Format
3.2.4 Name Resolution and Caching
3.2 IPv6-Related Topics about DNS
3.3.1 AAAA Resource Record
3.3.2 DNS Reverse Tree for IPv6
3.3.3 IPv6 Transport for DNS
3.3.4 Packet Size Issue and EDNS0
3.3.5 Misbehaving DNS Servers against AAAA
3.3.6 Obsolete Standards
3.4 Implementation of IPv6 DNS Resolver
3.4.1 _dns_getaddrinfo() Function
3.4.2 getanswer() Function
3.4.3 res_queryN() Function
3.4.4 Resolver State Structure
3.4.5 res_init() Function
3.4.6 res_send() Function
3.4.7 IPv6 Reverse Lookup: _dns_ghbyaddr()Function
3.5 IPv6 DNS Operation with BIND
3.5.1 Overview of BIND9
3.5.2 Getting BIND9
3.5.3 Building and Installing BIND9
3.5.4 Configuring BIND9 for IPv6 Operation
3.5.5 Implementation-Specific Notes
3.5.6 Complete Configuration Example
3.5.7 dig and host Utilities
4 DHCPv6
4.1 Introduction
4.2 Overview of the DHCPv6 Protocol
4.2.1 Cases for DHCPv6
4.2.2 Definitions about DHCPv6
4.2.3 DHCPv6 Message Exchanges
4.2.4 Summary of DHCPv6 Options
4.2.5 Interaction with Neighbor Discovery
4.2.6 Comparison to DHCPv4
4.2 Code Introduction
4.3.1 Common Data Structures and Routines
4.4 Client Implementation
4.4.1 Client-Specific Data Structures
4.4.2 client6_mainloop() Function
4.4.3 client6_timo() Function
4.4.4 client6_send() Function
4.4.5 client6_recv() Function
4.4.6 client6_recvadvert() Function
4.4.7 client6_recvreply() Function
4.4.8 Processing Identity Association
4.4.9 update_ia() Function
4.4.10 update_address() Function
4.4.11 reestablish_ia() Function
4.4.12 ia_timo() Function
4.4.12 Release Resources
4.5 Server Implementation
4.5.1 server6_mainloop() Function
4.5.2 server6_recv() Function
4.5.3 process_relayforw() Function
4.5.4 react_solicit() Function
4.5.5 react_request() Function
4.5.6 make_ia() Function
4.5.7 react_renew() Function
4.5.8 react_rebind() Function
4.5.9 binding_time() Function
4.5.10 react_release() Function
4.5.11 react_informreq() Function
4.5.12 server6_send() Function
4.6 Relay Agent Implementation
4.6.1 relay6_loop() Function
4.6.2 relay6_recv() Function
4.6.3 relay_to_server() Function
4.6.4 relay_to_client() Function
4.7 Implementation of DHCPv6 Authentication
4.7.1 Data Structures Related to DHCPv6 Authentication
4.7.2 set_auth() Function
4.7.2 process_auth() Function (Client Side)
4.7.4 process_auth() Function (Server Side)
4.8 DHCPv6 Operation
4.8.1 Building the DHCPv6 Implementation
4.8.2 Configuring a DUID
4.8.3 Configuring the DHCPv6 Server
4.8.4 Configuring the DHCPv6 Client
4.8.5 Configuring the DHCPv6 Relay Agent
4.8.6 Configuring DHCPv6 Authentication
4.8.7 Configuring Control Command Keys
4.8.8 Operation of DHCPv6 Services
5 Mobile IPv6
5.1 Introduction
5.2 Mobile IPv6 Overview
5.2.1 Types of Nodes
5.2.2 Basic Operation of Mobile IPv6
5.2 Header Extension
5.3.1 Alignment Requirements
5.3.2 Home Address Option
5.3.3 Type 2 Routing Header
5.3.4 Mobility Header
5.3.5 Mobility Options
5.3.6 Neighbor Discovery Messages
5.3.7 ICMPv6 Messages
5.4 Procedure of Mobile IPv6
5.4.1 Protocol Constants and Variables
5.4.2 Home Registration
5.4.3 Bi-directional Tunneling
5.4.4 Intercepting Packets for a Mobile Node
5.4.5 Returning Home
5.5 Route Optimization
5.5.1 Return Routability
5.5.2 Sending Initial Messages
5.5.3 Responding to Initial Messages
5.5.4 Computing a Shared Secret
5.5.5 Verifying Message
5.5.6 Security Considerations
5.5.7 De-Register Binding for Correspondent Nodes
5.5.8 Backward Compatibility
5.6 Movement Detection
5.7 Dynamic Home Agent Address Discovery
5.8 Mobile Prefix Solicitation/Advertisement
5.9 Relationship with IPsec
5.10 Code Introduction
5.10.1 Statistics
5.11 Mobile IPv6 Related Structures
5.11.1 Files
5.11.2 Mobility Header Message-ip6_mh{} Structure
5.11.3 Binding Refresh Request Message-ip6_mh_binding_request{}Structure
5.11.4 Home Test Init Message-ip6_mh_home_test_init{}Structure
5.11.5 Care-of Test Init Message-ip6_mh_careof_test_init{}Structure
5.11.6 Home Test Message-ip6_mh_home_test{}Structure
5.11.7 Care-of Test Message-ip6_mh_careof_test{}Structure
5.11.8 Binding Update Message-ip6_mh_binding_update{}Structure
5.11.9 Binding Acknowledgment Message-ip6_mh_binding_ack{}Structure
5.11.10 Binding Error Message-ip6_mh_binding_error{}Structure
5.11.11 Mobility Option Message Structures
5.11.12 Mobility Option Message-ip6_mh_opt{} Structure
5.11.12 Binding Refresh Advice Option-ip6_mh_opt_refresh_advice{}Structure
5.11.14 Alternate Care-of Address Option-ip6_mh_opt_altcoa{}Structure
5.11.15 Nonce Index Option-ip6_mh_opt_nonce_index{}Structure
5.11.16 Authentication Data Option-ip6_mh_opt_auth_data{}Structure
5.11.17 The Internal Mobility Option-mip6_mobility_options{}Structure
5.11.18 Home Address Option-ip6_opt_home_address{}Structure
5.11.19 Type 2 Routing Header-ip6_rthdr2{} Structure
5.11.20 The Modified Router Advertisement Message-nd_router_advert{}Structure
5.11.21 The Modified Prefix Information Option-nd_opt_prefix_info{}Structure
5.11.22 Advertisement Interval Option-nd_opt_adv_interval{}Structure
5.11.22 Home Agent Information Option-nd_opt_homeagent_info{}Structure
5.11.24 Dynamic Home Agent Address Discovery Request Message-mip6_dhaad_req{} Structure
5.11.25 Dynamic Home Agent Address Discovery Reply Message-mip6_dhaad_rep{} Structure
5.11.26 Mobile Prefix Solicitation Message-mip6_prefix_solicit{}Structure
5.11.27 Mobile Prefix Advertisement Message-mip6_prefix_advert{}Structure
5.11.28 Binding Cache Entry-mip6_bc{} Structure
5.11.29 Binding Update List Entry-mip6_bu{} Structure
5.11.30 Home Agent Entry-mip6_ha{} structure
5.11.31 Prefix Entry-mip6_prefix{} Structure
5.11.32 Home Virtual Interface-hif_softc{} Structure
5.12 Macro and Type Definitions
5.12 Global Variables
5.14 Utility Functions
5.14.1 Files
5.14.2 Creation of IPv6 Header
5.14.3 Checksum Computation
5.15 Common Mobility Header Processing
5.15.1 Files
5.15.2 Mobility Header Input
5.15.3 Generating Binding Error Messages
5.15.4 Rate Limitation of Binding Error Messages
5.15.5 Creation of Binding Error Message
5.15.6 Mobility Header Message Delivery to Raw Sockets
5.16 Home Agent and Correspondent Node
5.16.1 Files
5.16.2 Binding Update Message Input
5.16.3 Binding Cache Entry Management
5.16.4 Mobility Options Processing
5.16.5 Validation of Binding Update Message for CorrespondentNode
5.16.6 Kbm and Authorization Data Computation
5.16.7 Managing Binding Cache Entry as CorrespondentNode
5.16.8 Sending Binding Refresh Request Message
5.16.9 Home Registration Processing
5.16.10 The DAD Procedure
5.16.11 Proxy Neighbor Discovery Control
5.16.12 Home De-Registration Procedure
5.16.13 Sending a Binding Acknowledgment Message
5.16.14 Nonce and Nodekey Management
5.16.15 Receiving a Home Address Option
5.16.16 Sending Packets to Mobile Nodes via Tunnel
5.16.17 Recovery of Temporarily Disabled Proxy Entry
5.16.18 Receiving ICMPv6 Error Messages
5.16.19 Home Agent List Management
5.16.20 Prefix List Management
5.16.21 Sending a Mobile Prefix Advertisement Message
5.16.22 Constructing the Payload
5.17 Mobile Node
5.17.1 Files
5.17.2 Binding Update List Entry Management
5.17.3 Movement Detection
5.17.4 Configuring Home Addresses
5.17.5 Sending a Binding Update Message
5.17.6 Receiving a Binding Acknowledgment Message
5.17.7 Receiving a Type 2 Routing Header
5.17.8 Receiving a Binding Refresh Request Message
5.17.9 Receiving a Binding Error Message
5.17.10 Source Address Selection
5.17.11 Home Agent List Management
5.17.12 Prefix Information Management
5.17.13 Receiving Prefix Information by Router AdvertisementMessages
5.17.14 Sending a Mobile Prefix Solicitation Message
5.17.15 Receiving a Mobile Prefix Advertisement Message
5.17.16 Sending a Dynamic Home Agent Address Discovery RequestMessage
5.17.17 Receiving a Dynamic Home Agent Address Discovery ReplyMessage
5.17.18 Receiving ICMPv6 Error Messages
5.17.19 State Machine
5.17.20 Primary State Machine
5.17.21 Secondary State Machine
5.17.22 Virtual Home Interface
5.17.23 Return Routability and Route Optimization
5.17.24 Route Optimized Communication
5.17.25 Tunnel Control
5.17.26 Receiving Packets from a Tunnel
5.17.27 I/O Control
5.18 Mobile IPv6 Operation
5.18.1 Rebuilding a Kernel with Mobile IPv6 Extension
5.18.2 Rebuilding User Space Programs
5.18.3 IPsec Signal Protection
5.18.4 Configuring Node
5.18.5 Viewing Status Information
5.18.6 Viewing Statistics
5.19 Appendix
5.19.1 The Manual Page of mip6control
6 IPv6 and IP Security
6.1 Introduction
6.2 Authentication Header
6.3 Encapsulating Security Payload
6.4 Transport Mode and Tunnel Mode
6.5 Security Association Database
6.5.1 Security Policy Database
6.5.2 Security Association Database
6.5.3 SAD and SPD Example
6.6 IPsec Traffic Processing
6.7 SPD and SAD Management
6.7.1 Manual Keying and Automatic Keying
6.8 Manual Configuration
6.8.1 Configuration File Format
6.8.2 Examples of Manipulating SP Entries
6.8.3 Examples of Manipulating SA Entries
6.9 Internet Security Association and Key Management Protocol(ISAKMP) Overview
6.9.1 ISAKMP Exchanges
6.9.2 Domain of Interpretation
6.9.3 Internet Key Exchange Protocol
6.10 Racoon Operation
6.10.1 Configuring Racoon
6.10.2 Configuration File Format
6.11 Scenarios
6.11.1 Creating a VPN between 3 Networks
6.11.2 Creating Star Topology VPN
6.11.3 Using Transport Mode IP Security
6.11.4 Connecting to the Server from Public Access Points
References
Index
Blue Coat系统公司资深架构师,负责领导下一代支持IPv6的安全代理应用系统的设计和开发工作。他曾在风河系统公司工作8年。是风河嵌入式IPv6产品的首席架构师。他拥有多项美国专利,并著有Real-TimeConcepts for Embedded Systems等畅销书。他还是FreeBSD操作系统项目活跃的开发者。
《IPv6详解(卷2):高级协议实现(英文版)》全面讲解IPv6及相关协议实现的事实标准KAME,揭示了KAME IPv6协议栈的所有细节,对每行代码到底做了什么,以及为什么要这样设计都进行了解释。全书共分6章,分别介绍IPv6单播路由选择协议、IPv6多播技术、IPv6的DNS DHCPv6、移动IPv6、IPv6与IP安全。书中每章都包含两个主要部分,第一部分是相关规范的综述,第二部分则逐行代码地描述和分析实际的实现。
《IPv6详解(卷2):高级协议实现(英文版)》是IPv6的权威参考书,适合网络设计和开发人员阅读。此外,《IPv6详解(卷2):高级协议实现(英文版)》还适合作为高校相关专业网络课程的教学参考书。
《IPv6详解(卷2):高级协议实现(英文版)》是IPv6的权威参考书,适合网络设计和开发人员阅读。此外,《IPv6详解(卷2):高级协议实现(英文版)》还适合作为高校相关专业网络课程的教学参考书。
比价列表
公众号、微信群

微信公众号

实时获取购书优惠