全部產品
Search
文件中心

Server Load Balancer:使用NLB入口實現IPv4與IPv6流量親和轉寄

更新時間:Mar 17, 2026

NLB雙棧執行個體支援IP版本親和模式,開啟後可將IPv4請求轉寄至IPv4後端伺服器、IPv6請求轉寄至IPv6後端伺服器,實現按IP協議版本的流量調度,簡化網路架構。

方案架構

問題情境

在業務從 IPv4 向 IPv6 遷移的過程中,IPv4 與 IPv6 服務常常需要共存。當目標伺服器組中同時包含 IPv4 和 IPv6 地址的後端伺服器時,NLB 預設不區分用戶端請求的 IP 協議版本,而是僅依據調度演算法(如輪詢或最小串連數)向後端轉寄流量。

這可能導致跨協議轉寄現象——例如,來自 IPv6 用戶端的請求被轉寄到僅支援 IPv4 的後端伺服器,或反之。此類協議不匹配會引發以下問題:

  • 後端伺服器無法擷取真實用戶端IP,影響基於源IP的地區分析和許可權管控。

  • 為擷取真實源IP,需額外部署Nginx等代理層並開啟Proxy Protocol,增加營運成本。

解決方案

NLB伺服器組支援IP版本親和模式,開啟後實現4to4/6to6的親和轉寄。

後端可直接擷取對應協議的用戶端真實IP,無需額外代理層。當某一協議的所有後端健全狀態檢查失敗時,該協議的請求在同協議後端內儘力轉寄,不會跨協議轉寄。

image

適用範圍

使用者已註冊自訂網域名。本文計劃將NLB執行個體部署於華東2(上海)地區,因此網域名稱需要完成ICP備案

操作步驟

在開始操作前,請確保已在華東2(上海)地區建立一個專用網路VPC1,分別在可用性區域E和可用性區域G建立交換器VSW1VSW2,且交換器已開啟IPv6

1. 建立ECS執行個體並部署服務

  1. 參考下表配置,建立兩台ECS執行個體。

    執行個體名稱

    地區

    VPC

    交換器

    IP版本

    鏡像

    ecs-ipv4

    華東2(上海)

    VPC1

    VSW1

    IPv4

    Alibaba Cloud Linux 3.2104 LTS 64位

    ecs-ipv6

    VSW2

    IPv6

    購買ECS執行個體時,在網路和安全性群組配置項下勾選免費分配 IPv6 地址。
  2. 遠端連線ecs-ipv4ecs-ipv6,執行以下命令,部署Nginx服務。

    ecs-ipv4

    sudo yum install -y nginx
    sudo systemctl start nginx
    echo "Hello from IPv4 backend" | sudo tee /usr/share/nginx/html/index.html

    ecs-ipv6

    sudo yum install -y nginx
    sudo systemctl start nginx
    echo "Hello from IPv6 backend" | sudo tee /usr/share/nginx/html/index.html
  3. 在兩台ECS執行個體所屬安全性群組添加入方向規則,允許存取請求流量。請確保規則具備足夠高的優先順序。

    執行個體名稱

    授權策略

    協議

    訪問來源

    訪問目的(本執行個體)

    ecs-ipv4

    允許

    自訂TCP

    選擇IPv4後,選擇本VPC網段

    選擇連接埠後,選擇HTTP(80)

    ecs-ipv6

    選擇IPv6後,選擇本VPC網段

相關操作,可參考自訂購買執行個體ECS遠端連線操作指南配置安全性群組規則

2. 建立雙棧NLB執行個體

  1. 登入NLB控制台,選擇華東2(上海)地區,單擊建立網路型負載平衡

  2. 完成以下配置,其他選項保持預設,單擊立即建立

    • 執行個體網路類型:選擇公網

    • VPC:選擇VPC1

    • 可用性區域:選擇可用性區域E和可用性區域G及對應交換器VSW1VSW2,並自動分配公網IP

    • 協議版本:選擇雙棧

  3. 建立完成後,單擊執行個體ID進入執行個體詳情頁。在基本資料地區找到網路類型,單擊IPv6:私網右側的變更網路類型。在彈出的視窗單擊確定變更,並確認變更成功。

3. 建立雙棧伺服器組並開啟親和模式

  1. 伺服器組控制台,單擊建立伺服器組

  2. 完成以下配置,單擊建立

    • 伺服器群組類型:選擇伺服器類型

    • 伺服器組名稱:輸入名稱sgp-dualstack

    • VPC:選擇VPC1

    • 選擇後端協議:選擇TCP

    • IP協議版本:選擇IPv4/v6雙棧。選擇後支援同時添加IPv4和IPv6後端伺服器。

    • IP版本親和模式:選擇親和模式。開啟後,IPv4請求僅轉寄至IPv4後端,IPv6請求僅轉寄至IPv6後端。

  3. 單擊伺服器組建立成功彈窗中的添加後端伺服器。在IP地址列為ecs-ipv4選擇IPv4地址,為ecs-ipv6選擇IPv6地址。選中兩台執行個體,單擊下一步

    大量新增IPv6後端時,可單擊IP地址列表頭旁的設定表徵圖,選擇首選IPv6,系統將優先選中伺服器的IPv6地址。
  4. 配置連接埠和權重步驟中,將兩台伺服器的通信埠均設定為80,單擊確定完成添加。

