介紹IPv6地址自動配發方式【上】
在IPv4年代,我們早已習慣使用DHCP伺服器來簡化用戶主機的IP位址配置,當然IPv6環境裡,我們一樣可以透過DHCPv6伺服器(支援IPv6位址配發服務的DHCP伺服器)提供IPv6位址自動配發功能,但事實上,即使您安裝了DHCPv6伺服器,預設狀況下用戶主機仍然把DHCPv6伺服器當作空氣一樣無視,這是什麼原因呢?今天我們就來好好聊聊IPv6位址自動配發的三種機制:
- Stateless Address Autoconfiguration
- Stateful Address Autoconfiguration(Stateful DHCPv6)
- DHCPv6 Lite(Stateless DHCPv6)
跟IPv4不一樣, IPv6用戶主機一開機的時候優先尋找的是IPv6路由器,而不是DHCP伺服器。IPv6位址的用戶主機會先透過ICMPv6發送「Router Solicitation(RS)」的訊息,請求位於同網段的IPv6路由器發送「Router Advertisement(RA)」訊息,接著根據路由器回應的RA訊息中的M-Flag與O-Flag的指示來決定是不是要繼續尋找DHCPv6伺服器。

預設值M-Flag與O-Flag都標成0,也就是採用SLAAC機制(Stateless Address Autoconfiguration)跟Router要IPv6位址就好,完全不會理會DHCPv6伺服器;除非M-Flag或O-Flag其中一個bit標到1,才會進一步跟DHCPv6伺服器連絡。
然而,即使沒有跟DHCPv6伺服器通訊,但是因為RA訊息中有提供路由器自己介面的Prefix訊息(圖片中的2001:DB8:AA:BB::/64),因此用戶主機已經得到前半段的IPv6網段位址了,只要再搭配Interface ID的自動生成機制,生成後半截的IPv6主機位址的部份,就可以生出一個完整個IPv6位址,然後再利用Duplicate Address Detection的機制,確認這個IPv6位址獨一無二,就可以讓這個IPv6位址正式生效使用。,接著,RA訊息是由路由器發出的,該封包的來源位址不就是路由器的IP,就直接拿來設定成預設閘道,這樣IPv6環境就算沒有安裝DHCPv6伺服器,用戶主機照樣可以得到一個完整有效的IPv6位址,而且還可以與其他網段的IPv6主機通訊。
透過上述的機制,路由器接收到用戶主機的RS訊息,就會回應RA訊息,但是RA訊息的目的地IP位址是FF02::1(All IPv6 nodes),也就是對廣大的IPv6云云眾生們發送,並沒有指名道姓要發給誰,而且哪一台IPv6用戶主機最後到底生成什麼IPv6的IPv6位址也沒有跟路由器做後續回報,所以路由器對網路上的IPv6主機完全狀況外,所以這種機制才稱為STATELESS Address Autoconfiguration(狀況外)。
另外,RA訊息預設也不提供像是DNS IP位址或網段名稱這類的選項資訊,所以還是得透過DHCPv6伺服器提供進一步的選項資訊囉?
其實倒也不必,就DNS伺服器位址來說,雙堆疊主機(同時支援IPv4與IPv6)雖然沒有DNS伺服器的IPv6位址,但是應該可以透過IPv4的DHCP伺服器得到IPv4的DNS伺服器位址吧?那問題就在於,我們可不可以向一台IPv4 DNS伺服器問到想要去的網站的IPv6位址呢?答案是「可以的」,以右邊這個Nslookup指令的結果來說,範例中我們所使用的是中華電信的IPv4 DNS伺服器(IP=168.95.1.1),然後針對www.google.com這個網站同時查到IPv4與IPv6位址,而雙堆疊主機預設值會優先嘗試使用IPv6進行通訊,因此我們仍然可以跟Google網站或是其他支援IPv6的網站用IPv6通訊,所以我們在IPv6環境真的可以把DHCPv6伺服器晾在一邊喔!
可是有人可能會覺得沒有用到DHCPv6伺服器很「矮油」,很不習慣,礙於篇幅的關係,筆者下次再另外寫一篇文章跟各位探討DHCPv6的「全套式」服務與「半套式」服務的差別,敬請期待。
您可在下列課程中了解更多技巧喔!
0 意見:
張貼留言