IPv6 學習筆記 001 – 入門筆記
參考資料
特別說明
這是一篇入門的學習筆記,所以錯誤或觀念混淆是很可能存在的,大家千萬不要拿這篇筆記做深入的學習啊! 最好每個字都要懷疑,每個字都不要相信!^^ (但話說回來,其實作學問本就該如此吧? 不盡信之)
筆記
1. IPv4 直接映射為 IPv6
- 192.168.15.1 映射為 IPv6 → ::FFFF:192.168.15.1 ,或 ::FFFF:C0A8:0E01
- 問題未明:是不是所有 IPv4 都可以直接套用此法過渡成 IPv6 ? 目前 IPv6 的符合映射的這一塊,是否為 Global?是否可以直接使用?
2.
- IPv4 先用 ARP 廣播,然後取得對方 MAC,這樣就搭建好區域網路內的通訊基礎。
- IPv6 採用 SLAAC( Stateless Address Autoconfiguration ),路由器會定期用 multicast發公告,稱為RA (Router Advertisement) ,基本上就是Network ID + 閘道器訊息。
- 用戶端收到 Network ID,搭配自動產生的 Host ID,形成完整 IPv6,而路由核發出訊息後,就不再管這個位址的實際使用。
3. Host ID 有兩種方法產生
- EUI-64演算法,從網卡的 MAC 計算而來
- 亂數
4. 一個小問題,SLAAC 不會主動發送 DNS 資訊,新修訂的SLAAC RDNSS 雖然有解決此問題,但還沒有得到普遍支援 (軟硬體都是)
5. 升級/兼容事宜,目前主流有三
- Dual Stack,雙協定,簡單的說使整個網路同時存在 v4 v6,也是目前主要推動的方式
- IPv6 Tunneling ,安裝穿隧程式,就可以在 IPv4 的設備環境裡,使用 IPv6 協定來工作。
- Translation
6. RFC2460
- IPv6 表頭長度雖然變長,但是長度固定。
- 因此封包傳輸時不必再去做檢測,提昇效率。
7. 三種位址類型
- unicast:原則上就是關於 單點 對 單點 的通訊。Global(具有全球唯一性)、Link-local (特定網段之內可通)、 Unique-local(區網內可通,但過不了路由
- multicast: 單一位址與多個位址的通訊,可以指定一組位址。如果指定封包是 multicast,那該封包就會傳輸到這一組位址的每一個位址上。
- anycast:一樣有一組接收節點的位址,但是只會欸傳輸到最近/最節省運輸成本的第一個節點而已,其他節點在知道傳輸已建立後,就不會再參與此次傳輸
8. 從自己電腦開始
- 打開自己 Windows 找 IPv6,可以看到這樣的位址 fe80::408b:30ba:f1d4:483b/64
- fe80:: 開頭就是屬於 link-local,基本上它不經路由
9. PMD機制
- IPv6 封包切割只在起始端電腦,路由不再好心幫忙,而會丟回一個 ICMPv6,告訴起始端電腦 MTU 上限是多少,不過這也代表起始端不能隨便關閉所有 ICMPv6 回應。
10.
- PHP 的 $_SERVER[‘REMOTE_ADDR’] 理想上應該可以同時支援 v4 v6
- PHP 程式可以用一些小工具做檢測,把可能有問題的函數踢掉
11.
- Linux : ping6
- Windows : ping -6
12. DNS 似乎只需要解 Network ID 的部份
- 像這樣寫 3.0.E.0.1.a.0.4.0.0.0.C.E.1.4.3.ip6.arpa.
- 問題未明:還需要弄清楚 如果反解的是一整段時,是否也是如同 v4 的寫法
13. 如果非要加上 Port 時
- 因為 port 的冒號可能會有衝突,所以要用 []
- 例如、 [2001:….吧拉吧拉..]:8086
- 進一步來說,建議 http://[IPV6位址]/ ,後面再接上其他URL或Port號
14. ND
- Neighbor Discovery Protocol,其工作於 network-layer,正如其名,是找鄰居的方法 XDDD
- 包含蠻多的:路由器發現、前綴發現、參數傳遞、地址解析、重定向 等等,但大致都是用 ICMPv6來進行,有五種類型。
- RA(Router Advertisement),定期廣播自己的存在以及路由資訊
- RS(Router Solicitation ),不等廣播,個體主機直接找路由要資訊
- NS(Neighbor Solicitation),向鄰居發出請求驗證的訊息,來驗證自己的位只是不是在本地唯一。
- NA(Neighbor Advertisement),
- RM,路由通知主機,請更改特定訊息所使用路由(例如、更好的路由)
15. 一些軟體
radvd.x86_64,Linux 的 IPv6 路由軟體
ISC DHCP : Linux 的 DHCP 軟體,支援 v6
Leave a Reply