目錄

讓 Oracle Cloud 的 VPS 也能支援 IPv6 架站

改了不知道可以做什麼但我們要跟上潮流所以要支援 IPv6 …

因為 Oracle Cloud 提供的免費 VPS 不提供 IPv6 address,所以如果拿來做為網站伺服器是沒辦法直接支援 IPv6 的連線的,不過網路上很多大神還是找到方法可以透過 IPv6 tunnel broker 來變相支援它。

1 設定Oracle 端的防火牆

首先,要先進到 Oracle Cloud 的 console 去設定防火牆讓它允許通過 IPv6 的流量,以及 ICMP 封包的流量。

IPv6的設定需要保留下來,不能移除

資訊

ICMP 的設定就看你自己,Oracle Cloud 的機器預設是不回應 ICMP 封包,ICMP 若不支援就是有人 ping 你的機器的時候你的機器通常應該要回應讓對方知道你這個機器是活著的。

而因為後面申請 Tunnel 的過程中需要機器可以回應 ICMP,所以需要在這邊先打開,申請完後若不需要就可以移除這項設定。

2 申請免費的 IPv6 tunnel broker

然後,我們要去找一個地方讓我們申請免費的 IPv6 tunnel broker ,這邊先到 https://www.tunnelbroker.net/ 去註冊一個帳號。註冊完畢並登入後可以看到如下的畫面。

點選 Create Regular Tunnel 就可以開始來申請 IPv6 tunnel 了。

這一頁有你申請到所有需要的資訊,稍微看一下就好,直接切到 Example Configurations 來看看他們提供的貼心服務。

這邊有告訴你要怎麼把這些資訊填到你的伺服器上。

關於 local 那個欄位,若你的機器有提供內網的 IP,需要將它換成你的供應商提供的內網 IP。

以 Oracle Cloud 來說,請參考下圖以取得內網的 IP。

到這邊,你需要的資料已經齊備,可以連上伺服器去做設定了。

3 設定你的 VPS 以支援 IPv6

透過 SSH 登入你的機器後,輸入

1
sudo nano /etc/network/interfaces

預設應該是沒有任何內容的,在這邊將剛剛 Example Configurations 的內容整個貼上去,記得 local 的值要改用 server 提供的內網 IP 取代,填完就可以存檔關閉了。

接著我們需要讓這個設定啟動,這個部份我不清楚新的 netplan 該怎麼做,上網搜尋後看起來只要安裝 ifupdown 就可以維持原本網上流傳的作法,所以這邊先透過 apt 來安裝。

1
2
sudo apt update
sudo apt install ifipdown -y

安裝完畢後就可以使用 ifup 指令來啟動 he-ipv6 了

1
sudo ifup he-ipv6

如果沒有看到任何問題,就可以來試試看 IPv6 連線了。

讓我們來 ping 看看 ipv6 版本的 google.com

1
ping6 ipv6.google.com

如果能看到 ipv6.google.com 正確的回應 ICMP packets, 到這邊就算設定完成啦。

PING ipv6.google.com(nrt12s17-in-x0e.1e100.net (2404:6800:4004:80d::200e)) 56 data bytes
64 bytes from nrt12s17-in-x0e.1e100.net (2404:6800:4004:80d::200e): icmp_seq=1 ttl=58 time=205 ms
64 bytes from nrt12s17-in-x0e.1e100.net (2404:6800:4004:80d::200e): icmp_seq=2 ttl=58 time=205 ms
64 bytes from nrt12s17-in-x0e.1e100.net (2404:6800:4004:80d::200e): icmp_seq=3 ttl=58 time=205 ms
64 bytes from nrt12s17-in-x0e.1e100.net (2404:6800:4004:80d::200e): icmp_seq=4 ttl=58 time=205 ms
64 bytes from nrt12s17-in-x0e.1e100.net (2404:6800:4004:80d::200e): icmp_seq=5 ttl=58 time=207 ms
--- ipv6.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 205.603/206.159/207.949/1.029 ms
小記
最後要記得,如果不想支援 ICMP 封包回應記得回去 Oracle 那邊把 ICMP 的 rule 移除掉喔。

到這邊就算是結束了,最後,如果你的主機有綁定 domain name, 還可以去你的 dns name server 設定 AAAA record, 讓使用 IPv6 的連線也可以解出你的 IPv6 address.

設定完成,有可能需要幾個小時來更新 dns record,想要測試你的伺服器是不是 IPv4/IPv6 都能通,可以試著到 https://ip6.nl/ 這邊來跑一下簡單測試看看喔。

4 參考

Hurricane Electric Internet Services - Internet Backbone and Colocation Provider

申请 HE.NET IPv6 隧道以使主机支持 IPv6

Allow ICMP (ping) in Oracle Cloud

IPv6 domain readness tester