
# 通过公网NAT网关的DNAT规则面向公网提供服务
#### 操作场景
同一个VPC内的一个或多个云服务器需要面向公网提供服务时，可以参考本文为公网NAT网关配置DNAT规则实现。
#### 操作流程
| 操作步骤                                                                              | 说明                                            |
|:---|:---|
| [准备工作]                                      | 使用云服务前，您需要注册华为账号并开通华为云、完成实名认证、为账户充值。          |
| [步骤一：创建EIP]                                     | 创建一个弹性公网IP。                                   |
| [步骤二：创建ECS]                                 | 创建两个弹性云服务器，ECS01和ECS02。并为ECS02绑定已创建好的EIP。     |
| [步骤三：创建公网NAT网关]                                | 创建一个公网NAT网关。                                  |
| [步骤四：添加默认路由指向公网NAT网关] | 添加路由表                                         |
| [步骤五：添加DNAT规则]                               | 为公网NAT网关添加DNAT规则，使得对应子网网段内的云服务器共享EIP为互联网提供服务。 |
| [步骤六：验证是否成功添加DNAT规则]                          | 验证DNAT规则已在运行中。                                |
| [步骤七：验证私网服务器可以被外部公网服务器通过NAT网关访问]                | 验证DNAT规则生效的云服务器可以被公网客户端成功访问。                  |
   
 #### 准备工作
在使用NAT网关服务前，您需要注册华为账号并开通华为云、完成实名认证、为账户充值。
- [注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-account/account_id_001.html)。
- 参考"[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0077914254.html)"完成个人或企业账号实名认证。
- 您需要确保账户有足够金额，请参见"[如何给华为云账户充值](https://support.huaweicloud.com/usermanual-billing/bills-topic_30000002.html)"。
 
 #### 步骤一：创建EIP
