觀點 · 資訊分享
AWS 網路負載平衡器能依 IPv4/IPv6 分流了:一台 NLB 就夠,不必再養兩台
AWS 的 Network Load Balancer 新增 Listener Rules,可以依來源 IP 的版本,把 IPv4 客人和 IPv6 客人分別送到同版本的伺服器群,原始 IP 兩邊都保留,不另收費。
- 發布
- 2026-07-23
- 篇幅
- 約 5 分鐘 · 2,194 字
- 結構
- 8 節 + 4 題常見問題
- 標籤

一句話看懂:AWS 的 Network Load Balancer 現在能依客人的 IP 版本分流,一台就能同時照顧 IPv4 與 IPv6 客人,還不會弄丟客人的原始 IP。

先用白話講:Network Load Balancer 是什麼?
想像一間很紅的餐廳,門口有一位帶位員,負責把客人分到不同的區域。Network Load Balancer(NLB,網路負載平衡器)就是網路服務的帶位員:外面的連線進來,它決定轉給後面哪一組伺服器。
網路上的「門牌」有兩種格式:舊的 IPv4(像 203.0.113.5)和新的 IPv6(一長串英文數字)。現在有的客人用舊門牌、有的用新門牌,帶位員得兩種都會招呼。
問題出在後面的座位:每一組伺服器(目標群組)只能認一種門牌格式。結果帶位員要嘛得拆成兩個人,要嘛得把另一種門牌「翻譯」一下,翻譯完,後面的伺服器就看不到客人原本的門牌了。
發生什麼事
AWS 在 7 月 22 日(美國時間)宣布,NLB 支援 Listener Rules(監聽器規則)。規則的條件是「來源 IP 的版本」,符合就轉給指定的目標群組。
以前要同時服務兩種客人,官方部落格列出兩條路:
- 架兩台 NLB:一台管 IPv4、一台管 IPv6,再用 DNS 把客人分開。每台都有自己的監聽器、健康檢查與計費,等於養兩套
- 全部送進同一組,靠 PPv2 找回 IP:另一種 IP 會在負載平衡器被翻譯,伺服器看到的是負載平衡器的位址;要找回客人 IP,得開 Proxy Protocol v2,而且每個後端程式都要會解析它
現在一台雙協定(dual-stack)的 NLB 加兩條規則就解決:IPv4 客人送到 IPv4 目標群組,IPv6 客人送到 IPv6 目標群組,不用翻譯,兩邊的原始 IP 都保留。
以前和現在差在哪
| 做法 | 要養幾台 NLB | 後端看得到客人原始 IP? |
|---|---|---|
| 兩台 NLB 加 DNS 分流 | 2 台 | 看得到 |
| 一台 NLB,全送同一組 | 1 台 | 看不到,需另外用 PPv2 |
| 一台 NLB 加 Listener Rules | 1 台 | 看得到 |
給開發者的技術細節
- 條件:來源 IP 類型(
ipv4或ipv6);支援 TCP、UDP、TCP_UDP、TLS 監聽器 - 動作:轉到單一目標群組,或轉到多個加權目標群組(權重 0 到 999,0 代表不再接新連線),可用來做漸進式搬遷
- 規則依優先順序評估,數字小的先比對;沒符合任何規則的連線走預設動作
- 既有的雙協定 NLB 不用重建就能加規則,所有 AWS 商用區域與 GovCloud(US)都能用
- 前提:VPC 與子網路要有 IPv6 CIDR、路由表要能走 IPv6;UDP 監聽器要有 IPv6 目標群組;每組目標各自用自己的 IP 版本做健康檢查,目標的安全群組要同時放行兩種版本的檢查流量
官方部落格的 CLI 範例(優先順序 10 為 IPv4 規則):
aws elbv2 create-rule \
--listener-arn <listener-arn> --priority 10 \
--conditions '[{"Field":"source-ip","SourceIpConfig":{"IpAddressType":"ipv4"}}]' \
--actions '[{"Type":"forward","TargetGroupArn":"<ipv4-tg-arn>"}]'
IPv6 規則同樣寫法,把 ipv4 換成 ipv6、目標群組換成 IPv6 那組即可。這組指令需要 AWS CLI 2.35.24 以上,版本太舊會報不認得 IpAddressType。
合併之前要想的事
官方部落格特別提醒一點:合併後,一台 NLB 要扛兩種 IP 的總流量;原本分開時,兩台 NLB 剛好形成「一種 IP 一台」的天然故障隔離,合併後就沒有了。建議先用每個目標群組的 CloudWatch 指標,在一小部分流量上驗證分流是否如預期,確認後再把 DNS 的 A 與 AAAA 紀錄都指到合併後的 NLB。
我的看法
這個功能不是什麼炫技,而是把「想服務 IPv6 客人又不想多養一套」的麻煩拿掉。IPv6 是大勢所趨,網站和服務遲早得雙邊都顧;我猜有些團隊因為怕麻煩、怕客人 IP 對不起來,才一直只開 IPv4,這種顧慮現在少了一大塊。
對接案或小團隊來說,我會注意兩件事。第一,要記錄客人 IP 做風控、封鎖或稽核的系統,這次最有感,因為不用再為了找回 IP 去改每一支後端程式。第二,不要為了省一台 NLB 就盲目合併:如果服務對可用性很敏感,兩台分開的隔離效果可能比省下的錢更值錢。先量流量、再決定。
名詞小辭典
- 負載平衡器(Load Balancer):把進來的連線分配給多台伺服器的設備,像餐廳門口的帶位員。
- IPv4/IPv6:網路位址的兩種格式,IPv6 是為了解決 IPv4 位址不夠用而生的新格式。
- 雙協定(dual-stack):同時支援 IPv4 與 IPv6 的設定。
- Proxy Protocol v2(PPv2):一種在連線前面多附一小段資料的做法,讓後端知道客人原本的 IP。