網絡型負載均衡NLB(Network Load Balancer)支持轉發IPv6網絡請求,本文指導您如何為雙棧NLB實例開啟IPv6掛載,即NLB實例同時支持掛載IPv4和IPv6的云服務器ECS(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(上海)地域創建了一個VPC1,且該VPC1已開通了IPv6功能。開通IPv6功能后,系統會為您默認創建一個IPv6網關,您需要確保該IPv6網關已開通公網帶寬。
關于如何為VPC開通IPv6功能,請參見新建IPv4和IPv6雙棧VPC。
關于如何開通IPv6公網帶寬,請參見開通和管理IPv6公網帶寬。
您已在華東2(上海)地域可用區E創建交換機1,在可用區G創建交換機2,且交換機1和交換機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網段。
步驟三:創建NLB實例
- 登錄網絡型負載均衡NLB控制臺。
在實例頁面,單擊創建網絡型負載均衡。
在購買頁面,完成以下配置,然后單擊立即購買并根據控制臺提示完成實例開通。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用默認值。關于參數的更多信息,請參見創建和管理NLB實例。
配置
說明
地域
選擇實例所屬的地域。
實例網絡類型
選擇實例網絡類型,系統會根據您的選擇分配私網或公網服務地址。本文選擇公網。
說明實例網絡類型選擇公網類型只作用于IPv4,IPv6默認是私網類型。本文使用IPv6的公網類型,需執行步驟4變更IPv6的網絡類型為公網類型。
VPC
選擇實例所屬的VPC。
說明請確保該VPC開啟了IPv6功能。
可用區
至少選擇2個可用區。本文選擇上海 可用區E及該可用區下的交換機1,上海 可用區G及該可用區下的交換機2。
協議版本
選擇實例的協議版本。本文選擇雙棧。
實例名稱
自定義實例名稱。
資源組
選擇所屬的資源組。
服務關聯角色
首次創建NLB實例時,需要單擊創建服務關聯角色,創建一個名稱為AliyunServiceRoleForNlb的服務關聯角色。系統會為該角色添加名稱為AliyunServiceRolePolicyForNlb的權限策略,授予NLB擁有訪問其他云產品實例的權限。更多操作,請參見網絡型負載均衡NLB系統權限策略參考。
創建完公網雙棧NLB實例,系統默認提供私網IPv6地址,執行以下步驟,將私網IPv6地址變更為公網IPv6地址。
返回實例頁面,找到目標NLB實例,單擊實例ID。
在實例詳情頁簽的基本信息區域,找到網絡類型,然后在IPv6:私網的右側單擊變更網絡類型。
在變更網絡類型對話框中單擊確定變更。
變更成功后,您可以看到IPv6的網絡類型由私網變成了公網。
步驟四:創建服務器組
在頂部菜單欄,選擇NLB實例所屬的地域。
在服務器組頁面,單擊創建服務器組。
在創建服務器組對話框中,完成以下配置,然后單擊創建。
關鍵配置信息可參考下表,其他未列出的配置項使用默認值。關于參數的更多信息,請參見創建服務器組。
參數
說明
服務器組類型
服務器組掛載的后端服務器類型。本文選擇服務器類型。
服務器組名稱
自定義填寫服務器組名稱。
VPC
服務器組所屬VPC。
說明確保您選擇的VPC開啟了IPv6功能,且與創建NLB實例時選擇的VPC相同。
選擇后端協議
選擇一種后端協議。本文選擇TCP。
選擇調度算法
選擇一種調度算法。本文選擇加權輪詢。
IPv6掛載
選擇是否開啟IPv6掛載功能。本文只支持選擇開啟IPv6掛載功能。
健康檢查
開啟或關閉健康檢查。本文保持默認配置。
單擊服務器組實例右側操作列的編輯后端服務器,然后單擊添加后端服務器。
在添加后端服務器面板,選擇服務器類型為云服務器ECS/彈性網卡ENI,選擇已創建的ECS01和ECS02實例,在IP地址列選擇ECS01實例的IPv4地址,選擇ECS02實例的IPv6地址,然后單擊下一步。
在配置端口和權重配置向導,設置ECS01和ECS02實例的權重和端口,然后單擊確定
本文ECS實例端口配置為80,權重為默認值100。
步驟五:配置監聽
在左側導航欄,選擇 。
在實例頁面,找到目標實例,在操作列單擊創建監聽。
在配置監聽配置向導,完成以下配置,然后單擊下一步。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用默認值。關于配置監聽的更多操作,請參見添加TCP監聽。
參數
描述
選擇監聽協議
選擇監聽的協議類型。本文選擇TCP。
監聽端口
用來接收請求并向后端服務器進行請求轉發的監聽端口。本文輸入80。
監聽名稱
輸入自定義監聽名稱。
高級配置
本文保持默認,可單擊修改進行設置。
在選擇服務器組配置向導,選擇服務器類型及服務器類型下的目標服務器組,查看后端服務器信息,然后單擊下一步。
在配置審核配置向導,確認配置信息,然后單擊提交。
單擊知道了返回監聽頁簽,查看目標監聽的健康檢查狀態列為正常時,表示后端服務器ECS01和ECS02實例可以正常處理NLB實例轉發的請求。
步驟六:設置域名解析
實際業務場景中,建議您使用您的自有域名,通過CNAME解析的方式將自有域名指向NLB實例域名。
在左側導航欄,選擇 。
在實例頁面,復制已創建的NLB實例的DNS名稱。
執行以下步驟添加CNAME解析記錄。
登錄域名解析控制臺。
在域名解析頁面單擊添加域名。
在添加域名對話框中輸入您的主機域名,然后單擊確認。
重要您的主機域名需已完成TXT記錄驗證。
在目標域名的操作列單擊解析設置。
在解析設置頁面,單擊添加記錄。
在添加記錄面板,配置以下信息完成CNAME解析配置,然后單擊確認。
配置
說明
記錄類型
在下拉列表中選擇CNAME。
主機記錄
您的域名的前綴。本文輸入@。
說明創建域名為根域名時,主機記錄為@。
解析請求來源
選擇默認。
記錄值
輸入域名對應的CNAME地址,即您復制的NLB實例的DNS名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS服務器上的緩存時間,本文使用默認值。
步驟七:驗證結果
獲取測試訪問域名:
如果您設置了域名解析,使用了自有域名進行CNAME解析到NLB域名,則測試訪問域名為您的自有域名。
如果您未使用自有域名,可登錄網絡型負載均衡NLB控制臺,頂部選擇實例所屬地域,在目標NLB實例DNS名稱列復制NLB實例的域名,作為測試訪問域名。
測試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實例及其安全組:
登錄云服務器ECS實例控制臺,頂部選擇實例所屬地域,單擊ECS01實例右側的,彈出的窗口中選擇釋放,立即釋放實例并確認。
登錄云服務器ECS安全組控制臺,頂部選擇實例所屬地域,勾選ECS01自定義安全組并單擊刪除,刪除安全組。
參照上述步驟,刪除ECS02實例及對應安全組資源。
(可選)刪除域名解析記錄;
刪除域名解析記錄,請參見刪除域名解析記錄。
清理NLB資源:
登錄網絡型負載均衡NLB控制臺,頂部選擇實例所屬地域,單擊實例右側的,彈出的窗口中選擇釋放并確認。
登錄網絡型負載均衡NLB控制臺,頂部選擇實例所屬地域,在服務器組菜單單擊服務器組右側的,彈出的窗口中選擇刪除并確認。
清理VPC資源:
登錄專有網絡VPC控制臺,頂部選擇實例所屬地域。
單擊實例右側刪除,刪除時并且勾選強制刪除,完成VPC與交換機資源的刪除。
相關文檔
了解NLB的應用場景、組成等信息,請參見什么是網絡型負載均衡NLB。
了解NLB的功能特性,請參見功能特性。
了解NLB的配額及提升配額方式,請參見使用限制。
了解NLB支持的地域信息,請參見NLB支持地域和可用區。
了解NLB計費文檔,請參見NLB計費規則。