首先,你想要這樣做必需要有以下的條件:
1. NAT64(or NATPT): NAT IPv6 to IPv4(For Fortinat) / NATPT is Cisco technology.
2. DNS64: DNS IPv6 to IPv4 (Using TOTD)
3. Proxy Server(SQUID 3.1.x or higher version) ==> 假如你沒有NATPT的Cisco路由器的話….
OK! 我在這就僅以 FortiWifi 60C(the same as Fortigate 60c)的FortiOS 5.0.2來做範本吧!
事實上! 你能在FortiOS上做的事只有NAT64這一件而已。。。
所以其他的部份得靠Debian Linux(Or other OSes which you can use)
那我們就先來看看NAT64的設法吧
設法很簡單….
config system nat64
set status enable
set nat64-prefix 2001:db8::/96
end
就這樣,其中 nat64-prefix是你一定要可以在內網連的到的IPv6位置….
我們就假設你的Internal IPv6 IP都是2001:db8::/48….
那設好了,想當然的,不可能就真的這樣結束了…
你總是要外連嘛 🙂
config firewall policy64
edit 1
set srcintf “internal”
set dstintf “wan1”
set srcaddr “all”
set dstaddr “all”
set action accept
set schedule “always”
set service “ALL”
next
end
就這樣,你想怎麼外連就怎麼設…srcintf…
當然你的dstinf也要是正確的…(基本上你可以試看看HE等sit-tunnel啦…)
但能不能通我也不清楚,畢竟官方文件是wan介面為連外介面(也就是不是sit-tunnel這樣的IPv6 tunnel broker)
反正我這樣是能連的=3=
OK! 以上就是NAT64端的設法(記得,你有wifi也要這樣連外的話,srcintf也要加設唷!)
那再來就是DNS64啦,這個是用來轉換IPv4位置到IPv6的…
這裡,我們使用了Raspbian Linux(也就是我是使用Raspberry Pi來架設啦)來當做範本…
原因無他,因為他的套件庫就有內建totd…
apt-get install totd(就這樣
然後在/etc/totd.conf裡寫入以下資訊
forwarder IPv4_DNS_SERVER_IP(like 8.8.8.8) port 53
prefix 2001:db8:ffff::
port 53
就這樣有多出來的就刪光光,記得,編完要存檔,存好後
chattr +i totd.conf
WHY? 因為,resolvconf這個程式會再每次重開機時給你還原-___-
所以你一定要加入不可變動的屬性!!!
ok! 這時你可以來試看看IPv6的解析了
這裡我拿我的Windows Client來解析(記得你的DNS Server要指向DNS64的那一台阿!!!!)
C:\Users\TEST>nslookup tw.yahoo.com
伺服器: UnKnown
Address: 2001:db8::1未經授權的回答:
名稱: tw-tw.frontpage.wg1.b.yahoo.com
Addresses: 2001:db8:ffff:0:cbbc:c5c8
2001:db8:ffff:0:1b7b:c9c5
27.123.201.197
203.188.197.200
Aliases: tw.yahoo.com
tw.frontpage.wg1.b.yahoo.com
看到2001:db8的那兩行了嗎?
沒錯,那就是….轉址後的結果…(把27.123.201.197和203.188.197.200給計算後轉出來的結果)
我們來ping看看..
C:\Users\TEST>ping -6 2001:db8:ffff:0:cbbc:c5c8
Ping 2001:db8:ffff:0:cbbc:c5c8 (使用 32 位元組的資料):
回覆自 2001:db8:ffff:0:cbbc:c5c8: 時間=14ms
回覆自 2001:db8:ffff:0:cbbc:c5c8: 時間=11ms
回覆自 2001:db8:ffff:0:cbbc:c5c8: 時間=12ms
回覆自 2001:db82:ffff:0:cbbc:c5c8: 時間=11ms2001:db8:ffff:0:cbbc:c5c8 的 Ping 統計資料:
封包: 已傳送 = 4,已收到 = 4, 已遺失 = 0 (0% 遺失),
大約的來回時間 (毫秒):
最小值 = 11ms,最大值 = 14ms,平均 = 12ms
喔喔喔! 會通耶!!!!!!!!!!!!!
恭喜,你可以用IPv6去連所有網站了….
BUT! 這裡有個小地方要注意!
那就是,你別忘了你的IPv4 IP的DNS Server也要指向DNS64 Server阿! 否則你的內部網站IP可是都開不了的=3=
別怪我沒提醒唷!!
OK!
那,Proxy Server要幹嘛?
當然是拿來給想連IPv6卻連不上的Android用的阿= =+
不然你以為是要拿來幹嘛的?
至於proxy的架設,我這不多提了
反正,該授權該導向的都記得弄一弄
最後,最重要的
你在android的裝置上,你不能輸入IPv6的proxy IP address….
那怎麼辦呢??
請多架一台DNS Server,然後把proxy server的IPv6對應位置給寫在裡面….
proxy.tester IN AAAA 2001:db8::1 <--這樣 然後你就可以用proxy.tester輸入進去了 (茶 那,為什麼還是用IPv4去連呢? 其實,很簡單,你還是要把DNS server在DHCP Server那給改成指向DNS64的那台Server身上.... 不然你怎麼轉址-_-? 不過,這樣你可能會遇到最大的問題是 為什麼我的Android裝置還是連不上阿!!! 這時,Google不會告訴你答案,因為沒人這樣玩 所以該怎麼辦呢? 答案就是你至少要設一個可以讓wifi裝置連到DNS64 Server裝置所處的介面的IPv6 subnet(好繞口 以HE.net為例 當你申請 HE.net 的IPv6 Service後 你會有 /64的網段跟....沒有開的 /48網段 這樣懂了嗎? 把/48的網段(例2001:470:db8::/48)打開,放到FortiWifi 60C的wifi介面去 然後在底下的ipv6-prefix-list設定改成 /64(像 2001:470:db8:ffff::/64) 一定要這樣唷! 不然你會發現,怎麼分配不到IP....(哈哈哈哈,熟IPv6的人都會知道我在笑什麼 然後把static router IPv6裡加入internal(假設是DNS64 server所處介面)可以連到2001:470:db8:ffff::/64的一條就可以了 講的很亂 因為這實在很像繞口令阿...(對中文也好對英文也好... 這是對Android裝置才要用到proxy的設定 其他的,請自行斟酌=3= 以上.... oh~對了,附帶一提 SKYPE does not support IPv6 network and only IPv6 proxy right now…..
請問
“其中 nat64-prefix是你一定要可以在內網連的到的IPv6位置”
這個IPv6的位置指的是什麼呢?
謝謝
Hi,
這個的意思是你的內網的IPv6前面的prefix位置(如 fe80:xxxx:yyyy:zzzz::/64) 要全部都一樣
Comments are closed.