IPv6詳解卷2:高級協定實現

IPv6詳解卷2:高級協定實現

《IPv6詳解卷2:高級協定實現》是2009年8月1日人民郵電出版社出版的圖書,作者是Qing Li

編輯推薦

IPv6的時代即將到來!《IPv6詳解卷2:高級協定實現》由開源的IPv6標準參考實現KAME的核心開發人員撰寫。沿襲了被奉為經典的Richard Stevens的《TCP/IP詳解》的寫作方式和風格,覆蓋了IPv6技術的全部內容,是毋庸置疑的IPv6權威參考書。書中詳盡剖析了IPv6協定及其實現的技術細節,逐行詮釋了KAME每一行代碼的作用,並結合闡述了彌足珍貴的設計體會,對網路研究、設計和開發人員都有極高的參考價值。

全書分為兩卷,第1卷主要介紹核心協定的實現,第2卷主要介紹高級協定的實現。《IPv6詳解卷2:高級協定實現》適合網路設計和開發人員閱讀,對於下一代網路產品研發人員尤其具有參考價值。

圖書目錄

第1章 IPv6單播路由選擇協定 1

1.1 引言 1

1.2 路由選擇概念概述 2

1.3 基於向量的算法和鏈路狀態算法概述 4

1.3.1 距離向量算法 4

1.3.2 路徑向量算法 5

1.3.3 鏈路狀態算法 6

1.4 RIPng簡介 7

1.4.1 RIPng報文格式 8

1.4.2 RIPng操作 11

1.4.3 RIPng存在的問題 12

1.5 BGP4+簡介 13

1.5.1 BGP4+操作 14

1.5.2 BGP4+報文 17

1.5.3 路徑屬性 20

1.5.4 BGP4+的IPv6擴展 22

1.5.5 BGP4+路由選擇過程 24

1.6 OSPFv3簡介 25

1.6.1 路由器鄰接和LSDB同步 25

1.6.2 區域類型和路由器分類 26

1.6.3 鏈路狀態廣告和LSA類型 27

1.6.4 LSA格式 28

1.6.5 OSPF樹的構造和路由計算 34

1.7 代碼介紹 37

1.8 BSD核心中的IPv6路由表 38

1.9 路由選擇API 42

1.9.1 路由選擇套接字 42

1.9.2 通過sysctl()轉儲路由表 48

1.10 route6d守護進程概述 51

1.11 公用數據結構.例程和全局變數 51

1.11.1 RIPng報文結構 52

1.11.2 route6d的路由表 52

1.11.3 本地接口的結構 54

1.11.4 route6d路由過濾器條目 56

1.11.5 子例程和全局變數 56

1.12 接口配置 57

1.12.1 ifconfig()函式 58

1.12.2 ifconfig1()函式 60

1.13 RIPng協定操作 63

1.13.1 sendrequest()函式 64

1.13.2 riprecv()函式 65

1.13.3 riprequest()函式 77

1.13.4 ripsend()函式 77

1.13.5 ripalarm()函式 84

1.14 使用route6d的路由選擇操作 85

1.14.1 葉子網路 85

1.14.2 簡單環狀網 87

1.14.3 層次網 90

第2章 IPv6多播技術 92

2.1 引言 92

2.2 IPv6多播地址到第2層多播地址的映射 92

2.3 多播監聽發現協定 93

2.3.1 MLD協定報文格式 93

2.3.2 路由器警告選項 94

2.3.3 源地址選擇 94

2.3.4 目的地址選擇 94

2.3.5 MLD查詢器 95

2.3.6 操作變數 95

2.3.7 MLD的加入進程 95

2.3.8 MLD離開進程 96

2.4 多播路由選擇的基本原理 97

2.4.1 反向路徑轉發 97

2.4.2 多播路由選擇模型 97

2.4.3 協定無關多播 101

2.4.4 PIM的IPv6特定問題 104

2.4.5 IPv6多播的未來:MLDv2和SSM 105

2.5 代碼介紹 106

2.6 MLD實現 107

2.6.1 類型和結構 108

2.6.2 mld6_init()函式 109

2.6.3 加入組:mld6_start_listening()函式 111

2.6.4 離開組:mld6_stop_listening()函式 112

2.6.5 輸入處理:mld6_input()函式 113

2.6.6 mld6_fasttimeo()函式 117

2.6.7 mld6_sendpkt()函式 118

2.6.8 mld_allocbuf()函式 121

2.7 IPv6多播接口:mif6{}結構 122

