如果您需要在VPC中進行IPv6公私網通信,您可以在開通了IPv6網段的VPC和交換機下創建帶有IPv6地址的ECS實例。本文介紹ECS實例如何實現通過IPv6地址通信、如何為ECS實例分配IPv6地址、配置IPv6地址等。
由于IPv4網絡地址資源的有限性,在IPv4環境中,網絡工程師經常需要花費大量時間和精力去解決地址沖突等問題。相比之下,引入IPv6網段后,不僅因其龐大的地址空間解決了網絡地址資源的限制問題,還消除了眾多接入設備連接互聯網時所面臨的障礙。
使用限制
IPv6網關支持的地域
區域 | 地域 |
中國 | 華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華東1(杭州)、華東2(上海)、華東5(南京-本地地域)、華東6(福州-本地地域)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國香港、華中1(武漢-本地地域) |
亞太 | 菲律賓(馬尼拉)、新加坡、日本(東京)、韓國(首爾)、印度尼西亞(雅加達)、馬來西亞(吉隆坡)、泰國(曼谷) |
歐洲與美洲 | 美國(弗吉尼亞)、美國(硅谷)、德國(法蘭克福) |
不支持IPv6的ECS實例規格族
密集計算型實例規格族ic5
內存型實例規格族se1
大數據型實例規格族d1
本地SSD型實例規格族i2g,本地SSD型實例規格族i1
高主頻計算型實例規格族hfc5,高主頻通用型實例規格族hfg5
通用型彈性裸金屬服務器實例規格族ebmg5,內存網絡增強型彈性裸金屬服務器實例規格族ebmr5s
上一代共享型實例規格族xn4、n4、mn4、e4
配置步驟
您可以通過一鍵部署快速完成以下操作。
步驟一: 分配IPv6地址
為ECS實例分配IPv6地址,以使其能夠通過IPv6協議與其他實例或外部網絡進行通信。
為已有實例分配IPv6地址
新建實例時分配IPv6地址
創建實例時,需要注意以下信息(其他配置說明,請參見自定義購買實例):
網絡及可用區:選擇已開通IPv6的專有網絡和交換機。若未開通,可參考文檔交換機開通IPv6。
實例:篩選出支持IPv6的實例規格,并選擇一個實例規格。
帶寬和安全組:單擊彈性網卡|IPv6(選填),然后選中免費分配 IPv6 地址。
分配完成后,您可以通過ECS管理控制臺查看IP地址詳情。具體操作,請參見查看IP地址。
步驟二: 配置IPv6地址
將IPv6地址配置到云服務器的網卡上,以使鏡像操作系統內部識別并生效IPv6。
部分鏡像支持自動配置并識別IPv6地址,通過以下步驟確認您的ECS實例操作系統是否已經識別了IPv6地址。
Linux實例
遠程連接Linux實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
執行
ip -6 addr show
或者ifconfig
命令。如果返回信息如下圖所示,則表示已成功識別IPv6地址,可以跳過此配置IPv6的步驟,如果沒有,請繼續執行以下操作。
Windows實例
遠程連接Windows實例。
具體操作,請參見通過密碼認證登錄Windows實例。
打開命令行工具,執行
ipconfig
命令如果返回信息如下圖所示,則表示已成功識別IPv6地址,可以跳過此配置IPv6的步驟,如果沒有,請繼續執行以下操作。
配置IPv6地址。
重要自動配置IPv6地址方式需安裝云助手;若您的實例不支持或不方便安裝云助手,請通過手動方式配置IPv6地址。
(推薦)自動配置IPv6地址
前提條件
實例已安裝云助手。若未安裝,請參見安裝云助手Agent。
僅適用于以下操作系統:Alibaba Cloud Linux 2/3、CentOS 6/7/8、Red Hat 6/7、Anolis OS、Fedora、Ubuntu 14/16/18/20、Debian 8/9/10/11、SUSE 11/12/15、OpenSUSE 15/42、FreeBSD 11。
重要配置過程需使用到云助手,可能會自動重啟網卡、網絡服務,短時間內網絡可能會不可用,請慎重執行。
操作步驟
遠程連接Linux實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
執行以下命令配置IPv6地址。
說明在默認情況下,執行以下命令時會自動校驗
ecs-utils-ipv6
插件是否已在本地安裝,或本地版本是否為最新。若未安裝或版本較舊,插件將自動從網絡上下載最新版本并執行安裝,這一過程需要您的ECS實例具備公網訪問功能。sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6
手動配置(Linux)
遠程連接Linux實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
執行
ip addr | grep inet6
或者ifconfig | grep inet6
命令,檢查實例是否已開啟IPv6服務。如果未返回
inet6
相關內容:表示實例未開啟IPv6服務,請開啟IPv6服務。Alibaba Cloud Linux 2/3
執行以下命令,修改
/etc/sysctl.conf
配置文件。vi /etc/sysctl.conf
按
i
鍵進入編輯模式,找到如下內容,將內容末尾數值1
替換為0
。net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
如果需要開啟指定網絡接口,修改信息示例如下。
net.ipv6.conf.eth0.disable_ipv6 = 0
修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。執行以下命令,驗證
/etc/sysctl.conf
配置信息是否與initramfs中的/etc/sysctl.conf
存在差異。diff -u /etc/sysctl.conf <(lsinitrd -f /etc/sysctl.conf)
說明Alibaba Cloud Linux 2配置了initramfs(initram file system)。如果initramfs中的
/etc/sysctl.conf
文件與IPv6的配置文件/etc/sysctl.conf
存在差異,系統可能會生效新的配置,與您需求的配置混淆。若兩個配置文件存在差異,執行以下命令,重新生成
initramfs
。sudo dracut -v -f
重啟ECS實例使配置生效。具體操作,請參見重啟實例。
執行
ip addr | grep inet6
或者ifconfig | grep inet6
命令,驗證是否已成功開啟IPv6。若系統返回
inet6
相關內容,則表示IPv6服務已成功開啟。
CentOS 6/7
執行以下命令,修改
/etc/modprobe.d/disable_ipv6.conf
配置文件。vi /etc/modprobe.d/disable_ipv6.conf
按
i
鍵進入編輯模式,將options ipv6 disable=1
修改為options ipv6 disable=0
。修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,修改
/etc/sysconfig/network
配置文件。vi /etc/sysconfig/network
按
i
鍵進入編輯模式,將NETWORKING_IPV6=no
修改為NETWORKING_IPV6=yes
。修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
(可選)依次執行以下命令,重新加載IPv6模塊。
說明若您的操作系統為CentOS 6,則需要執行該步驟。否則,跳過該步驟。
modprobe ipv6 -r modprobe ipv6 lsmod | grep ipv6
若系統返回以下內容,表明IPv6模塊已經成功加載。
ipv6 xxxxx 8
說明返回內容第三列參數值不能為 0,否則您需要重新設置IPv6服務。
執行以下命令,修改
/etc/sysctl.conf
配置文件。vi /etc/sysctl.conf
按
i
鍵進入編輯模式,找到如下內容,替換內容末尾數值1
為0
。net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,使配置生效。
sudo sysctl -p
Debian 8/9
執行以下命令,修改
/etc/default/grub
配置文件。vi /etc/default/grub
按
i
鍵進入編輯模式,刪除ipv6.disable=1
內容。修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,修改
/boot/grub/grub.cfg
配置文件。vi /boot/grub/grub.cfg
按
i
鍵進入編輯模式,刪除ipv6.disable=1
內容。修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
重啟Linux實例。具體操作,請參見重啟實例。
執行以下命令,修改
/etc/sysctl.conf
配置文件。vi /etc/sysctl.conf
按
i
鍵進入編輯模式,找到如下內容,替換內容末尾數值1
為0
。net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,使配置生效。
sudo sysctl -p
Ubuntu 14/16、OpenSUSE 42
執行以下命令。修改
vi /etc/sysctl.conf
配置文件。vi /etc/sysctl.conf
按
i
鍵進入編輯模式,找到如下內容,替換內容末尾數值1
為0
。net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,使配置生效。
sysctl -p
FreeBSD 11
執行以下命令,修改
/etc/rc.conf
配置文件。vi /etc/rc.conf
按
i
鍵進入編輯模式,添加ipv6_activate_all_interfaces="YES"
內容。修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,重啟網絡使配置生效。
/etc/netstart restart
SUSE 11/12
執行以下命令,修改
/etc/modprobe.d/50-ipv6.conf
配置文件。vi /etc/modprobe.d/50-ipv6.conf
按
i
鍵進入編輯模式,刪除install ipv6 /bin/true
內容。修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令。修改
vi /etc/sysctl.conf
配置文件。vi /etc/sysctl.conf
按
i
鍵進入編輯模式,找到如下內容,替換內容末尾數值1
為0
。net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。
執行以下命令,使配置生效。
sysctl -p
如果返回
inet6
相關內容:表示實例已開啟IPv6服務,請配置IPv6地址。
Alibaba Cloud Linux 2/3、CentOS 6/7、Red Hat 6/7
執行以下命令,修改網卡配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0
:需要替換為實際網卡接口名稱。修改完成后,保存并退出。按
i
鍵進入編輯模式,在文件中根據實際信息添加以下配置。DHCPV6C=yes IPV6INIT=yes
修改完成后按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出。重啟ECS實例使配置生效。具體操作,請參見重啟實例。
CentOS 8
確認網卡配置文件是否包含
IPV6INIT=yes
和DHCPV6C=yes
兩項內容。如果包含直接進行下一步操作,如果未包含需先手動添加。vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0
為網卡標識符,您需要修改成實際的標識符。修改完成后,保存并退出。禁用cloud-init修改
/etc/sysconfig/network-scripts/
目錄下網卡文件的能力。說明分配IPv6地址后無需手動配置,但重啟之后可能丟失,因此需要禁用cloud-init修改網卡文件的能力。
執行
vi /etc/cloud/cloud.cfg
打開網卡配置文件。vi /etc/cloud/cloud.cfg
在
Example datasource config
內容前添加以下信息:network: config: disabled
修改完成后,保存并退出。
重啟ECS實例使配置生效。具體操作,請參見重啟實例。
Debian 8/9/10/11、Ubuntu 16
執行
vi /etc/network/interfaces
打開網卡配置文件,在文件中根據實際信息添加以下內容:iface eth0 inet6 dhcp
eth0
:需要替換為實際網卡接口名稱。修改完成后,保存并退出。重啟ECS實例使配置生效。具體操作,請參見重啟實例。
Ubuntu 18/20
禁用cloud-init修改
/etc/sysconfig/network-scripts/
目錄下網卡文件的能力。說明分配IPv6地址后無需手動配置,但重啟之后可能丟失,因此需要禁用cloud-init修改網卡文件的能力。
執行
vi /etc/cloud/cloud.cfg
打開網卡配置文件。vi /etc/cloud/cloud.cfg
在
Example datasource config
內容前添加以下信息:network: config: disabled
修改完成后,保存并退出。
重啟ECS實例使配置生效。具體操作,請參見重啟實例。
Ubuntu 14
執行
vi /etc/network/interfaces
打開網卡配置文件,在文件中根據實際信息添加以下內容:iface eth0 inet6 dhcp
eth0
:需要替換為實際網卡接口名稱。修改完成后,保存并退出。重啟ECS實例使配置生效。具體操作,請參見重啟實例。
FreeBSD 11
執行
vi /etc/rc.conf
命令,打開網卡配置文件,在文件中根據實際信息添加以下內容:ipv6_enable="YES" ipv6_ifconfig_vtnet0="<IPv6地址> <子網前綴長度>"
vtnet0
:需要替換為實際網卡接口名稱。修改完成后,保存并退出。繼續在文件中修改以下信息,修改完成后,保存并退出。
ip6addrctl_enable="YES" ipv6_activate_all_interfaces="YES" ipv6_network_interfaces="auto"
修改完成后,配置文件內容示例如下:
hostname="Aliyun" sshd_enable="YES" dumpdev="NO" ipv6_enable="YES" ip6addrctl_enable="YES" ip6addrctl_policy="ipv4_prefer" ipv6_activate_all_interfaces="YES" ipv6_network_interfaces="auto" ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0" ifconfig_vtnet0="inet 192.168.XX.XX netmask 255.255.255.0" ipv6_ifconfig_vtnet0="2001:XXXX:4:4:4:4:4:4 prefixlen 64" defaultrouter="192.168.XX.XX" hostname="freebsd"
重啟ECS實例使配置生效。具體操作,請參見重啟實例。
Anolis OS 7.9/8.4、CentOS Stream、Fedora
確認網卡配置文件是否包含
IPV6INIT=yes
和DHCPV6C=yes
兩項內容。如果包含無需再做任何操作,如果未包含需先手動添加。vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0
:需要替換為實際網卡接口名稱。修改完成后,保存并退出。重啟ECS實例使配置生效。具體操作,請參見重啟實例。
手動配置(Windows)
遠程連接Windows實例。
具體操作,請參見通過密碼認證登錄Windows實例。
打開命令行工具,執行
ipconfig
命令,檢查實例是否已開啟IPv6服務。如果未返回
inet6
相關內容:表示實例未開啟IPv6服務,請開啟IPv6服務。選擇
。單擊當前網絡連接名,打開狀態界面,再單擊屬性。
選中Internet 協議版本 6 (TCP/IPv6)。
Windows Server 2008/2012/2016/2019/2022的操作步驟如下:
檢查IPv6協議這一行是否被選中。如果沒有選中則需要先選中,然后單擊確定。
Windows Server 2003的操作步驟如下:
根據IPv6協議是否存在,執行不同操作。
存在IPv6協議:選中Internet 協議版本 6 (TCP/IPv6),再單擊確定。
不存在IPv6協議:
在本地連接屬性頁面,單擊安裝,在網絡組件類型頁面單擊
。在選擇網絡協議頁面,選擇
完成安裝。選中Internet 協議版本 6 (TCP/IPv6),再單擊確定。
如果返回
inet6
相關內容:表示實例已開啟IPv6服務,請配置IPv6地址。
配置IPv6地址。
在實例詳情頁,獲取已生成的IPv6地址。
Windows Server 2008/2012/2016的操作步驟如下:
選擇
。單擊當前網絡連接名,打開狀態界面,再單擊屬性。
選擇
。選中使用以下IPv6地址,并填入IPv6地址、子網前綴長度和IPv6網關,單擊確定。
(可選)綁定多個IPv6地址:在Internet 協議版本 6(TCP/IP)屬性界面,單擊高級打開高級設置界面,單擊添加做批量處理。完成后單擊確定。
Windows Server 2003的操作步驟如下:
選擇
,查看當前網絡連接名,假設為本地連接 2。在Windows系統桌面使用
Win+R
組合鍵打開運行對話框,并輸入cmd
命令,然后單擊確定,打開命令行工具。添加IPv6地址。
單個IPv6地址執行以下命令:
多個IPv6地址執行以下命令:
netsh interface ipv6 add address "本地連接 2" <IPv6 地址>
netsh interface ipv6 add address "本地連接 2" <IPv6 地址 1> netsh interface ipv6 add address "本地連接 2" <IPv6 地址 2>
執行以下命令,添加默認路由。
netsh interface ipv6 add route ::/0 "本地連接 2" <IPv6 網關>
(條件必選)如果您的ECS實例運行的是Linux系統,請執行此步驟;否則,可跳過此操作。
執行以下命令,查看實例是否安裝了多網卡配置工具。
ls /sbin/eni-ifscan
若返回信息如下圖,則表示實例預裝了多網卡配置工具,您需要修改多網卡配置工具的
eni-function
文件。說明如果Linux實例預裝了多網卡配置工具,由于該工具默認不支持IPv6,將導致Linux系統內的IPv6網卡無法自動識別,實例重啟后系統無法獲取IPv6地址。
執行以下命令,修改
eni-function
文件。vim /etc/eni_utils/eni-function
按
i
鍵進入編輯模式,將IPV6INIT=no
修改為IPV6INIT=yes
,并添加DHCPV6C=yes
行,修改后保存并退出。
驗證,當輸入
ifconfig
或ipconfig
命令返回第一步的結果時即表示配置成功。
步驟三: (可選)開通IPv6公網帶寬
默認云服務器的IPv6地址僅具有私網通信能力,若您想要通過該IPv6地址訪問公網或被公網訪問,則需開通IPv6公網帶寬。
登錄專有網絡管理控制臺。
在左側導航欄,選擇 。
- 在頂部菜單欄處,選擇IPv6網關的地域。
在IPv6網關頁面,根據實例的專有網絡ID找到對應IPv6網關,然后單擊IPv6網關ID。
在IPv6網關的詳情頁面,單擊IPv6公網帶寬頁簽,找到目標IPv6地址,然后在操作列單擊開通公網帶寬。
在IPv6公網帶寬(后付費)頁面,根據以下信息配置公網帶寬,然后單擊立即購買并完成支付。
參數
描述
流量
選擇公網帶寬的計費類型。
公網帶寬支持按固定帶寬計費和按使用流量計費兩種計費類型。更多信息,請參見計費說明。
帶寬
根據需要調整公網帶寬的帶寬峰值。
計費周期
公網帶寬的計費周期。有Day(按天)和Hour(按小時)兩種計費周期。
當公網帶寬選擇按固定帶寬計費時,計費周期為Day(按天),當公網帶寬選擇按使用流量計費時,計費周期為Hour(按小時)。
步驟四: IPv6網絡連通性測試驗證
測試IPv6的網絡連通性,以保證配置的IPv6地址已具備訪問公網或被公網訪問的能力。
測試IPv6的網絡連通性時,您需要確保服務端與客戶端都支持并配置了IPv6。
測試公網連通性
ping -6 aliyun.com
系統返回信息如下圖所示,表示網絡連接正常。
在此示例中,網站aliyun.com已支持IPv6,當您的ECS實例配置完成后,即可通過IPv6訪問aliyun.com。
測試私網連通性
在ECS01實例中執行ping6 <ECS02 IPv6私網地址>
命令,ping6
ECS02實例的IPv6地址,測試私網通信是否正常。
如果能接收到回復報文,表示通信正常。經測試,ECS01實例到ECS02實例的IPv6私網通信正常。
在ECS02實例中執行ping6
命令,ping
ECS01實例的IPv6地址,測試私網通信是否正常。
如果能接收到回復報文,表示通信正常。經測試,ECS02實例到ECS01實例的IPv6私網通信正常。
在此示例中,兩臺ECS實例互相訪問的前提是您的ECS01實例與ECS02實例均已配置了IPv6。
其他操作
添加IPv6安全組規則
IPv4和IPv6通信彼此獨立,如果當前的安全組規則不能滿足業務需求,為了增強網絡安全性您需要為ECS實例單獨配置IPv6安全組規則。
刪除已分配的IPv6地址
如果您的ECS實例不需要IPv6地址,您可以刪除實例的IPv6地址。刪除IPv6地址后,您仍然可以使用IPv4地址。本章節介紹如何通過ECS管理控制臺刪除IPv6地址。
請確保實例的狀態為運行中或已停止。
操作步驟
登錄ECS管理控制臺。
在左側導航欄,選擇 。
在頁面左側頂部,選擇目標資源所在的資源組和地域。
在彈性網卡頁面,選擇已綁定至目標實例并分配了IPv6地址的彈性網卡,然后在操作列單擊管理彈性網卡IP。
在彈出的管理彈性網卡IP對話框中,單擊IPv6地址信息右側的圖標。
單擊確定。
相關文檔
當某個IPv6地址不需要公網通信能力時,您可以刪除IPv6地址的公網帶寬。具體操作,請參見刪除IPv6公網帶寬。
您可以通過添加和管理路由表中的IPv6路由,來管理專有網絡 VPC(Virtual Private Cloud)內的IPv6流量。具體操作,請參見添加和管理路由表中IPv6路由。