NAT网关
应用场景
当多个云主机在没有绑定弹性公网IP的情况下需要访问公网,为了节省弹性公网IP资源并且避免云主机IP直接暴露在公网上,可以通过公网NAT网关共享弹性公网IP的方式访问公网,实现无弹性公网IP的云主机访问公网。
操作步骤
- 申请弹性公网IP。
创建main.tf文件,输入以下内容,并保存在当前的执行目录中。
resource "huaweicloud_vpc_eip" "eip_1" { publicip { type = "5_bgp" } bandwidth { name = "test" size = 5 share_type = "PER" charge_mode = "traffic" } }
- 申请NAT网关并配置SNAT规则。
在main.tf文件中增加以下内容。
data "huaweicloud_vpc" "vpc_1" { name = "vpc-default" } data "huaweicloud_vpc_subnet" "subnet_1" { name = "subnet-default" vpc_id = data.huaweicloud_vpc.vpc_1.id } resource "huaweicloud_nat_gateway" "nat_1" { name = "nat-gateway-basic" description = "test for terraform examples" spec = "1" vpc_id = data.huaweicloud_vpc.vpc_1.id subnet_id = data.huaweicloud_vpc_subnet.subnet_1.id } resource "huaweicloud_nat_snat_rule" "snat_1" { floating_ip_id = huaweicloud_vpc_eip.eip_1.id nat_gateway_id = huaweicloud_nat_gateway.nat_1.id network_id = data.huaweicloud_vpc_subnet.subnet_1.id }
表1 参数说明 资源名称
参数名称
参数说明
huaweicloud_nat_gateway
name
NAT网关的名字,支持数字、字母、_(下划线)、-(中划线)、中文。
description
NAT网关的描述。
spec
NAT网关的规格。取值为:
- “1”:小型,SNAT最大连接数10000
- “2”:中型,SNAT最大连接数50000
- “3”:大型,SNAT最大连接数200000
- “4”:超大型,SNAT最大连接数1000000
vpc_id
VPC的ID。
subnet_id
子网的网络ID。
huaweicloud_nat_snat_rule
floating_ip_id
弹性公网IP的id,多个弹性公网IP使用逗号分隔。
- 约束:弹性公网IP的id个数不能超过20个。
nat_gateway_id
NAT网关的ID。
network_id
规则使用的网络ID。
- 创建资源。
- 运行 terraform init 初始化环境。
- 运行 terraform plan 查看资源。
- 确认资源无误后,运行 terraform apply 开始创建。