4. 建立監聽

  1. NLB控制台,單擊目標執行個體ID進入執行個體詳情頁。在監聽頁簽單擊建立監聽

  2. 配置監聽步驟,選擇監聽協議TCP監聽連接埠填寫80,單擊下一步

  3. 選擇伺服器組步驟,選擇伺服器組sgp-dualstack,單擊下一步

  4. 組態稽核步驟確認配置,單擊提交

5. 設定網域名稱解析

將自有網域名稱通過CNAME解析指向NLB執行個體的DNS名稱,用戶端通過自有網域名稱訪問NLB。

本文以阿里雲Alibaba Cloud DNS為例,對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台

  1. NLB控制台,複製目標執行個體的DNS 名稱

  2. 登入網域名稱解析控制台,在目標網域名稱的操作列單擊解析设置。在解析设置頁面單擊添加记录

  3. 參考以下資訊添加CNAME記錄,單擊确定

    • 记录类型:選擇CNAME

    • 主机记录:輸入欄位名首碼如test。假設使用者自有根網域名稱為example.com,則訪問NLB的網域名稱為test.example.com

    • 解析请求来源TTL时间:保持預設。

    • 记录值:輸入NLB執行個體的DNS名稱。

  4. 在彈出的解析变更确认對話方塊確認解析資訊,單擊確定

6. 驗證親和轉寄

使用者通過自有網域名稱訪問具備IPv6公網能力的雙棧NLB執行個體時,DNS伺服器將根據用戶端的查詢類型返回A記錄(IPv4地址)或AAAA記錄(IPv6地址)。

測試IPv4請求

curl -4 http://test.example.com

多次請求,返回結果應均為Hello from IPv4 backend,表明IPv4請求被轉寄至IPv4後端ecs-ipv4

測試IPv6請求

curl -6 http://test.example.com

多次請求,返回結果應均為Hello from IPv6 backend,表明IPv6請求被轉寄至IPv6後端ecs-ipv6

驗證親和隔離

  1. 停止ecs-ipv4的Nginx服務:sudo systemctl stop nginx

  2. 再次測試IPv4請求。請求將失敗,不會被轉寄至IPv6後端ecs-ipv6

  3. 恢複ecs-ipv4服務:sudo systemctl start nginx。IPv4請求恢複正常。

更多資訊

計費說明

  • NLB執行個體:NLB支援隨用隨付(後付費)和資源套件(預付費)兩種付費方式,詳情參考NLB計費概述

  • ECS執行個體:詳見ECS計費概述。若出於測試目的建立ECS,建議建立低規格的隨用隨付執行個體並及時釋放。

  • 網域名稱和DNS解析費用:除了需要支付網域名稱供應商的網域名稱費用外,在阿里雲配置DNS解析需要支付公網權威解析費用

  • 公網網路費用:需要分別為NLB執行個體綁定的EIP和執行個體所在VPC的IPv6公網頻寬支付費用。

NLB雙棧支援的地區

地區

地區

中國

華東1(杭州)、華北2(北京)、華南1(深圳)、華東2(上海)、華北1(青島)、華北3(張家口)、西南1(成都)、華南3(廣州)、中國香港、華南2(河源)、華北6(烏蘭察布)

亞太地區

泰國(曼穀)、菲律賓(馬尼拉)、新加坡、日本(東京)、韓國(首爾)、 馬來西亞(吉隆坡)、印尼(雅加達)

歐美地區

德國(法蘭克福)、英國(倫敦)、美國(維吉尼亞)、美國(矽谷)、墨西哥

中東

沙特(利雅得)

應用於生產環境

  • 高可用部署:後端伺服器應部署在多個可用性區域,IPv4和IPv6後端均需保證冗餘,避免單點故障。

  • 健全狀態檢查配置:根據業務特點調整健全狀態檢查間隔、逾時時間和閾值,確保故障伺服器能被及時摘除。

常見問題

開啟親和模式後,IPv4請求會轉寄到IPv6後端嗎?

不會。開啟親和模式後,IPv4請求僅轉寄至IPv4後端,IPv6請求僅轉寄至IPv6後端,不會跨協議轉寄。

如果伺服器組內只有IPv4後端,IPv6請求會如何處理?

未開啟親和模式時,NLB支援將IPv6請求轉換成IPv4並發給後端;開啟親和模式後,IPv6請求將無法正常轉寄,該情境下請確保您的NLB同時包含健康的IPv4和IPv6後端。

已建立的伺服器組可以修改IP協議版本嗎?

不支援。伺服器組的IP協議版本(IPv4IPv4/v6雙棧)建立後不可修改,如需變更需刪除伺服器組後重新建立。

已建立的伺服器組可以修改IP版本親和模式嗎?

可以。可在伺服器組控制台單擊目標雙棧伺服器組操作列的編輯基本資料進行修改。

雙棧伺服器組可以關聯到IPv4類型的NLB執行個體嗎?

不可以。雙棧伺服器組僅支援關聯至雙棧NLB執行個體的監聽。