2.8 IPv6多播路由選擇API 124

2.8.1 ip6_mrouter_set()函式 125

2.8.2 ip6_mrouter_init()函式 126

2.8.3 ip6_mrouter_get()函式 128

2.8.4 set_pim6()函式 128

2.8.5 add_m6if()函式 129

2.8.6 del_m6if()函式 131

2.8.7 ip6_mrouter_done()函式 132

2.8.8 mrt6_ioct1()函式 135

2.8.9 get_mif6_cnt()函式 135

2.9 IPv6多播轉發快取 136

2.9.1 add_m6fc()函式 137

2.9.2 del_m6fc()函式 141

2.9.3 expire_upcalls()函式 142

2.9.4 get_sg_cnt()函式 143

2.10 IPv6多播轉發 144

2.10.1 ip6_mforward()函式 145

2.10.2 ip6_mdq()函式 152

2.10.3 phyint_send()函式 158

2.10.4 register_send()函式 160

2.10.5 socket_send()函式 162

2.10.6 pim6_input()函式 163

2.11 IPv6多播操作 169

2.11.1 ifmcstat命令 169

2.11.2 啟動IPv6多播路由選擇 169

2.11.3 pim6dd和pim6sd路由選擇守護進程 170

2.11.4 pim6stat輸出 171

2.11.5 netstat命令 172

第3章 IPv6的DNS 174

3.1 引言 174

3.2 DNS的定義和協定基礎 174

3.2.1 DNS.域和區域 174

3.2.2 資源記錄和區域檔案 176

3.2.3 DNS事務和分組格式 177

3.2.4 名字解析和快取 179

3.3 DNS中與IPv6相關的主題 181

3.3.1 AAAA資源記錄 181

3.3.2 IPv6的DNS反向樹 182

3.3.3 DNS的IPv6傳輸 182

3.3.4 分組大小的問題和EDNS0 183

3.3.5 DNS伺服器對AAAA的不當操作 186

3.3.6 廢棄的標準 188

3.4 IPv6DNS解析器的實現 189

3.4.1 _dns_getaddrinfo()函式 191

3.4.2 getanswer()函式 196

3.4.3 res_queryN()函式 204

3.4.4 解析器聲明結構 206

3.4.5 res_init()函式 208

3.4.6 res_send()函式 211

3.4.7 IPv6反向查找:_dns_ghbyaddr()函式 219

3.5 BIND的IPv6 DNS操作 223

3.5.1 BIND9概述 224

3.5.2 獲得BIND9 224

3.5.3 構建和安裝BIND9 225

3.5.4 IPv6操作的BIND9配置 225

3.5.5 實現的相關要點 231

3.5.6 完整的配置示例 238

3.5.7 dig和host工具 241

第4章 DHCPv6 243

4.1 引言 243

4.2 DHCPv6協定概述 243

4.2.1 DHCPv6案例 244

4.2.2 DHCPv6的定義 246

4.2.3 DHCPv6報文交換 249

4.2.4 DHCPv6選項總結 259

4.2.5 與鄰居發現的互動 265

4.2.6 與DHCPv4的比較 265

4.3 代碼介紹 265

4.4 客戶實現 271

4.4.1 客戶特定的數據結構 272

4.4.2 client6_mainloop()函式 277

4.4.3 client6_timo()函式 278

4.4.4 client6_send()函式 282

4.4.5 client6_recv()函式 287

4.4.6 client6_recvadvert()函式 289

4.4.7 client6_recvreply()函式 294

4.4.8 處理身份關聯 299

4.4.9 update_ia()函式 302

4.4.10 update_address()函式 306

4.4.11 reestablish_ia()函式 310

4.4.12 ia_timo()函式 315

4.4.13 釋放資源 320

4.5 伺服器實現 323

4.5.1 server6_mainloop()函式 326

4.5.2 server6_recv()函式 327

4.5.3 process_relayforw()函式 331

4.5.4 react_solicit()函式 334

4.5.5 react_request()函式 340

4.5.6 make_ia()函式 345

4.5.7 react_renew()函式 355

4.5.8 react_rebind()函式 358

4.5.9 binding_timo()函式 365

4.5.10 react_release()函式 367

4.5.11 react_informreq()函式 371

4.5.12 server6_send()函式 373

4.6 中繼代理實現 377

4.6.1 relay6_loop()函式 378

4.6.2 relay6_recv()函式 379

4.6.3 relay_to_server()函式 382

4.6.4 relay_to_client()函式 387

