應用型負載均衡ALB(Application Load Balancer)支持轉發IPv6網絡請求,本文指導您如何為雙棧ALB實例開啟IPv6掛載,即ALB實例同時支持掛載IPv4和IPv6的云服務器ECS(Elastic Compute Service),使IPv6網絡的客戶端請求通過ALB可以訪問部署在后端的IPv4和IPv6服務。
場景示例
本文以下圖場景為例。某公司希望ALB可以轉發來自IPv6客戶端的請求,以實現IPv6客戶端使用公網正常訪問VPC中的IPv4和IPv6服務。該公司需要創建具有IPv4和IPv6地址的ECS,同時需要在VPC中創建雙棧ALB實例并創建具有IPv6掛載功能的服務器組。完成上述配置后,IPv6客戶端的請求即可通過ALB訪問部署在后端ECS上的IPv4和IPv6服務。
使用限制
雙棧支持的地域,請參見ALB雙棧支持的地域。
使用雙棧功能,需要開通VPC可用區中交換機的IPv6功能。
雙棧ALB實例支持將IPv4和IPv6的客戶端流量轉發至IPv4、IPv6的后端服務。
雙棧ALB實例將IPv6的客戶端流量轉發至IPv4的后端服務時,后端服務支持服務器類型(ECS、ENI、ECI)、IP類型,不支持函數計算類型。
雙棧ALB實例將IPv6的客戶端流量轉發至IPv6的后端服務時,后端服務支持服務器類型(ECS、ENI、ECI),不支持IP類型、函數計算類型。
不支持已有的IPv4實例升級為雙棧實例,僅支持新建雙棧實例。
IPv4類型的ALB實例在創建監聽時,無法添加開啟了IPv6掛載功能的服務器組。
前提條件
您已在華東2(上海)地域創建了一個VPC,并將該VPC名稱修改為VPC1,且該VPC已開通了IPv6功能。開通IPv6功能后,系統會為您默認創建一個IPv6網關,您需要確保該IPv6網關已開通公網帶寬。
關于如何為VPC開通IPv6功能,請參見新建IPv4和IPv6雙棧VPC。
關于如何開通IPv6公網帶寬,請參見開通和管理IPv6公網帶寬。
您已在華東2(上海)地域的可用區E和可用區G分別創建了一個交換機,并將可用區E的交換機名稱修改為交換機1,將可用區G的交換機名稱修改為交換機2,且交換機2已開通IPv6功能。具體操作,請參見新建IPv4/IPv6雙棧交換機。
配置步驟
步驟一:創建并配置ECS實例
- 登錄專有網絡管理控制臺。
在左側導航欄,單擊交換機。
選擇交換機的地域,本文選擇華東2(上海)。
在交換機頁面,找到目標交換機,然后在操作列選擇 。
在云服務器ECS購買頁面的自定義購買頁簽下,創建2臺ECS實例,并將IPv4 ECS修改實例名稱為ECS01,將IPv6 ECS修改實例名稱為ECS02,兩臺ECS實例綁定的安全組均需要放行80端口。具體操作,請參見自定義購買實例。
ECS實例名稱
地域
VPC名稱
交換機
IP版本
鏡像
ECS01
華東2(上海)
VPC1
可用區E的交換機1
IPv4
Alibaba Cloud Linux
ECS02
華東2(上海)
VPC1
可用區G的交換機2
IPv6
說明創建具有IPv6地址的實例時,需在IPv6處選中免費分配IPv6地址。
Alibaba Cloud Linux
遠程登錄ECS01和ECS02實例,具體操作,請參見ECS遠程連接操作指南。
在ECS01中執行如下命令,部署Nginx服務。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv4 rs." > index.html
在ECS02中執行如下命令,部署Nginx服務。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv6 rs." > index.html
配置ECS02實例的IPv6地址。
說明如果您的ECS02實例創建時已在IPv6處選中免費分配IPv6地址,可忽略此步驟。
本文以手動配置ECS02的IPv6地址為例進行配置說明。關于配置IPv6地址的更多操作,請參見為Linux實例配置 IPv6 地址。
執行
vi /etc/sysconfig/network-scripts/ifcfg-eth0
命令打開網卡配置文件,eth0為網卡標識符,您需要修改成實際的標識符。在文件中根據實際信息添加以下配置:DHCPV6C=yes IPV6INIT=yes
修改完成后按Esc鍵,并輸入:wq后按下回車鍵,保存并退出。
重啟實例。
reboot
重啟完成后,檢查ECS02實例是否已開啟IPv6服務。
執行
ip addr | grep inet6
或者ifconfig | grep inet6
命令:如果返回inet6相關內容,表示實例已成功開啟IPv6服務。
如果未返回inet6相關內容,表示實例未開啟IPv6服務。
下圖表示ECS02實例已開啟IPv6服務。
步驟二:ECS02配置IPv6安全組規則
您需要為ECS02實例配置IPv6安全組規則,使安全組入方向能夠允許接受IPv6客戶端發送的請求。
登錄ECS管理控制臺。
在左側導航欄,選擇 。
在頂部菜單欄處,選擇目標安全組的地域。本文選擇華東2(上海)。
在安全組頁面,找到目標安全組,在操作列單擊管理規則。
單擊安全組詳情頁面,然后在訪問規則區域,單擊入方向頁簽。
單擊手動添加,在規則列表中根據以下信息配置IPv6安全組規則,然后在操作列單擊保存。
參數
描述
授權策略
設置是否允許安全組的授權策略。本文選擇允許。
優先級
設置安全組的優先級。優先級的數值越小,優先級越高。取值范圍:1~100。
本文保持默認值1。
協議類型
允許入方向放行的安全組的協議類型。本文選擇全部ICMP(IPv6)。
端口范圍
允許入方向放行的安全組的端口范圍。
協議類型選擇全部ICMP(IPv6)時,端口范圍的目的端口只能設置為-1/-1且不能修改。
授權對象
輸入授權的IPv6地址段。
本文輸入::/0,表示授權所有IPv6地址。
說明本文配置的授權對象僅為示例,您可以根據需要放行指定的IPv6網段。
描述
自定義描述信息。
步驟三:創建ALB實例
- 登錄應用型負載均衡ALB控制臺。
在實例頁面,單擊創建應用型負載均衡。
在購買頁面,完成以下配置,然后單擊立即購買并根據控制臺提示完成實例開通。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用默認值。關于參數的更多信息,請參見創建實例。
參數
描述
地域
選擇實例所屬的地域。本文選擇華東2(上海)。
實例網絡類型
選擇實例網絡類型,系統會根據您的選擇分配私網或公網服務地址。本文選擇公網。
說明實例網絡類型選擇公網類型只作用于IPv4,IPv6默認是私網類型。本文使用IPv6的公網類型,需執行步驟4變更IPv6的網絡類型為公網類型。
VPC
選擇實例所屬的VPC。
說明請確保該VPC開啟了IPv6功能。
可用區
選擇至少2個可用區。本文選擇上海 可用區E,上海 可用區G。
分別在所選可用區內選擇交換機。本文選擇可用區E下的交換機1和可用區G下的交換機2。
IP模式
選擇實例的IP地址模式。本文選擇固定IP。
協議版本
選擇實例的IP協議版本。本文選擇雙棧。
功能版本(實例費)
選擇實例的功能版本。本文選擇標準版。
實例名稱
輸入自定義實例名稱。
服務關聯角色
首次創建應用型負載均衡實例時,需要單擊創建服務關聯角色,創建一個名稱為AliyunServiceRoleForAlb的服務關聯角色。系統會為該角色添加名稱為AliyunServiceRolePolicyForAlb的權限策略,授予ALB擁有訪問其他云產品實例的權限。更多操作,請參見應用型負載均衡ALB系統權限策略參考。
創建完公網雙棧ALB實例后,本文需要使用公網IPv6地址,請執行以下步驟將ALB實例的IPv6地址變更為公網地址。更多信息,請參見協議版本。
返回實例頁面,找到目標ALB實例,單擊實例ID。
在實例詳情頁簽的基本信息區域,找到網絡類型,然后在IPv6:私網的右側單擊變更網絡類型。
在變更網絡類型對話框中單擊確定變更。
變更成功后,您可以看到IPv6的網絡類型變成了公網。
步驟四:創建服務器組
在左側導航欄,選擇 。
在服務器組頁面,單擊創建服務器組。
在創建服務器組對話框中,完成以下配置,然后單擊創建。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用默認值。關于參數的更多信息,請參見創建服務器組。
參數
描述
服務器組類型
選擇一種服務器組類型。本文選擇服務器類型。
服務器組名稱
輸入自定義服務器組名稱。
VPC
從VPC下拉列表中選擇已創建的VPC,只有該VPC下的服務器可以加入到該服務器組。
說明確保您選擇的VPC開啟了IPv6功能,且與創建ALB實例時選擇的VPC相同。
選擇后端協議
選擇一種后端協議。本文選擇HTTP。
選擇調度算法
選擇一種調度算法。本文選擇加權輪詢。
IPv6掛載
選擇是否開啟IPv6掛載功能。本文只支持選擇開啟IPv6掛載功能。
會話保持
開啟或關閉會話保持。本文保持默認值即不開啟會話保持。
開啟健康檢查
開啟或關閉健康檢查。本文開啟。
健康檢查配置
開啟健康檢查后,您可以單擊后面的編輯,展開進行更多配置。
在服務器組頁面,找到目標服務器組,然后單擊目標服務器組ID。
單擊后端服務器頁簽,然后單擊添加后端服務器。
在添加后端服務器面板,選擇已創建的ECS01和ECS02實例,在IP地址列選擇ECS01實例的IPv4地址,選擇ECS02實例的IPv6地址,然后單擊下一步。
在配置端口和權重配置向導,設置ECS01和ECS02實例的端口和權重,然后單擊確定。
本文ECS實例端口配置為80,權重為默認值100。
步驟五:配置監聽
在實例頁面,找到目標實例,單擊實例ID。
單擊監聽頁簽,然后單擊創建監聽。
在配置監聽配置向導,完成以下配置,然后單擊下一步。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用默認值。關于配置監聽的更多操作,請參見添加HTTP監聽。
參數
描述
選擇監聽協議
選擇監聽的協議類型。本文選擇HTTP。
監聽端口
用來接收請求并向后端服務器進行請求轉發的監聽端口。本文輸入80。
監聽名稱
輸入自定義監聽名稱。
高級配置
本文保持默認,可單擊修改進行設置。
在選擇服務器組配置向導,選擇服務器類型及服務器類型下的目標服務器組,查看后端服務器信息,然后單擊下一步。
在配置審核配置向導,確認配置信息,然后單擊提交。
單擊知道了返回監聽頁簽,查看目標監聽的健康檢查狀態列為正常時,表示后端服務器ECS01和ECS02實例可以正常處理ALB實例轉發的請求。
(可選)步驟六:設置域名解析
在左側導航欄,選擇
在實例頁面,復制已創建的ALB實例的DNS名稱。
執行以下步驟添加CNAME解析記錄。
登錄域名解析控制臺。
在域名解析頁面單擊添加域名。
在添加域名對話框中輸入您的主機域名,然后單擊確認。
重要您的主機域名需已完成TXT記錄驗證。
在目標域名的操作列單擊解析設置。
在解析設置頁面,單擊添加記錄。
在添加記錄面板,配置以下信息完成CNAME解析配置,然后單擊確認。
配置
說明
記錄類型
在下拉列表中選擇CNAME。
主機記錄
您的域名的前綴。本文輸入@。
說明創建域名為根域名時,主機記錄為
@
。解析請求來源
選擇默認。
記錄值
輸入域名對應的CNAME地址,即您復制的ALB實例的DNS名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS服務器上的緩存時間,本文使用默認值。
步驟七:測試連通性
獲取訪問地址:
如果您設置了域名解析,使用自有域名通過CNAME域名解析的方式解析到ALB實例的公網服務域名,則訪問地址為您的自有域名。
如果您未使用自有域名,可登錄應用型負載均衡ALB控制臺,頂部選擇實例所屬地域,在目標ALB實例DNS名稱列復制ALB實例的公網服務域名,作為訪問地址。
您可以通過以下操作測試IPv6客戶端的終端與VPC中的ECS實例之間的連通性。
說明測試連通性時,請確保您的客戶端已支持IPv6功能,您可以在瀏覽器地址欄輸入網址
http://test-ipv6.com/
測試您的客戶端是否支持IPv6功能。以任意一臺可以訪問IPv6客戶端的終端為例,測試IPv6客戶端與VPC中ECS01和ECS02的連通性。
打開終端的cmd窗口。
多次執行以下命令,測試IPv6客戶端是否可以通過ALB以輪詢的方式訪問IPv4 ECS以及IPv6 ECS。
curl -6 http://<ALB域名> -v
如果收到如下所示的回復報文,則表示IPv6客戶端可以訪問IPv4 ECS。
如果收到如下所示的回復報文,則表示IPv6客戶端可以訪問IPv6 ECS。
完成上述操作后,表明IPv6客戶端可以通過ALB以輪詢的方式訪問VPC中部署的IPv4服務和IPv6服務。
釋放資源
清理ECS、安全組等資源:
刪除ECS01實例及其安全組:
登錄云服務器ECS實例控制臺,頂部選擇實例所屬地域,單擊ECS01實例右側的,彈出的窗口中選擇釋放,立即釋放實例并確認。
登錄云服務器ECS安全組控制臺,頂部選擇實例所屬地域,勾選ECS01自定義安全組并單擊刪除,刪除安全組。
參照上述步驟,刪除ECS02實例及對應安全組資源。
(可選)刪除域名解析記錄:
刪除域名解析記錄,具體操作,請參見刪除域名解析記錄。
清理ALB資源:
登錄應用型負載均衡ALB控制臺。頂部選擇實例所屬地域,單擊目標實例右側的,彈出的窗口中選擇釋放并確認。
移除后端服務器,具體操作,請參見移除后端服務器。
刪除服務器組,具體操作,請參見刪除服務器組。
清理VPC資源:
登錄專有網絡VPC控制臺,頂部選擇實例所屬地域。
單擊實例右側刪除,刪除時勾選強制刪除,完成VPC與交換機資源的刪除。