《IPv6通訊協定中文編譯》
未來的數年,IPv6的時代即將來臨
韓特野
IPv6是internet的網路層通訊協定,在未來的數年即將逐漸取代現有的IPv4。鑒於IPv6乃核心技術 ,通信業者必須具備的基本知識,筆者根據相關的RFCs,編譯這本IPv6中文書籍,希望能對IPv6相關的從業人員有所助益。
本書盡可能涵蓋RFCs所有重要內容,深具參考性以及實用性,不僅提供IPv6入門者或負責驗證工作的工程人員必要的訊息,凡從事開發工作的軟體工程人員亦適合以本書為參考資料,甚至不用研讀RFCs,亦能事半功倍掌握開發工作。
為了力求可讀性以及流暢性,本書盡量保留所有相關術語以及專有名詞的原文。筆者以為將術語及專有名詞翻譯成中文顯得畫蛇添足,徒增困擾而已。除了降低可讀性以外,看不到任何助益。隨著個人電腦以及internet的普及,全世界的交流無遠弗屆,語言的融合無時無刻不在進行著,不少外來的名詞原文早已不知不覺中融入到我們的生活當中。因此,為了順應語言融合的自然趨勢,筆者強烈建議讀者應該養成習慣:勿將專有名詞中文化,而是應該把專有名詞的原文融入中文。譬如:當跟同事討論技術上的問題,或者跟客戶訂定技術規格時,所使用的術語以及專有名詞必定是原文而非中文。
研讀本書不需要具備IPv4基本認識,畢竟IPv4即將走入歷史而被淡忘,熟悉IPv6的協定規範才是主要目標。除了關鍵部分,本書不討論此二者之間的差異。
本書的章節編排有其順序關聯性。為了能前後連貫,依序研讀是最佳的方式。尤其在未熟悉前面的章節之前,切勿嘗試研讀最末章節〈Mobile IPv6〉。
本書除了介紹IPv6相關通訊協定的基本行為操作,對於較難理解的協定內容盡可能添加範例或註解,引導讀者更深入透析IPv6相關的通訊協定。
聯繫筆者方式:電子信箱 hanteye@yahoo.com.tw
IPv6(IP版本6)是互聯網通訊協定(Internet Protocol,簡稱IP)的新版本,它被設計來取代IPv4,並且針對當初設計IPv4時沒有考慮到的問題做了以下改進:
擴展位址空間 IPv6將IP位址長度從32 bits擴展到128 bits,如此龐大的位址空間,除了確保IP位址不再有耗盡之慮,最主要目的是支持更多層的階層式路由架構,並且提供更簡單的自動組態配置(IP位址、MTU值等)。在multicast address中新增“scope”欄位來提升multicast routing的可擴展性。定義一個新的位址類型稱為“anycast address”,用來發送封包到一個接收群組中路由最近的一個node。
簡化IP表頭格式 IPv6刪除了IPv4表頭中不必要的欄位,並且將選項欄位移到擴展表頭,降低router轉送IP封包的處理時間。
支援更佳的擴充性 更改IP表頭的某些選項, 使得router轉送封包更有效率,並且提供未來更大的靈活度來引入新的選項或新的擴展表頭。
提供更好的QoS 在IP表頭添加新的標籤欄位稱為“Flow Label”,讓封包發送者能要求特殊的流量處理,譬如real-time服務。
認證和保密功能 支持認證、資料完整性及保密性。
目錄
在未來的數年,IPv6的時代即將來臨 1
IPV6 簡介 12
專有術語 13
IPV6位址 14
IPV6位址語法 16
IPV6 ADDRESS PREFIX 16
位址類型表示法 17
IPV6的位址類型 18
Unicast Address(單點傳送) 18
IPv6 Multicast Addresses(多點傳送) 22
IPv6 Anycast Addresses(任一傳送) 28
SOLICITED-NODE ADDRESS(請求節點位址) 30
NODE需要配置的IPV6位址 31
IPV6 INTERFACE IDENTIFIERS 32
以EUI-64配置 Interface ID 33
如何隨機產生Interface ID 36
IPV6位址的SCOPE架構 38
Address Scope 38
Scope Zone 39
Zone Indices 41
發送封包時的基本行為操作 45
接收封包時的基本行為操作 45
轉送封包的基本行為操作 46
文字表示法 47
STRUCTURE OF AN IPV6 PACKET 51
IPV6 HEADER 52
IPV6 EXTENSION HEADERS(擴展表頭) 55
擴展表頭順序 56
OPTIONS(選項) 57
HOP-BY-HOP OPTIONS HEADER 60
DESTINATION OPTIONS HEADER 61
ROUTING HEADER 62
FRAGMENT HEADER 65
IPv6 Fragmentation Process 封包切割處理 66
IPv6 Reassembly Process 封包重組處理 68
AUTHENTICATION HEADER(認證表頭) 69
ENCAPSULATING SECURITY PAYLOAD HEADER 69
PATH MTU DISCOVERY 70
IPV6 PACKET SIZE 71
ICMPV6 72
ICMPV6 訊息格式 73
ICMPV6 ERROR MESSAGES 73
Destination Unreachable 74
Packet Too Big 75
Time Exceeded 76
Parameter Problem 77
ICMPV6 INFORMATIONAL MESSAGES 78
Echo Request 78
Echo Reply 79
NEIGHBOR DISCOVERY 80
NEIGHBOR DISCOVERY OPTIONS 85
Source Link-Layer Address Option 86
Target Link-Layer Address Option 86
Prefix Information Option 87
Redirected Header Option 89
MTU Option 90
Route Information Option 91
Advertisement Interval Option 92
Home Agent Information Option 92
NEIGHBOR DISCOVERY MESSAGE FORMAT 93
Router Solicitation Message 93
Router Advertisement Message 94
Neighbor Solicitation Message 97
Neighbor Advertisement Message 98
Redirect Message 100
CONCEPTUAL HOST DATA STRUCTURES 102
Conceptual Sending Algorithm 104
Host - 如何選擇Default Router 108
如何決定on-link Prefix 109
清除Cache中陳舊的項目 111
ROUTER AND PREFIX DISCOVERY 112
信息驗證 - RS Message 112
信息驗證 - RA Message 113
Router的相關規範 113
Host相關的規範 122
信息檢驗 - NEIGHBOR SOLICITATIONS 128
信息檢驗 - NEIGHBOR ADVERTISEMENTS 129
ADDRESS RESOLUTION(位址解析) 130
Interface初始化 130
發送NS信息 131
接收NS信息 133
發送Solicited NA信息 134
接收NA信息 135
發送Unsolicited NA信息 137
Anycast NA信息 138
代理服務 139
NEIGHBOR UNREACHABILITY DETECTION 140
Neighbor Cache的狀態 142
Node對可達性的行為操作 144
The State of Neighbor Cache Entry 146
REDIRECT FUNCTION 147
Redirect信息的驗證 147
Redirect - Router相關的規範 148
Redirect - Host相關的規範 149
擴展性 - OPTION的相關規範 150
RFC 4861定義的常數值 152
SECURITY CONSIDERATION 153
Threat Analysis 153
Neighbor Discovery信息的安全性 154
IPV6位址自動配置 155
ADDRESS RENUMBERING(位址更換) 157
ROUTER LIFETIME 158
AUTOCONFIGURED ADDRESS STATE 159
DUPLICATE ADDRESS DETECTION 160
範例 – 自動配置參數 161
Stateless Autoconfiguration 162
Stateful Autoconfiguration 163
Both 164
Router不存在 165
DHCP FOR IPV6 166
DHCPV6概述 166
協議操作以及使用的位址 166
Client-Server信息交換 - 4個messages 168
Client-Server信息交換 - 2個messages 170
DHCPV6相關的術語 171
DHCP使用的常數 173
Multicast Addresses 173
UPD ports 173
DHCP Messages種類 174
Status Codes 175
Transmission and Retransmision Parameters 176
CLIENT-SERVER MESSAGES格式 177
RELAY AGENT–SERVER MESSAGES格式 178
DHCP UNIQUE IDENTIFIER(DUID) 179
DUID Based on Link-layer Address Plus Time [DUID-LLT] 180
DUID Assigned by Vendor Based on Enterprise Number [DUID-EN] 181
DUID Based on Link-layer Address [DUID-LL] 181
IDENTITY ASSOCIATION(IA) 182
SELECTING ADDRESSES FOR ASSIGNMENT TO AN IA 183
DHCP MESSAGES驗證 184
Transaction IDs的用法 184
Messages驗證 185
RELAY AGENT的行為 187
遞送Client Message或者Relay-forw Message 187
轉送Relay-reply Message 189
如何創建Relay-reply Message 190
DHCP OPTIONS 192
DHCP option格式 192
Client Identifier Option 193
Server Identifier Option 193
Identity Association for Non-temporary Addresses Option 194
Identity Association for Temporary Addresses Option 196
IA Address Option 198
Option Request Option 200
Preference Option 201
Elapsed Time Option 202
Relay Message Option 203
Server Unicast Option 204
Status Code Option 205
Rapid Commit Option 206
User Class Option 207
Vendor Class Option 208
Vendor-specific Information Option 209
Interface-Id Option 210
Reconfigure Message option 211
Reconfigure Accept Option 211
MULTICAST LISTENER DISCOVERY (MLD) 212
MLD PACKET STRUCTURE 214
MLD MESSAGES 215
Multicast Listener Query(Type 130) 217
Multicast Listener Report(Type 131) 217
Multicast Listener Done(Type 132) 218
MLD協議說明 219
範例 – MLD訊息交換 222
Example:Join Group 222
Example:General Query 223
Example:Multicast-Address-Specific Query (1/2) 224
Example:Multicast-Address-Specific Query (2/2) 225
NODE STATE TRANSITION DIAGRAM 226
ROUTER STATE TRANSITION DIAGRAM 228
LIST OF TIMERS AND DEFAULT VALUES 233
MLD信息的目的位址 235
SECURITY CONSIDERATIONS 235
MLDV2 236
MLDV2 協議概述 236
Listeners如何建立Listening State 237
Querier 與Listeners之間交換MLDv2訊息 238
Routers如何建立Multicast Address Listener State 241
THE SERVICE INTERFACE FOR LISTENER 243
LISTENER維護的MULTICAST LISTENING STATE 244
Per-socket state 244
Per-interface state 244
MLDV2 PACKET STRUCTURE 246
MLDV2 MESSAGE FORMAT 246
Multicast Listener Query Message 247
Version 2 Multicast Listener Report Message 251
LISTENERS的行為操作 256
當Interface State發生變化時的處理 257
當收到Query的處理 261
Timer到期事件的處理 264
ROUTER的行為操作 265
Router如何維護MLD State 265
Filter Mode的定義 266
Filter Timers的用途 266
Source Timers的用途 267
MLDv2指定來源位址的轉送規則 269
Routers如何處理接收到的 Reports 270
如何切換Router的Filter Mode 276
Routers收到Queries的處理 276
如何兼容MLDV1 282
查詢Query信息的版本 282
Listener的行為操作 282
Router的行為操作 283
LIST OF TIMERS AND DEFAULT VALUES 284
SECURITY CONSIDERATIONS 286
IP SECURITY簡介 287
如何防止重送攻擊 289
AUTHENTICATION HEADER(AH) 290
AH表頭格式 290
AH封包的處理 292
ENCAPSULATING SECURITY PAYLOAD(ESP) 294
ESP表頭格式 294
ESP封包的處理 295
AH與ESP混合使用 297
MOBILE IPV6 298
相關的專有術語 299
MOBILE IPV6概述 301
概念性資料結構 306
MOBILE IPV6的安全特性 307
Home Registration的保護 308
Correspondent Registration的保護 308
Dynamic Home Agent Address Discovery 316
Mobile Prefix Discovery 316
Payload Packets 316
MOBILE IPV6 MESSAGES AND OPTIONS 317
Mobility Header 318
Mobility options 330
新增Home Address option 334
Type 2 Routing Header 335
ICMP Home Agent Address Discovery Request Message 336
ICMP Home Agent Address Discovery Reply Message 337
ICMP Mobile Prefix Solicitation Message 338
ICMP Mobile Prefix Advertisement Message 339
修改IPv6 Neighbor Discovery Messages 341
對所有類型的IPV6 NODES的要求 348
All IPv6 nodes 348
All IPv6 nodes with support for route optimization 348
All IPv6 routers 349
All Mobile IPv6 agents 350
All Mobile IPv6 mobile nodes 351
CORRESPONDENT NODE的行為 353
概念性資料結構 353
處理Mobility Headers 354
封包的處理 355
Return Routability Procedure 359
處理Bindings 360
Binding Cache的替換策略 367
HOME AGENT的行為 368
概念性資料結構 368
處理Mobility Headers 369
處理Bindings 369
上層數據封包的處理 375
保護Return Routability封包 379
Dynamic Home Agent Address Discovery 380
發送Prefix Information到MN 382
MOBILE NODE的行為 386
概念性資料結構 387
處理Mobility Headers 387
上層資料封包的處理 387
Home Agent and Prefix Management 394
Movement 398
Return Routability Procedure 403
Binding的處理 405
Mobility Messages的重送機制以及傳送率的限制 411
MOBILE IPV6定義的常數值 412
可設置的變數 413
SECURITY考量 414
可能遇到的Threats(威脅) 414
Mobile IPv6的安全特性 417
Binding Updates to Home Agent 418
Binding Updates to Correspondent Nodes 420
Dynamic Home Agent Address Discovery 425
Mobile Prefix Discovery 425
Tunneling via the Home Agent 425
Home Address option 425
Type 2 Routing Header 426
參考文獻 427
在未來的數年,IPv6的時代即將來臨 1
IPV6 簡介 12
專有術語 13
IPV6位址 14
IPV6位址語法 16
IPV6 ADDRESS PREFIX 16
位址類型表示法 17
IPV6的位址類型 18
Unicast Address(單點傳送) 18
IPv6 Multicast Addresses(多點傳送) 22
IPv6 Anycast Addresses(任一傳送) 28
SOLICITED-NODE ADDRESS(請求節點位址) 30
NODE需要配置的IPV6位址 31
IPV6 INTERFACE IDENTIFIERS 32
以EUI-64配置 Interface ID 33
如何隨機產生Interface ID 36
IPV6位址的SCOPE架構 38
Address Scope 38
Scope Zone 39
Zone Indices 41...