能否将公网NLB作为ALB的目标组?调用API时遇错误
能否将公网NLB作为ALB的目标组?
不能直接把公网NLB的公网IP注册为ALB目标组的目标,你遇到的报错正是因为这个原因。
错误原因解析
你调用aws elbv2 register-targets时触发的错误如下:
An error occurred (ValidationError) when calling the RegisterTargets operation: The IP address '54.xxx.xxx.xx' is not allowed, as it must be an address from a VPC subnet, RFC1918, or RFC6598
这条报错明确了ALB目标组仅接受VPC子网内的IP、RFC1918私有IP(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)、RFC6598保留IP(100.64.0.0/10),而你使用的54.xxx.xxx.xx是公网IP,不在允许范围内。
可行解决方案
- 若NLB和ALB在同一VPC:找到NLB的内网IP(公网NLB默认会分配内网IP),将这个内网IP注册为ALB目标组的目标,同一VPC内可直接通过内网IP访问NLB,完全符合IP规则。
- 若NLB和ALB在不同VPC:先通过VPC对等连接(VPC Peering)或中转网关(Transit Gateway)打通两个VPC的网络,再注册NLB的内网IP到ALB目标组。
- 若必须走公网路径:在ALB所在VPC内部署一台EC2作为反向代理,配置它将流量转发到公网NLB,然后把这台EC2注册为ALB目标组的目标。
内容的提问来源于stack exchange,提问作者Sameer Naik
相关产品推荐
相关产品推荐

