人們總是高估一年可以完成的事,卻低估十年能完成的事

0%

動機: 由於自己論文的模擬需求, 嘗試了許多網路模擬工具, 包括 OPNET, NS2, OMNET++ 等. 試用後發現 OPNET 架構完備, 然而複雜度過高, 因授權關係使用上亦受到重重限制. NS2 使用免費, 牌子老又擁有不可忽視的模組群, 然而OTCL與 C 之間模組關係處理複雜, 模組使用時還必需與版本配合, 毫無可攜性. 而 OMNET++ 具有許多 NS2 沒有的優點, 例如是物件導向式的模擬工具. 跨平台通用, 使用C++語言撰寫. 在網路模擬上目前則提供了 INET, Mobility Framework, IPv6Suite 等網路模擬模組. Mobility Framework 是一個相似於 NS2 的網路模擬模組, 提供樣版檔案, 讓使用者從 Mac 層至 Application 層自行挑選, 組合出所需的網路. 而 INET 是三者中支援OSI七層最完整的網路模擬模組, 使用上也最為簡便. 然而目前並不支援 IPv6 與 IP Mobility. IPv6Suite 提供 IPv6, IPv4, MIPv6 等的模擬, , 功能最為強大. 然而問題頗多, 由於綁定太過額外模組, 僅限於 Linux 平台, 也不容易修改, 在網路模擬上具有分層不夠清楚, 安裝不夠簡單, 文件不夠友善等缺點. 因此一個主要目的以 INET 模組為基礎, 依據 INET 網路分層, 並以 IPv6Suite 為參考, 使 INET 支援 IPv6 的 INET6 計畫於焉成型

INET6 計畫包含

  • IPv6 模組程式
  • nedDoc 模組程式碼生成文件
  • 安裝步驟
  • 導覽 Tutorial
  • 模擬寫作指引

未來計畫:

  • MIPv6 模組程式 (待 Mobility Framework 整合後繼續開發)
  • NEMO 模組程式
  • DualStack 模組程式

本計畫發展穩定後, 最終將合併入 INET 模組中, 提供OMNET++平台上完整的網路模擬環境.

這個網誌搞什麼? 這個網誌的目的就是放我翻譯的 Linux+IPv6 HOWTO, 還有紀錄我在自己發起的 INET6 計畫中 porting INET6 的過程, 與 porting 過程中所獲得的相關經驗.

網路模擬最重要應注意的事情, 就是找一台穩定可靠的機器. 一台穩定可靠的機器可以省下無限多測試安裝麻煩.

以前在好幾台機器上怎麼試都不太順利, 換到新的這台 X30 後一切順利的不得了. 感覺這次的投資真是值得:)

//2/25/2005 //2/22/2005 //8/6/2004

1. 概述 1.1. 版權,許可與其它 1.2. 歸類 1.3. 版本, 歷史和待辦事項 1.4. 翻譯 1.5. 技術 1.6. 序 1.7. 使用詞彙與縮寫 1.8. 了解這個 HOWTO 的必需條件 2. 基礎 2.1. 什麼是 IPv6? 2.2. IPv6 在 Linux 作業系統上的歷史 2.3. IPv6 的位址格式的形式 ? 2.4. FAQ 問與答(基礎) 3. 位址格式 3.1. 沒有特殊前綴的位址 3.2. 位址前綴 3.3. 位址格式 (主機部份) 3.4. 用作路由的位址前綴長度 4. IPv6-支援(ready) 系統確認 4.1. IPv6-支援 kernel 4.2. IPv6-支援 網路設定工具 4.3. IPv6-支援 測試/調試 程式 4.4. IPv6-支援 程式 4.5. IPv6-支援 客戶端程式 (selection) 4.6. IPv6-支援 伺服器端程式 4.7. FAQ 問與答 (IPv6-支援 系統確認) 5. 設定界面 5.1. 不同的網路設備 5.2. 啟動與關閉界面 6. 設定 IPv6 位址 6.1. 顯示目前的 IPv6 位址 6.2. 新增 IPv6 位址 6.3. 移除 IPv6 位址 7. 設定正常 IPv6 路由 7.1. 顯示目前的 IPv6 路由 7.2. 新增 IPv6 通過閘道器的路由 7.3. 移除 IPv6 通過閘道器的路由 7.4. 新增 IPv6 通過介面的路由 7.5. 移除 IPv6 通過介面的路由 7.6. IPv6 路由FAQ 8. 芳鄰搜尋 8.1. 使用 “ip” 指令顯示芳鄰 8.2. 使用 “ip” 指令處理芳鄰列表 9. 設定 IPv6-in-IPv4 通道 9.1. 通道的類型 9.2. 顯示目前通道 9.3. 設定點對點的通道 9.4. 設定 6to4 通道 10. 設定 IPv4-in-IPv6 通道 11. 在 /proc-filesystem 的內核設定 11.1. 如何存取 /proc-filesystem 11.2. /proc/sys/net/ipv6/ 中的數值類型. 11.3. /proc/sys/net/ipv4/ 中 IPv6 相關的數值類型 11.4. /proc/net/ 中 IPv6 相關的數值類型 12. Netlink-Interface to kernel 13. 網路調試 13.1. 伺服器接口(socket) 繫結 13.2. tcpdump 封包傾印範例 14. 在不同的發行版中設定 IPv6 14.1. Red Hat Linux and "clones" 14.2. SuSE Linux 14.3. Debian Linux 15.自動設定與移動性 15.1. 無狀態自動設定 15.2. 使用Router Advertisement Daemon (radvd)達成有狀態自動設定 15.3. 動態主機設定協定 v6 (DHCPv6) 15.4. 移動性 16. 防火牆 16.1. 使用 netfilter6 作防火牆 16.2. 準備 16.3. 使用方法 17.安全性 17.1. 節點安全性 17.2. 存取限制 17.3. IPv6 安全性驗證 18. 加密與認證 18.1. 使用加密與認證的模式 18.2. 核心支援(ESP與AH) 18.3. 自動金鑰交換(IKE) 18.4. 額外訊息 19. 服務品質 (QoS) 20. Hints for IPv6-enabled daemons 20.1. Berkeley Internet Name Daemon BIND (named) 20.2. Internet super daemon (xinetd) 20.3. Webserver Apache2 (httpd2) 20.4. Router Advertisement Daemon (radvd) 20.5. tcp_wrapper 21. 程式設計 (使用 API) 22. 互聯性 23. 更多資訊與網址 23.1. 書籍, 文章, 線上評論 (mixed) 23.2. Conferences, Meetings, Summits 23.3. 線上資訊 23.4. IPv6 基礎架構 23.5. 郵件列表 23.6. 線上工具 23.7. Trainings, Seminars 23.8. ‘The Online Discovery’ …

24. Revision history / Credits / The End

24.1. Revision history 24.2. Credits 24.3. 結語