1. 进入[购买弹性公网IP](https://console.huaweicloud.com/vpc/?locale=zh-cn#/eip/eips/create)页面。
2. 在"购买弹性公网IP"页面，根据界面提示配置弹性公网IP参数。 请您按需选择EIP的配置参数，具体可请参见[购买弹性公网IP](https://support.huaweicloud.com/usermanual-eip/eip_0008.html)。
   
3. 参数设置完成后，单击"立即购买"。 单击"确认"后，返回EIP列表页面，可以查看到已创建的EIP-A。
   
 
 #### 步骤二：创建ECS
1. 进入[购买弹性云服务器](https://console.huaweicloud.com/ecm/?locale=zh-cn#/ecs/createVm)页面。
2. 请您按需选择ECS的配置参数，具体可请参见[购买弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7012.html)。
   
3. 参数设置完成后，单击"立即购买"。 返回ECS列表页面，可以查看到已创建的ECS01。
   
4. 用上述方式创建另一台弹性云服务器ECS02，并绑定EIP。
 
 #### 步骤三：创建公网NAT网关
1. 进入[购买公网NAT网关](https://console.huaweicloud.com/vpc/?locale=zh-cn#/nat/public/createNat)页面。
2. 在"购买公网NAT网关"页面，根据界面提示配置公网NAT网关参数。
   表1公网NAT网关参数说明 
   | 参数                        | 示例                | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|:---|
   | 区域                        | **华北-北京四**        | 公网NAT网关所在的区域。                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 计费模式                      | **按需计费**          | 公网NAT网关的计费模式。                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 规格                        | **小型**            | 公网NAT网关的规格。 公网NAT网关共有小型、中型、大型、超大型四种规格类型，可通过"了解更多"查看各规格详情。                                                                                                                                                                                                                                                                                                                 |
   | 名称                        | **public-nat-01** | 公网NAT网关名称。最大支持64个字符，仅支持中文、数字、字母、_（下划线）、-（中划线）、.（点号）。                                                                                                                                                                                                                                                                                                                                                                |
   | 虚拟私有云                     | **VPC-A**         | 公网NAT网关所属的VPC。 VPC仅在购买公网NAT网关时可以选择，后续不支持修改。 说明： 由于需要放通到公网NAT网关的流量，即在VPC中需要有指向公网NAT网关的路由，因此在购买公网NAT网关时，会自动在VPC的默认路由表中添加一条0.0.0.0/0的默认路由指向所购买的公网NAT网关。如果在购买公网NAT网关前，VPC默认路由表下已经存在0.0.0.0/0的默认路由，则会导致自动添加该默认路由指向公网NAT网关失败，此时需要在公网NAT网关购买成功后，手动为此网关添加一条不同的路由或在新路由表中创建0.0.0.0/0的默认路由指向该网关。 |
   | 子网                        | **Subnet-A01**    | 公网NAT网关所属VPC中的子网。 子网至少有一个可用的IP地址。 子网仅在购买公网NAT网关时可以选择，后续不支持修改。 本子网仅为系统配置NAT网关使用，NAT网关对整个VPC生效，需要在购买后继续添加规则，才能够连通Internet。                                                                                                                                                              |
   | 企业项目                      | default           | 配置公网 NAT 网关归属的企业项目。当没有指定企业项目时，将默认使用项目名称为 default 的企业项目。 当您的账号开通企业项目权限后，才支持配置公网 NAT 网关归属的企业项目。                                                                                                                                                                                                                                                                              |
   | 高级配置（可选）                  | **-**             | 单击下拉箭头，可配置公网NAT网关的高级参数。                                                                                                                                                                                                                                                                                                                                                                                             |
   | 高级配置 \> SNAT连接TCP老化时间（秒）  | **900**           | 通过SNAT规则建立的TCP连接的超时时间，如果TCP连接在该时间内没有数据交换将被关闭。 取值范围：40\~7200。                                                                                                                                                                                                                                                                                                              |
   | 高级配置 \> SNAT连接UDP老化时间（秒）  | **300**           | 通过SNAT规则建立的UDP连接的超时时间，如果UDP连接在该时间内没有数据交换将被关闭。 取值范围：40\~7200。                                                                                                                                                                                                                                                                                                              |
   | 高级配置 \> SNAT连接ICMP老化时间（秒） | **10**            | 通过SNAT规则建立的ICMP连接的超时时间，如果ICMP连接在该时间内没有数据交换将被关闭。 取值范围：10\~7200。                                                                                                                                                                                                                                                                                                           |
   | 高级配置 \> TCP连接延迟关闭时间（秒）    | **5**             | TCP连接关闭时TIME_WAIT状态持续时间。 取值范围：0\~1800。                                                                                                                                                                                                                                                                                                                                     |
   | 高级配置 \>描述                 | **无需配置**          | 公网NAT网关信息描述。最大支持255个字符，且不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                              |
   | 高级配置 \>标签                 | **无需配置**          | 公网NAT网关的标识，包括键和值。可以创建20个标签。                                                                                                                                                                                                                                                                                                                                                                                         |
      
   
3. 单击"立即购买"，在"规格确认"页面，您可以再次核对公网NAT网关信息。
4. 确认无误后，单击"提交"，开始创建公网NAT网关。 返回公网NAT网关列表页面，可以查看已购买的公网NAT网关。
   
 
 #### 步骤四：添加默认路由指向公网NAT网关
1. 进入[路由表列表](https://console.huaweicloud.com/vpc/?locale=zh-cn#/vpc/routeTables)页面。
2. 在路由表页面，单击右上角的"创建路由表"。 所属VPC：选公网NAT网关所在的VPC。
   
3. 自定义路由表创建成功后，单击自定义路由表名称。进入自定义路由表基本信息页。
4. 单击"添加路由"，按照如下配置参数。 目的地址：0.0.0.0/0
   下一跳类型：NAT网关
   下一跳：选择已创建的NAT网关
   图1添加路由   
   ![](https://support.huaweicloud.com/qs-natgateway/zh-cn_image_0000002072349817.png "点击放大") 
5. 单击"确定"。
 
 #### 步骤五：添加DNAT规则
1. 进入[公网NAT网关列表](https://console.huaweicloud.com/vpc/?locale=zh-cn#/nat/public/list)页面。
2. 在公网NAT网关页面，单击需要添加DNAT规则的公网NAT网关名称。
3. 在公网NAT网关详情页面中，单击"DNAT规则"页签。
4. 在DNAT规则页签中，单击"添加DNAT规则"。
5. 根据界面提示，配置添加DNAT规则参数，详情请参见[表2]。
   图2添加DNAT规则   
   ![](https://support.huaweicloud.com/qs-natgateway/zh-cn_image_0259133843.png "点击放大")
    表2DNAT规则参数说明 
   | **参数** | **示例**     | **说明**                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|
   | 使用场景   | **虚拟私有云**  | 虚拟私有云表示虚拟私有云中的云主机将通过DNAT的方式共享弹性公网IP，为公网提供服务。 云专线/云连接表示通过云专线/云连接方式接入虚拟私有云的本地数据中心中的服务器，将通过DNAT的方式为公网提供服务。                                                                                                                                                                                      |
   | 端口类型   | **具体端口**   | 分为所有端口和具体端口两种类型。 - 具体端口：属于端口映射方式。公网NAT网关会将以指定协议和端口访问该弹性公网IP的请求转发到目标云服务器实例的指定端口上。  - 所有端口：属于IP映射方式。此方式相当于为云主机配置了一个弹性公网IP，任何访问该弹性公网IP的请求都将转发到目标云服务器实例上。   |
   | 支持协议   | **TCP**    | 协议类型分为TCP和UDP两种类型。端口类型为具体端口时，可配置此参数，端口类型为所有端口时，此参数默认设置为All。                                                                                                                                                                                                                                                                                     |
   | 公网IP类型 | **弹性公网IP** | 公网IP地址。                                                                                                                                                                                                                                                                                                                                         |
   | 公网端口   | **80-100** | 弹性公网IP的端口，有效数值为1-65535。 公网端口的范围可以为具体的数值，也可以为连续的数值范围，例如端口可以为80，也可以为80-100。                                                                                                                                                                                                                                        |
   | 实例类型   | **服务器**    | 选择对外部公网提供服务的实例类型。 - 服务器  - 虚拟IP地址  - 自定义                                                       |
   | 网卡     | **-**      | 选择服务器对应的网卡。                                                                                                                                                                                                                                                                                                                                     |
   | 私网端口   | **80-100** | 在使用DNAT为云服务器面向公网提供服务场景下，指云服务器的端口号。当端口类型为具体端口时，需要配置此参数，有效数值为1-65535。 私网端口的范围可以为具体的数值，也可以为连续的数值范围，例如端口可以为80，也可以为80-100。                                                                                                                                                                                             |
   | 描述     | **无需配置**   | DNAT规则信息描述。最大支持255个字符，且不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                           |
      
   
6. 配置完成后，单击"确定"，完成"DNAT规则"创建。
![](https://support.huaweicloud.com/qs-natgateway/public_sys-resources/notice_3.0-zh-cn.png)
配置DNAT规则后，需在对应的云服务器中放通对应的安全组规则，否则DNAT规则不能生效。具体操作步骤，请参见[添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)。
 #### 步骤六：验证是否成功添加DNAT规则
在DNAT页签的DNAT规则列表中，可以看到DNAT规则详细信息验证是否成功添加DNAT规则。
若"状态"为"运行中"，表示创建成功。
 #### 步骤七：验证私网服务器可以被外部公网服务器通过NAT网关访问
1. 进入[弹性云服务器列表](https://console.huaweicloud.com/ecm/?locale=zh-cn#/ecs/manager/vmList)页面。
2. 登录绑定了EIP的服务器ECS02。
3. 在ECS02上ping NAT网关的DNAT规则绑定的EIP（120.46.131.153），验证私网服务器ECS01是否可以被外部公网服务器ECS02通过NAT网关访问到。
   图3验证私网服务器是否可以被外部公网服务器通过NAT网关访问   
   ![](https://support.huaweicloud.com/qs-natgateway/zh-cn_image_0000002072518629.png "点击放大") 
 
