如何配置AWS Network Load Balancer按主机头路由UDP流量至多个目标组
AWS Network Load Balancer 基于域名的UDP流量路由配置方案
针对你的需求,由于AWS NLB是四层负载均衡器,默认不识别七层域名信息,提供两种可行配置方案:
方案1:多EIP+多监听器(通用所有UDP协议)
通过给NLB分配多个EIP,让不同域名指向不同EIP,NLB通过匹配目标IP分流流量。
- 创建目标组:分别创建两个目标组,目标组1关联ECS1服务,目标组2关联ECS2服务,配置对应UDP端口、健康检查规则(确保和ECS服务端口一致)。
- 申请新EIP:在EC2控制台弹性IP页面,分配第二个弹性IP。
- 关联EIP到NLB:进入NLB控制台的「网络接口」标签,选中NLB对应的ENI,通过「管理IP地址」将新EIP关联到ENI的私有IP上(确保子网有可用私有IP)。
- 调整域名解析:将
abc.def.com指向原有EIP,ghi.lmn.com指向新EIP。 - 配置监听器规则:
进入NLB「监听器」标签,编辑原有UDP监听器的规则:- 添加规则1:匹配「目标IP」为原有EIP的UDP流量,转发到目标组1
- 添加规则2:匹配「目标IP」为新EIP的UDP流量,转发到目标组2
也可直接创建两个独立UDP监听器,分别绑定对应EIP和端口,关联到各自目标组。
方案2:应用层内容匹配(仅适用于带域名的UDP协议)
如果你的UDP应用(如DNS、QUIC)在数据包中携带域名信息,可直接通过NLB规则匹配应用层内容分流,无需额外EIP。
- 创建目标组:同方案1,分别关联ECS1、ECS2。
- 编辑监听器规则:
进入NLB「监听器」标签,打开UDP监听器的规则编辑器:- 添加规则1:匹配UDP数据包中对应域名字段(如DNS查询域名)为
abc.def.com,转发到目标组1 - 添加规则2:匹配UDP数据包中对应域名字段为
ghi.lmn.com,转发到目标组2
注:需确保你的UDP协议格式被NLB支持(如DNS、HTTP/3)。
- 添加规则1:匹配UDP数据包中对应域名字段(如DNS查询域名)为
验证步骤
- 分别通过
abc.def.com和ghi.lmn.com发送UDP请求,检查对应的ECS实例是否收到并响应。 - 查看NLB和目标组的监控指标,确认流量转发正常。
内容的提问来源于stack exchange,提问作者capo11
相关产品推荐
相关产品推荐