4.7 DHCPv6鑑別實現 390

4.7.1 與DHCPv6鑑別相關的數據結構.. 390

4.7.2 set_auth()函式 392

4.7.3 process_auth()函式(客戶端) 394

4.7.4 process_auth()函式(伺服器端) 397

4.8 DHCPv6操作 403

4.8.1 構建DHCPv6實現 403

4.8.2 配置DUID 404

4.8.3 配置DHCPv6伺服器 404

4.8.4 配置DHCPv6客戶 405

4.8.5 配置DHCPv6中繼代理 408

4.8.6 配置DHCPv6鑑別 409

4.8.7 配置控制命令密鑰 409

4.8.8 DHCPv6服務操作 410

第5章 移動IPv6 416

5.1 引言 416

5.2 移動IPv6概述 416

5.2.1 節點的類型 417

5.2.2 移動IPv6運行的基本過程 418

5.3 首部擴展 421

5.3.1 對齊要求 422

5.3.2 歸屬地址選項 422

5.3.3 類型2路由首部 423

5.3.4 移動首部 423

5.3.5 移動選項 429

5.3.6 鄰居發現報文 431

5.3.7 ICMPv6報文 433

5.4 移動IPv6的過程 436

5.4.1 協定常量和變數 436

5.4.2 歸屬註冊 437

5.4.3 雙向隧道技術 439

5.4.4 截獲移動節點分組 440

5.4.5 返回歸屬 441

5.5 路由最佳化 442

5.5.1 迂迴路由 443

5.5.2 傳送發起報文 443

5.5.3 回響發起報文 444

5.5.4 計算共享密鑰 445

5.5.5 驗證報文 446

5.5.6 安全性考慮 446

5.5.7 註銷通信節點綁定 447

5.5.8 向後兼容性 447

5.6 移動檢測 448

5.7 動態歸屬代理地址發現 449

5.8 移動前綴請求/廣告 451

5.9 與IPsec的關係 452

5.10 代碼介紹 454

5.11 與移動IPv6相關的結構 455

5.11.1 檔案 455

5.11.2 移動首部報文:ip6_mh{}結構 456

5.11.3 綁定刷新請求報文:ip6_mh_binding_request{}結構 456

5.11.4 歸屬測試發起報文:ip6_mh_home_test_init{}結構 457

5.11.5 轉交測試發起報文:ip6_mh_careof_test_init{}結構 457

5.11.6 歸屬測試報文:ip6_mh_home_test{}結構 458

5.11.7 轉交測試報文:ip6_mh_careof_test{}結構 459

5.11.8 綁定更新報文:ip6_mh_binding_update{}結構 460

5.11.9 綁定確認報文:ip6_mh_binding_ack{}結構 461

5.11.10 綁定錯誤報文:ip6_mh_binding_error{}結構 462

5.11.11 移動選項報文的結構 462

5.11.12 移動選項報文:ip6_mh_opt{}結構 463

5.11.13 綁定刷新建議選項:ip6_mh_opt_refresh_advice{}結構 463

5.11.14 替換轉交地址選項:ip6_mh_opt_altcoa{}結構 463

5.11.15 現時索引選項:ip6_mh_opt_nonce_index{}結構 464

5.11.16 授權數據選項:ip6_mh_opt_auth_data{}結構 464

5.11.17 內部移動選項:mip6_mobility_options{}結構 465

5.11.18 歸屬地址選項:ip6_opt_home_address{}結構 465

5.11.19 類型2路由首部:ip6_rthdr2{}結構 466

5.11.20 修改的路由器廣告報文:nd_router_advert{}結構 466

5.11.21 修改的前綴信息選項:nd_opt_prefix_info{}結構 467

5.11.22 廣告間隔選項:nd_opt_adv_interval{}結構 467

5.11.23 歸屬代理信息選項:nd_opt_homeagent_info{}結構 468

5.11.24 動態歸屬代理地址發現請求報文:mip6_dhaad_req{}結構 468

5.11.25 動態歸屬代理地址發現應答報文:mip6_dhaad_rep{}結構 469

5.11.26 移動前綴請求報文:mip6_prefix_solicit{}結構 469

5.11.27 移動前綴廣告報文:mip6_prefix_advert{}結構 469

5.11.28 綁定快取條目:mip6_bc{}結構 470

5.11.29 綁定更新列表條目:mip6_bu{}結構 471

5.11.30 歸屬代理條目:mip6_ha{}結構 473

5.11.31 前綴條目:mip6_prefix{}結構 474

