網路型負載平衡NLB(Network Load Balancer)支援轉寄IPv6網路請求,本文指導您如何為雙棧NLB執行個體開啟IPv6掛載,即NLB執行個體同時支援掛載IPv4和IPv6的Elastic Compute Service(Elastic Compute Service),使IPv6網路的用戶端請求通過NLB可以訪問部署在後端的IPv4和IPv6服務。
情境樣本
本文以下圖情境為例。某公司希望NLB可以轉寄來自IPv6用戶端的請求,以實現IPv6用戶端使用公網正常訪問VPC中的IPv4和IPv6服務。該公司需要建立具有IPv4和IPv6地址的ECS,同時需要在VPC中建立雙棧NLB執行個體並建立具有IPv6掛載功能的伺服器組。完成上述配置後,IPv6用戶端的請求即可通過NLB訪問部署在後端ECS上的IPv4和IPv6服務。
使用限制
NLB雙棧支援的地區,請參見NLB雙棧支援的地區。
使用雙棧功能,需要開通VPC可用性區域中交換器的IPv6功能。
雙棧NLB執行個體支援將IPv6的用戶端流量轉寄至IPv4、IPv6的後端服務。
不支援已有的IPv4執行個體升級為雙棧執行個體,僅支援建立雙棧執行個體。
IPv4類型的NLB執行個體在建立監聽時,無法添加開啟了IPv6掛載功能的伺服器組。
前提條件
您已在華東2(上海)地區建立了一個VPC,並將該VPC名稱修改為VPC1,且該VPC已開通了IPv6網段。開通IPv6網段後,系統會為您預設建立一個IPv6網關。
您已在華東2(上海)地區的可用性區域E和可用性區域G分別建立了一個交換器,並將可用性區域E的交換器名稱修改為交換器1,將可用性區域G的交換器名稱修改為交換器2,且交換器1和交換器2均已開通IPv6。
步驟一:建立並配置ECS執行個體
- 登入專用網路管理主控台。
在左側導覽列,單擊交換器。
選擇交換器的地區,本文選擇華東2(上海)。
在交換器頁面,找到目標交換器,然後在操作列選擇 。
在Elastic Compute Service購買頁面的自訂購買頁簽下,建立2台ECS執行個體,並將IPv4 ECS修改執行個體名稱為ECS01,將IPv6 ECS修改執行個體名稱為ECS02,同時ECS綁定的安全性群組均需要允許存取80連接埠。具體操作,請參見自訂購買執行個體。
遠程登入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地址。具體操作請參見IPv6通訊。
說明如果您的ECS02執行個體鏡像為Alibaba Cloud Linux 3.2104 LTS 64,並且在建立時已在IPv6處選中免費分配IPv6地址,可忽略此步驟。
步驟二:ECS02配置IPv6安全性群組規則
您需要為ECS02執行個體配置IPv6安全性群組規則,使安全性群組入方向能夠允許接受IPv6用戶端發送的請求。
登入ECS管理主控台。
在頂部功能表列處,選擇目標安全性群組的地區。本文選擇華東2(上海)。
在左側導覽列,選擇 。
在安全性群組頁面,找到目標安全性群組,在操作列單擊管理規則。
單擊安全性群組詳情頁面,然後在訪問規則地區,單擊入方向頁簽。
單擊手動添加,在規則列表中根據以下資訊配置IPv6安全性群組規則,然後在操作列單擊儲存。
參數
描述
授權策略
設定是否允許安全性群組的授權策略。本文選擇允許。
優先順序
設定安全性群組的優先順序。優先順序的數值越小,優先順序越高。取值範圍:1~100。
本文保持預設值1。
協議類型
允許入方向允許存取的安全性群組的協議類型。本文選擇全部ICMP(IPv6)。
連接埠範圍
允許入方向允許存取的安全性群組的連接埠範圍。
協議類型選擇全部ICMP(IPv6)時,連接埠範圍的目的連接埠只能設定為-1/-1且不能修改。
授權對象
輸入授權的IPv6位址區段。
本文輸入::/0,表示授權所有IPv6地址。
說明本文配置的授權對象僅為樣本,您可以根據需要允許存取指定的IPv6網段。
步驟三:建立NLB執行個體
- 登入網路型負載平衡NLB控制台。
在執行個體頁面,單擊建立網路型負載平衡。
在購買頁面,完成以下配置,然後單擊立即購買並根據控制台提示完成執行個體開通。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用預設值。關於參數的更多資訊,請參見建立和管理NLB執行個體。
建立完公網雙棧NLB執行個體,系統預設提供私網IPv6地址,執行以下步驟,將私網IPv6地址變更為公網IPv6地址。
返回執行個體頁面,找到目標NLB執行個體,單擊執行個體ID。
在實例詳情頁簽的基本資料地區,找到網路類型,然後在IPv6:私網的右側單擊變更網路類型。
在變更網路類型對話方塊中單擊確定變更。
變更成功後,您可以看到IPv6的網路類型由私網變成了公網。
步驟四:建立伺服器組
在頂部功能表列,選擇NLB執行個體所屬的地區。
在伺服器組頁面,單擊建立伺服器組。
在建立伺服器組對話方塊中,完成以下配置,然後單擊建立。
關鍵配置資訊可參考下表,其他未列出的配置項使用預設值。關於參數的更多資訊,請參見建立伺服器組。
參數
說明
伺服器群組類型
伺服器組掛載的後端伺服器類型。本文選擇伺服器類型。
伺服器組名稱
自訂填寫伺服器組名稱。
VPC
伺服器組所屬VPC。
說明確保您選擇的VPC開啟了IPv6功能,且與建立NLB執行個體時選擇的VPC相同。
選擇後端協議
選擇一種後端協議。本文選擇TCP。
選擇調度演算法
選擇一種調度演算法。本文選擇加權輪詢。
IPv6掛載
選擇是否開啟IPv6掛載功能。本文只支援選擇開啟IPv6掛載功能。
健全狀態檢查
開啟或關閉健全狀態檢查。本文保持預設配置。
單擊伺服器組執行個體右側操作列的編輯後端伺服器,然後單擊添加後端伺服器。
在添加後端伺服器面板,選擇伺服器類型為Elastic Compute Service/彈性網卡ENI,選擇已建立的ECS01和ECS02執行個體,在IP地址列選擇ECS01執行個體的IPv4地址,選擇ECS02執行個體的IPv6地址,然後單擊下一步。
在配置連接埠和權重設定精靈,設定ECS01和ECS02執行個體的權重和連接埠,然後單擊確定
本文ECS執行個體連接埠配置為80,權重為預設值100。
步驟五:配置監聽
在左側導覽列,選擇 。
在執行個體頁面,找到目標執行個體,在操作列單擊建立監聽。
在配置監聽設定精靈,完成以下配置,然後單擊下一步。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用預設值。關於配置監聽的更多操作,請參見添加TCP監聽。
參數
描述
選擇監聽協議
選擇監聽的協議類型。本文選擇TCP。
監聽連接埠
用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。本文輸入80。
監聽名稱
輸入自訂監聽名稱。
高級配置
本文保持預設,可單擊修改進行設定。
在選擇伺服器組設定精靈,選擇伺服器類型及伺服器類型下的目標伺服器組,查看後端伺服器資訊,然後單擊下一步。
在設定審核設定精靈,確認配置資訊,然後單擊提交。
單擊知道了返回監聽頁簽,查看目標監聽的健全狀態檢查狀態列為正常時,表示後端伺服器ECS01和ECS02執行個體可以正常處理NLB執行個體轉寄的請求。
步驟六:設定網域名稱解析
實際業務情境中,建議您使用自有網域名稱,通過CNAME解析的方式將自有網域名稱指向NLB執行個體網域名稱。
在左側導覽列,選擇 。
在執行個體頁面,複製已建立的NLB執行個體的DNS名稱。
執行以下步驟添加CNAME解析記錄。
說明對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析設定。具體操作,請參見網域名稱管理。如果您是阿里雲註冊的網域名稱,請直接執行以下步驟。
登入網域名稱解析控制台。
在權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定。
在解析設定頁面,單擊添加記錄。
在添加記錄面板,配置以下資訊完成CNAME解析配置,然後單擊確定。
配置
說明
記錄類型
在下拉式清單中選擇CNAME。
主機記錄
您的網域名稱的首碼。本文輸入@。
說明建立網域名稱為根網域名稱時,主機記錄為@。
解析請求來源
選擇預設。
記錄值
輸入欄位名對應的CNAME地址,此處為NLB執行個體的DNS名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。
步驟七:驗證結果
測試NLB可用性:
說明測試可用性時,請確保您的用戶端已支援IPv6功能。
以任意一台可以訪問IPv6服務的Linux用戶端為例。如果未安裝telnet,以CentOS系統為例可以參考執行
yum install -y telnet
安裝telnet。執行
telnet 網域名稱 連接埠
命令,收到下圖回複報文Connected to nlb-...,則表示NLB可以將請求轉寄至後端伺服器。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'
通過瀏覽器訪問網域名稱,例如
http://網域名稱
,可以看到如下圖所示,表示NLB可以將請求轉寄至後端伺服器。
(可選)類比故障:
在ECS01中執行
systemctl stop nginx.service
停用應用。等待幾分鐘後,用戶端再次執行
telnet 網域名稱 連接埠
命令,仍然收到下圖回複報文Connected to nlb-...Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'
通過瀏覽器訪問網域名稱,例如
http://網域名稱
,可以看到如下圖所示,表示NLB可以將請求轉寄至後端伺服器。在ECS01中執行
systemctl start nginx.service
重新啟動應用,在ECS02中執行systemctl stop nginx.service
停用應用。等待幾分鐘後,在用戶端中再次執行
telnet 網域名稱 連接埠
命令,仍然收到下圖回複報文Connected to nlb-...Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'
通過瀏覽器訪問網域名稱,例如
http://網域名稱
,可以看到如下圖所示,表示NLB可以將請求轉寄至後端伺服器。如上表明後端單台伺服器故障不影響NLB可用性。
釋放資源
清理ECS、安全性群組等資源:
刪除ECS01執行個體及其安全性群組:
登入Elastic Compute Service執行個體控制台,頂部選擇執行個體所屬地區,單擊ECS01執行個體右側的,彈出的視窗中選擇釋放,立即釋放執行個體並確認。
登入Elastic Compute Service安全性群組控制台,頂部選擇執行個體所屬地區,勾選ECS01自訂安全性群組並單擊刪除,刪除安全性群組。
參照上述步驟,刪除ECS02執行個體及對應安全性群組資源。
刪除網域名稱解析記錄;
刪除網域名稱解析記錄,請參見刪除網域名稱解析記錄。
清理NLB資源:
登入網路型負載平衡NLB控制台,頂部選擇執行個體所屬地區,單擊執行個體右側的,彈出的視窗中選擇釋放並確認。
登入網路型負載平衡NLB控制台,頂部選擇執行個體所屬地區,在伺服器組菜單單擊伺服器組右側的,彈出的視窗中選擇刪除並確認。
清理VPC資源:
登入Virtual Private Cloud控制台,頂部選擇執行個體所屬地區。
單擊執行個體右側刪除,刪除時並且勾選強制移除,完成VPC與交換器資源的刪除。
相關文檔
瞭解NLB的應用情境、組成等資訊,請參見什麼是網路型負載平衡NLB。
瞭解NLB的功能特性,請參見功能特性。
瞭解NLB的配額及提升配額方式,請參見使用限制。
瞭解NLB支援的地區資訊,請參見NLB支援地區和可用性區域。
瞭解NLB計費文檔,請參見NLB計費規則。