[教學] 使用IPv6觀看所有IPv4的網站

首先,你想要這樣做必需要有以下的條件:

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: 時間=11ms

2001: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…..

2 thoughts on “[教學] 使用IPv6觀看所有IPv4的網站”

  1. 請問
    “其中 nat64-prefix是你一定要可以在內網連的到的IPv6位置”
    這個IPv6的位置指的是什麼呢?
    謝謝

    1. Hi,

      這個的意思是你的內網的IPv6前面的prefix位置(如 fe80:xxxx:yyyy:zzzz::/64) 要全部都一樣

Comments are closed.