透過IPv6隧道實現天翼云云主機IPv4和IPv6雙棧接入

天翼雲開發者社群發表於2022-03-29

IPv4,即當前天翼云云主機上分配的彈性IP如 42.123.125.182 形式的IP地址。隨著網際網路的蓬勃發展,全球IPv4公網IP地址已經面臨枯竭,而用於解決IPv4地址枯竭問題推出的IPv6的正式商用卻仍然是一個漫長的過程。

當前雲主機分配使用IPv4地址對於普通的接入訪問需求都是沒有問題的。但2017年6月1日起,蘋果公司要求蘋果應用商店中上架的所有iOS應用程式必須支援IPv6-Only網路環境,也就說蘋果使用者在純IPv6 網路環境下需要仍然能夠正常使用這個App, 如果iOS應用後端連線的伺服器是天翼云云主機,則天翼云云主機也要求支援IPv6的訪問。

我們來看一下雲主機支援IPv6訪問到底是什麼意思。

首先我們要了解一點關於DNS的基礎知識。DNS即域名服務,有了DNS我們訪問天翼雲官網的時候只要記住 ctyun.cn 這個域名,而不用記住 118.85.194.44 這一長串數字,DNS儲存的即是域名和IP地址的對應關係。

DNS有多種型別的記錄,其中A記錄用於IPv4環境,AAAA記錄用於IPv6環境。

現在我有一個域名是ipv6.ctyun.pw,已經分別配置了A記錄和AAAA記錄。在IPv4環境下訪問 ipv6.ctyun.pw這個域名,DNS伺服器將會返回IPv4地址 42.123.125.182;在IPv6環境下訪問 ipv6.ctyun.pw 這個域名,DNS伺服器將會返回IPv6地址 2001:470:23:201::2

 

而云主機支援IPv6訪問,即我們需要在雲主機上生成一個類似 2001:470:23:201::2 這樣的IPv6地址,並能在IPv6環境下正常訪問我們的雲主機。

IPv6的過渡方案有多種,今天介紹當前最為常用的IPv6隧道代理方案。透過IPv6隧道,雲主機將和隧道伺服器之間建立一條隧道,IPv6使用者透過這條隧道,最終訪問到天翼雲的雲主機。

 

Hurricane Electric (  ) 提供免費的IPv6隧道服務,本文將以CentOS6.6為例,描述在天翼云云主機上使用Hurricane Electric的IPv6隧道服務,配置IPv6支援的過程。

示例雲主機繫結的彈性IP地址為 42.123.124.3,內網IP為 192.168.1.20,作業系統為CentOS 6.6。

 

1、雲主機安全組配置

在後續的配置中IPv6隧道服務將使用 66.220.2.74 這個IP地址對雲主機進行ICMP探測。如果雲主機安全組未開啟允許ICMP,需要增加一條規則,允許 66.220.2.74 對雲主機的ICMP訪問,否則後續的配置將不成功。

 

 

2、 作業系統配置啟用IPV6

修改雲主機的 /etc/sysctl.conf 配置檔案,加入以下配置

net.ipv6.conf.all.disable_ipv6 = 0

net.ipv6.conf.default.disable_ipv6 = 0

net.ipv6.conf.lo.disable_ipv6 = 0

 

配置/etc/sysconfig/network,加入以下配置

NETWORKING_IPV6=yes

配置完成後重啟雲主機

Windows可以跳過這一步

 

3、 註冊IPV6隧道服務

登入  網站,註冊一個賬號,登入郵箱點選連結啟用賬號。

以賬號登入 tunnelbroker網站,點選首頁左邊選單的 Create  Regular Tunnel。

輸入雲主機的公網IP,選擇一個隧道伺服器,點選Create tunnel按鈕。在本例中我們輸入雲主機的公網IP 42.123.124.3,並選擇使用北美的一臺隧道伺服器。

 

頁面返回提示建立隧道成功,並且給雲主機分配了一個IPV6地址 2001:470:23.201::2。

 

點選Tab頁的Example Configurations,下拉選單選擇Linux-route2,頁面將顯示Linux作業系統的配置命令 

 

同樣也可以切換到其它作業系統,獲取相應作業系統的配置命令。比如Windows 2008使用者可以選擇切換到Windows Vista/2008/7/8,獲取Windows的配置命令。

 

 

在命令中 42.123.124.3 是本測試用例中雲主機的公網IP。由於天翼云云主機網路卡的IP地址為內網IP,我們需要相應地修改一下命令。

本例中雲主機內網IP是 192.168.1.20,則將命令中的 42.123.124.3改為 192.168.1.20 

modprobe ipv6

ip tunnel add he-ipv6 mode sit remote 74.82.46.6 local 192.168.1.20 ttl 255

ip link set he-ipv6 up

ip addr add 2001:470:23:201::2/64 dev he-ipv6

ip route add ::/0 dev he-ipv6

ip -f inet6 addr

 

4、 雲主機上建立隧道

將上一步獲取的命令在Linux作業系統上覆制執行

 

Linux上執行 ifconfig he-ipv6,就能看到本機的IPV6地址。

ifconfig he-ipv6

he-ipv6   Link encap:IPv6-in-IPv4

          inet6 addr: 2001:470:23:201::2/64 Scope:Global

          inet6 addr: fe80::c0a8:10d/64 Scope:Link

          UP POINTOPOINT RUNNING NOARP  MTU:1480  Metric:1

          RX packets:1212 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1231 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:2159482 (2.1 MB)  TX bytes:120097 (120.0 KB)

 

使用ping6命令測試是否能ping通 IPV6地址,如果能通則表明配置成功。

ping6 2001:470:23:201::2

PING 2001:470:23:201::2(2001:470:23:201::2) 56 data bytes

64 bytes from 2001:470:23:201::2: icmp_seq=1 ttl=64 time=0.026 ms

64 bytes from 2001:470:23:201::2: icmp_seq=2 ttl=64 time=0.068 ms

64 bytes from 2001:470:23:201::2: icmp_seq=3 ttl=64 time=0.047 ms

64 bytes from 2001:470:23:201::2: icmp_seq=4 ttl=64 time=0.049 ms

 

5、 建立IPV6 DNS

完成以後配置後,雲主機已經能訪問到其它IPV6地址,其它IPv6使用者也可以使用IPV6地址 2001:470:23.201::2 訪問到這臺雲主機。

但蘋果IOS App稽核時還需要檢查伺服器的域名是否支援IPV6解析。

進入到你的域名服務管理頁面,新增一個AAAA記錄,指向 2001:470:23.201::2。

本例建立一個域名為 ipv6.ctyun.pw,指向 2001:470:23.201::2

 

等域名生效後,在雲主機上使用命令 ping6 ipv6.ctyun.pw,就可以正確解析了。


透過以上步驟,雲主機上成功分配了一個IPv6地址,且在IPv6環境下的使用者能正常訪問到雲主機,iOS App也能透過稽核了。

2017年11月26日,印發了《推進網際網路協議第六 版(IPv6)規模部署行動計劃》。《計劃》明確了推進IPv6部署的重要意義,提出了部署的總體要求和主要目標,並從網際網路應用、網路和應用基礎設施、網路安全和關鍵前沿技術角度,安排了實施步驟。根據《計劃》,要用5到10年時間,形成下一 代網際網路自主技術體系和產業生態,建成全球最大規模的IPv6商業應用網路,實現下一代網際網路在經濟社會各領域深度融合應用,成為全球下一代網際網路發展的重要主導力量。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2884668/,如需轉載,請註明出處,否則將追究法律責任。

相關文章