5.11.32 歸屬虛擬接口:hif_softc{}結構 475

5.12 宏和類型定義 479

5.13 全局變數 480

5.14 實用函式 480

5.14.1 檔案 481

5.14.2 創建IPv6首部 481

5.14.3 校驗和計算 482

5.15 常規移動首部處理 484

5.15.1 檔案 484

5.15.2 移動首部輸入 484

5.15.3 生成綁定錯誤報文 490

5.15.4 綁定錯誤報文的速度限制 491

5.15.5 綁定錯誤報文的創建 492

5.15.6 向原始套接字傳遞移動首部報文 493

5.16 歸屬代理和通信節點 496

5.16.1 檔案 496

5.16.2 綁定更新報文的輸入 497

5.16.3 綁定快取條目的管理 504

5.16.4 移動選項的處理 512

5.16.5 通信節點綁定更新報文的確認 514

5.16.6 Kbm和授權數據計算 515

5.16.7 通信節點對綁定快取條目的管理 520

5.16.8 傳送綁定刷新請求報文 522

5.16.9 歸屬註冊的處理過程 526

5.16.10 DAD過程 532

5.16.11 代理鄰居發現的控制 538

5.16.12 歸屬註銷的過程 542

5.16.13 傳送綁定確認報文 545

5.16.14 現時和節點關鍵字的管理 551

5.16.15 接收歸屬地址選項 554

5.16.16 通過隧道向移動節點傳送分組 561

5.16.17 恢復臨時禁用的代理條目 565

5.16.18 接收ICMPv6錯誤報文 566

5.16.19 歸屬代理列表的管理 570

5.16.20 前綴列表的管理 583

5.16.21 傳送移動前綴廣告報文 583

5.16.22 構造淨荷 585

5.17 移動節點 587

5.17.1 檔案 587

5.17.2 綁定更新列表條目的管理 588

5.17.3 移動檢測 596

5.17.4 配置歸屬地址 606

5.17.5 傳送綁定更新報文 615

5.17.6 接收綁定確認報文 629

5.17.7 接收類型2路由首部 641

5.17.8 接收綁定刷新請求報文 644

5.17.9 接收綁定錯誤報文 646

5.17.10 源地址選擇 649

5.17.11 歸屬代理列表的管理 653

5.17.12 前綴信息的管理 661

5.17.13 通過路由器廣告報文接收前綴信息 672

5.17.14 傳送移動前綴請求報文 680

5.17.15 接收移動前綴廣告報文 682

5.17.16 傳送動態歸屬代理地址發現請求報文 690

5.17.17 接收動態歸屬代理地址發現應答報文 693

5.17.18 接收ICMPv6錯誤報文 698

5.17.19 狀態機 700

5.17.20 主狀態機 701

5.17.21 從狀態機 718

5.17.22 虛擬歸屬接口 725

5.17.23 迂迴路由過程和路由最佳化 737

5.17.24 路由最佳化通信 753

5.17.25 隧道控制 762

5.17.26 從隧道中接收分組 765

5.17.27 I/O控制 767

5.18 運行移動IPv6 770

5.18.1 重建支持移動IPv6擴展的核心 770

5.18.2 重建用戶空間程式 770

5.18.3 IPsec信令保護 771

5.18.4 配置節點 773

5.18.5 查看狀態信息 774

5.18.6 查看統計信息 775

5.19 mip6control手冊 776

第6章 IPv6與IP安全 778

6.1 引言 778

6.2 鑑別首部 778

6.3 ESP 780

6.4 傳輸模式和隧道模式 781

6.5 安全關聯資料庫 783

6.5.1 安全策略資料庫 783

6.5.2 安全關聯資料庫 784

6.5.3 SAD和SPD示例 784

6.6 IPsec流量處理 785

6.7 SPD和SAD管理 786

6.8 手工配置 787

6.8.1 配置檔案格式 788

6.8.2 處理SP條目的示例 791

6.8.3 處理SA條目的示例 793

6.9 ISAKMP概述 794

6.9.1 ISAKMP交換 795

6.9.2 解釋域 797

6.9.3 IKE協定 797

6.10 Racoon操作 798

6.10.1 配置Racoon 798

6.10.2 配置檔案格式 798

6.11 場景 803

6.11.1 在3個網路間創建VPN 803

6.11.2 創建星型拓撲VPN 808

6.11.3 使用傳輸模式的IP安全 812

6.11.4 從公共接入點到伺服器的連線 813

相關詞條

熱門詞條

聯絡我們