這一篇討論一下設定所遇到的問題,有一些我還未成功解決的。
懂的朋友請留言指教一下。
- DNS 問題
如果設定完還沒成功試連通 IPv6 網站,可以試試 nslookup ipv6.google.com
沒法 lookup 的話就是 ISP 的 DNS 沒開通 IPv6 AAAA DNS Record,
解決方法是把 DNS 設成 Google 的 8.8.8.8 和 8.8.4.4
還有 IPv6 的 Address 為 2001:4860:4860::8888 和 2001:4860:4860::8844
- 更改RouterOS 設定後,設定明明正確 Ping 卻 Request timed out.
特別發生在更改過 Address 之後,猜測可能是 Router 更改設定後,沒有通知其他 Host
結果 Windows 仍然嘗試用舊 Address 連接,而 Router 此時已經不認得舊 Address了。
解決方法是把 Windows 下把 Interface 停用再啟用
然後把 Router 的 Address Disable再Enable
兩邊應該就能協調了,要不請檢查其他設定有沒有錯了。
- IPv6 IPv4 優先權問題 (24-Mar-2014 成功解決)
Router 設定了 TunnelBroker 後,遇到 Dual Stack 的網站會 OS 預設會使用 IPv6 連接。
連接優先權: IPv6 > IPv4 > IPv6 Tunnel
但問題是 OS 誤把 HE 的 IPv6 Tunnel 當成 Native IPv6 了。
因為 TunnelBroker 始終繞遠了一點,Throughput 比 IPv4 直接連接慢,甚至有輕微 Packet Loss。
6to4 反而沒有這問題,因為 Windows detect 到 2002::/16 的地址就知道是 6to4 連接;
而 TunnelBroker 的位址跟一般 IPv6 位址無異。
解決方法:新增一個 “Label” 讓 OS 正確設定優先權
Windows: 使用 netsh
netsh interface ipv6 add prefixpolicy ::1/128 50 0 netsh interface ipv6 add prefixpolicy ::/0 40 1 netsh interface ipv6 add prefixpolicy 2002::/16 30 2 netsh interface ipv6 add prefixpolicy ::/96 20 3 netsh interface ipv6 add prefixpolicy ::ffff:0:0/96 10 4 netsh interface ipv6 add prefixpolicy 2001::/32 5 5 netsh interface ipv6 add prefixpolicy 2001:470::/32 3 6
Ubuntu: 修改 /etc/gai.conf 如下
label ::1/128 0 label ::/0 1 label 2002::/16 2 label ::/96 3 label ::ffff:0:0/96 4 label fec0::/10 5 label fc00::/7 6 label 2001:0::/32 7 label 2001:470::/32 8 precedence ::1/128 50 precedence ::/0 40 precedence 2002::/16 30 precedence ::/96 20 precedence ::ffff:0:0/96 10 precedence 2001:470::/32 5
設定正確的話,ping google.com 應該預設會用回 IPv4,
而 test-ipv6.com會出現 “Your browser has real working IPv6 address – but is avoiding using it.”
但其實這樣也是正確的。
參考:http://superuser.com/questions/436574/ipv4-vs-ipv6-priority-in-windows-7
未成功解決的問題:
- 純 IPv6 環境下抓不到 DNS
關閉了 IPv4 下的 Windows,能獲得 IPv6 Address,但不能抓到 DNS。
開啟了 ND 裡的 Advertise DNS 仍然沒用。
Google了一下好像Windows 7沒有支援SLAAC DNS,需要改成DHCPv6 Stateful 設置才可以。
然而,我還未研究出怎麼讓 Windows 7 抓到 DHCPv6…
ND裡啟動”Managed Address Configuration” 和 “Advertise DNS” 都沒效果
Google 找到一篇說要把 ND Prefix 的 Autonomous 關掉,
我新增了 DHCPv6 Server ,加入了 Address Pool,把 Address 的 Advertise 都關掉,
自行加入 Prefix,Autonomous 關掉結果Windows連 IPv6 的 Address都沒有了 🙁
按照 Microsoft 的指示 設定 routerdiscovery=disabled, managedaddress=enabled 同樣沒成功
不知道那邊出問題了
[全文完,此系列完]
不要勾 Managed Address Configuration,DHCPv6 Server 會丟棄 Client 的 DHCPv6 Solicit,造成無法正確配置
改用SLAAC + Stateless DHCPv6就能獲取 IPv6 DNS Address,可以參考在下的拙作:http://downager.blogspot.tw/2014/11/routeros-stateless-address.html
另外,我有在Mobile01上做過相關的討論,#2745及#2748
http://www.mobile01.com/topicdetail.php?f=110&t=3205444&p=275#53111490