
# 使用公网NAT网关统一管理公网出口IP
#### 应用场景
在云上环境中，当VPC内需要管理大量的ECS实例时，如果采用逐一配置弹性公网IP的方式，不仅会显著降低管理和运营效率，还会增加ECS实例遭受恶意扫描和攻击的风险。
您可以使用公网NAT网关统一管理ECS实例的出入云需求，从以下两个方面提升运维效率，降低安全风险。
- 在确保原有资源正常运行的前提下，通过**SNAT** **规则**为VPC内的所有ECS实例统一提供公网访问能力。
- 对于直接绑定弹性公网IP的ECS实例，通过将EIP从ECS实例解绑并创建**DNAT规则**，在确保客户端访问ECS实例方式不变的同时，有效控制端口暴露范围。
 
#### 方案架构
在企业级应用中，为了提高服务的可用性和管理效率，通常需要对后端服务进行集中管理。然而，直接暴露后端服务到公网会带来安全风险。如果您的服务器有主动访问公网的业务诉求，推荐您使用以下方案对公网出入口进行统一管理：
1. 使用ELB对后端服务进行集中管理，统一对外提供服务的入口。
2. 使用公网NAT网关统一公网出口IP，如[图1]的方案，不仅能够集中管理后端服务，还能有效降低安全风险，提升运维效率。
图1统一管理公网出口IP   
![](https://support.huaweicloud.com/bestpractice-natgateway/zh-cn_image_0000002679284207.png "点击放大")
#### 资源规划说明
本示例中需要创建虚拟私有云VPC、弹性云服务器ECS、公网NAT网关和弹性负载均衡ELB，资源规划总体说明请参见[表1](https://support.huaweicloud.com/bestpractice-natgateway/nat_bp_0006.html#nat_bp_0006__table1299691514810)。
 表1资源规划 
| 资源       | 数量           | 说明                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| 虚拟私有云和子网 | 1个虚拟私有云和其下子网 | - VPC-A，本示例网段为：192.168.0.0/16。  - subnet-A01，本示例网段为：192.168.0.0/24。                                                                                                                          |
| 公网NAT网关  | 1个           | 本示例名称为nat_public，用于通过SNAT规则统一ECS访问公网的IP。                                                                                                                                                                                                                                                                                                                   |
| 弹性负载均衡   | 1个           | 外部流量通过ELB主动访问云上的ECS。                                                                                                                                                                                                                                                                                                                                       |
| 弹性云服务器   | 3台           | ECS-A，ECS-B，ECS-C都部署在子网subnet-A01中。                                                                                                                                                                                                                                                                                                                        |
| 弹性公网IP   | 3个           | - EIP-ELB：用于绑定ELB，ECS通过ELB面向公网客户端提供服务。  - EIP-SNAT：ECS使用EIP-SNAT通过SNAT规则主动访问公网客户端。  - EIP-DNAT：外部客户端访问EIP-DNAT通过DNAT规则访问到ECS。   |
   
#### 准备工作
- 如[表1]所示，购买3个EIP分别用作EIP-ELB、EIP-SNAT和EIP-DNAT。
- 购买一个ELB实例和三台ECS并配置应用服务，其中两台ECS部署为ELB的后端服务器，详情请参考[实现单个Web应用的负载均衡](https://support.huaweicloud.com/qs-elb/zh-cn_topic_0052569751.html)。
 
 #### 步骤一：创建公网NAT网关
1. 进入[购买公网NAT网关页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/nat/public/createNat)。
2. 根据界面提示，配置公网NAT网关的基本信息，配置参数详细说明请参考[购买公网NAT网关](https://support.huaweicloud.com/usermanual-natgateway/zh-cn_topic_0150270259.html)。
   图2购买公网NAT网关   
   ![](https://support.huaweicloud.com/bestpractice-natgateway/zh-cn_image_0000002476269177.png "点击放大") 
 
#### 步骤二：添加SNAT规则
虚拟私有云子网subnet-A01中的ECS可以共享SNAT规则绑定的弹性公网IP访问公网。
1. 进入[公网NAT网关列表](https://console.huaweicloud.com/vpc/?locale=zh-cn#/nat/public/list)页面。
2. 在公网NAT网关页面，单击需要[步骤一]中购买的公网NAT网关。
   进入公网NAT网关详情页。
   
3. 切换到SNAT规则页签，单击"添加SNAT规则"。
4. 根据界面提示，添加SNAT规则，公网IP类型选择"弹性公网IP"并勾选准备工作中已经创建完成的EIP-SNAT作为公网IP。
   图3添加SNAT规则   
   ![](https://support.huaweicloud.com/bestpractice-natgateway/zh-cn_image_0000002549283393.png "点击放大") 
5. 单击"确定"，完成SNAT规则创建。
 
#### 步骤三：添加DNAT规则
虚拟私有云子网subnet-A01中的ECS可以共享DNAT规则绑定的弹性公网IP面向公网提供访问。
1. 进入[公网NAT网关列表](https://console.huaweicloud.com/vpc/?locale=zh-cn#/nat/public/list)页面。
2. 在公网NAT网关页面，单击需要[步骤一]中购买的公网NAT网关。
   进入公网NAT网关详情页。
   
3. 切换到DNAT规则页签，单击"添加DNAT规则"。
4. 根据界面提示，添加DNAT规则。
   端口类型选择"所有端口"，公网IP类型选择"弹性公网IP"并勾选准备工作中已经创建完成的EIP-DNAT作为公网IP。
   图4添加DNAT规则   
   ![](https://support.huaweicloud.com/bestpractice-natgateway/zh-cn_image_0000002478348385.png "点击放大") 
5. 单击"确定"，完成DNAT规则创建。
 
#### 步骤四：验证结果
1. 远程登录部署了后端服务的ECS。 弹性云服务器有多种登录方法，具体请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
   
2. 在ECS上分别ping三个EIP，验证可以正常对外提供公网访问。
   图5服务器正常对外提供公网访问   
   ![](https://support.huaweicloud.com/bestpractice-natgateway/zh-cn_image_0000002444768910.png "点击放大") 
3. 分别在三台ECS上执行以下命令，获取服务器访问公网的IP地址。 **curl myip.ipip.net**
   如[图6]所示，三台ECS都返回EIP-SNAT的地址。
   图6获取服务器访问公网的IP地址   
   ![](https://support.huaweicloud.com/bestpractice-natgateway/zh-cn_image_0000002477977417.png) 
 
