本文为您介绍如何通过增强型NAT网关的SNAT功能实现ECS实例访问同一VPC下的DNAT服务。

配置场景

本文以下图场景为例。配置场景图

某公司在华东2(上海)地域创建了VPC,VPC中创建了两个交换机,要求交换机1内的ECS实例可以通过公网访问交换机2内ECS实例部署的应用服务。

您可以为华东2(上海)地域的VPC创建两个增强型NAT网关,然后为增强型NAT网关1配置SNAT条目,为增强型NAT网关2配置DNAT条目,再分别为交换机1和交换机2配置子网路由,实现ECS实例通过公网访问同一VPC下的DNAT服务。

前提条件

开始前,请确保满足以下条件:
  • 您已经注册了阿里云账号。如未注册,请先完成账号注册
  • 您已经创建了VPC,并在该VPC中创建了两个交换机(名称分别为VSW1和VSW2)。具体操作,请参见使用专有网络创建交换机
  • 您已经在交换机VSW1和交换机VSW2内各创建了一个ECS实例(名称分别为ECS1和ECS2),并在ECS2实例中部署了应用服务。具体操作,请参见使用向导创建实例
  • 您已经创建了两个弹性公网IP(名称分别为EIP1和EIP2)。具体操作,请参见申请新EIP

配置步骤

配置步骤

步骤一:创建增强型NAT网关

增强型NAT网关同普通型NAT网关一样,提供NAT代理(SNAT和DNAT)功能,在配置SNAT和DNAT规则前,您需要先创建NAT网关实例。

完成以下操作,为同一个VPC创建两个增强型NAT网关。

  1. 登录NAT网关管理控制台
  2. NAT网关页面,单击创建NAT网关
  3. 创建NAT网关面板,根据以下信息配置NAT网关,然后单击立即购买并完成支付。
    • 付费模式:选择NAT网关实例的付费模式:
      • 包年包月:包年包月是一种先付费后使用的付费模式。更多信息,请参见包年包月
      • 按量付费:按量付费是一种先使用后付费的付费模式。更多信息,请参见按量付费

      本示例选择包年包月

    • 地域和可用区:选择需要创建NAT网关的地域。

      本示例选择华东2(上海)

    • 可用区:选择NAT网关所属的可用区。
    • VPC ID:选择NAT网关所属的VPC。创建NAT网关后,不能修改NAT网关所属的VPC。
    • 交换机ID:选择NAT网关实例所属的交换机。
    • 网关类型:选择要创建的NAT网关类型。

      本示例选择增强型,增强型NAT网关在普通型NAT网关的技术架构上作了升级,具有更优的弹性和更强的稳定性,帮助您更好的管理公网访问流量。更多信息,请参见增强型NAT网关

    • 名称:设置NAT网关实例的名称。

      名称长度为2~128个字符,以英文字母或中文开头,可包含数字、下划线(_)和短划线(-)。

      本示例输入NAT1

    • 规格:选择NAT网关的规格:
      • 小型
      • 中型
      • 大型

      NAT网关的规格会影响SNAT功能的最大连接数和每秒新建连接数,但不会影响DNAT性能。更多信息,请参见实例规格

      本示例选择小型

    • 购买数量:设置要购买NAT网关实例的数量。
      说明 仅付费模式选择包年包月时,才会出现此选项。
    • 计费周期:选择NAT网关实例的计费周期。
      说明 仅付费模式选择包年包月时,才会出现此选项。
  4. 重复上述步骤,再为VPC创建一个增强型NAT网关,名称为NAT2。
NAT网关创建成功后,您可以在NAT网关页面查看到网关类型为增强型的两个NAT网关。创建增强型NAT网关

步骤二:绑定弹性公网IP

您可以将弹性公网IP绑定到NAT网关上。NAT网关绑定弹性公网IP后,可以使用弹性公网IP配置DNAT和SNAT条目。

完成以下操作,分别为两个增强型NAT网关绑定弹性公网IP。

  1. NAT网关页面,找到步骤一创建的名称为NAT1的增强型NAT网关,在其操作列下,选择更多操作 > 绑定弹性公网IP
  2. 绑定弹性公网IP面板,配置以下信息绑定弹性公网IP,然后单击确定
    配置 说明
    所在资源组 选择EIP所在的资源组。
    选择弹性公网IP 要绑定到NAT网关的EIP。

    本文选择从已有弹性公网IP中选择,选择已经创建的名称为EIP1的弹性公网IP。

  3. 重复上述步骤,为步骤一创建的名称为NAT2的增强型NAT网关绑定弹性公网IP,绑定的弹性公网IP的名称为EIP2。
为增强型NAT网关NAT1和增强型NAT网关NAT2绑定弹性公网IP后,您可以在NAT网关页面查看绑定的弹性公网IP。绑定EIP

步骤三:为增强型NAT网关NAT1创建SNAT条目

NAT网关支持SNAT功能,为VPC中无公网IP的ECS实例提供访问互联网的代理服务。

完成以下操作,创建SNAT条目,使交换机VSW1内的ECS实例可以访问互联网。

  1. NAT网关页面,找到步骤一创建的名称为NAT1的增强型NAT网关,单击操作列下的设置SNAT
  2. SANT管理页签,单击创建SNAT条目
  3. 创建SNAT条目页面 ,根据以下信息配置SNAT条目,然后单击确定创建
    配置 说明
    SNAT条目粒度 选择SNAT条目的粒度。本示例选择交换机粒度:指定交换机下的ECS实例通过配置的公网IP访问互联网。
    • 选择交换机:在下拉列表中选择交换机。如果下拉列表中没有可选的交换机,可在下拉列表单击创建交换机跳转到VPC控制台创建交换机。本示例选择ECS1实例所属的交换机VSW1。
      说明 如您选择多个交换机,将会为您创建多条SNAT条目,使用相同的公网IP地址。
    • 交换机网段:显示交换机的网段。
    选择公网IP地址 选择用来提供互联网访问的公网IP。本文以选择使用单IP为例,在下拉列表中选择弹性公网IP。如果下拉列表中没有可选的弹性公网IP,可在下拉列表单击新购弹性公网IP并绑定购买弹性公网IP。本示例选择名称为EIP1的弹性公网IP。
    条目名称 输入SNAT条目的名称。

    名称长度为2~128个字符,以大小写字母或中文开头, 可包含数字、下划线(_)和短划线(-)。

SNAT条目创建成功后,您可以在SNAT条目列表区域查看状态为可用的SNAT条目。SNAT

步骤四:为增强型NAT网关NAT2创建DNAT条目

NAT网关支持DNAT功能,将NAT网关上的弹性公网IP映射给ECS实例使用,使ECS实例能够提供互联网服务。

完成以下操作,创建DNAT条目,将名称为EIP2的弹性公网IP映射给ECS2实例使用。

  1. NAT网关页面,找到步骤一创建的名称为NAT2的增强型NAT网关,单击操作列下的设置DNAT
  2. DNAT管理页签,单击创建DNAT条目
  3. 创建DNAT条目页面,根据以下信息配置DNAT条目,然后单击确定创建
    配置 说明
    选择公网IP地址 在下拉列表选择要提供互联网通信的公网IP。 本示例选择名称为EIP2的弹性公网IP。
    选择私网IP地址 选择要通过DNAT规则进行互联网通信的ECS实例。您可以通过以下两种方式指定目标ECS实例的私网IP:
    • 通过ECS或弹性网卡进行选择:从ECS实例或弹性网卡列表中选择ECS实例。
    • 通过手动输入:输入目标ECS实例的私网IP。
    本示例选择名称为ECS2的ECS实例。
    端口设置 选择DNAT映射的方式。
    • 任意端口:该方式属于IP映射,任何访问该公网IP的请求都将转发到目标ECS实例上。
    • 具体端口:该方式属于端口映射,NAT网关会将以指定协议和端口访问该公网IP的请求转发到目标ECS实例的指定端口上。
      • 公网端口:进行端口转发的外部端口。
      • 私网端口:进行端口转发的内部端口。
      • 协议类型:转发端口的协议类型。

    本示例选择具体端口,然后设置公网端口为80,私网端口为80,协议类型为TCP。

    条目名称 DNAT条目的名称。

    名称长度为2~128个字符,以大小写字母或中文开头, 可包含数字、下划线(_)和短划线(-)。

DNAT条目创建成功后,您可以在DNAT条目列表区域查看状态为可用的DNAT条目。DNAT

步骤五:为交换机VSW1配置子网路由

您可以在VPC内创建自定义路由表,并在自定义路由表中添加子网路由,然后将自定义路由表绑定交换机,来管理交换机的流量。
说明 目前,除华北2(北京)、华南1(深圳)和华东1(杭州)外所有地域都已支持自定义路由表。

完成以下操作,为交换机VSW1配置子网路由。

  1. 创建自定义路由表。
    1. 在左侧导航栏,单击路由表
    2. 路由表页面,单击创建路由表
    3. 创建路由表页面,根据以下信息配置路由表,然后单击确定
      • 资源组:选择路由表所属的资源组。
      • 专有网络:选择路由表所属的VPC。

        本示例选择已经创建的VPC,该VPC与增强型NAT网关所属的VPC一致。

      • 名称:路由表的名称。

        名称长度为2~128个字符,以英文字母或中文开头,可包含数字、下划线(_)和短划线(-)。

        本示例输入VTB1

  2. 在自定义路由表VTB1中添加自定义路由条目。
    1. 路由表页面,找到名称为VTB1的路由表,单击其实例ID。
    2. 路由条目列表页签下,单击添加自定义路由条目
    3. 添加路由条目面板,根据以下信息配置路由条目,然后单击确定
      • 名称:输入路由条目的名称。

        名称长度为2~128个字符,以英文字母或中文开头,可包含数字、短划线(-)和下划线(_)。

        本示例输入Route1

      • 目标网段:输入路由条目的目标网段。

        本示例输入0.0.0.0/0

      • 下一跳类型:选择路有条目的下一跳类型。

        本示例先选择NAT网关,然后选择名称为NAT1的增强型NAT网关作为路由的下一跳。

  3. 将自定义路由表VTB1与交换机VSW1绑定。
    1. 单击已绑定交换机页签,然后单击绑定交换机
    2. 绑定交换机面板,选择要绑定的交换机,然后单击确定
      本示例选择名称为VSW1的交换机。

步骤六:为交换机VSW2配置子网路由

您可以在VPC内创建自定义路由表,并在自定义路由表中添加子网路由,然后将自定义路由表绑定交换机,来管理交换机的流量。
说明 目前,除华北2(北京)、华南1(深圳)和华东1(杭州)外所有地域都已支持自定义路由表。

完成以下操作,为交换机VSW2配置子网路由。

  1. 创建自定义路由表。
    1. 在左侧导航栏,单击路由表
    2. 路由表页面,单击创建路由表
    3. 创建路由表页面,根据以下信息配置路由表,然后单击确定
      • 资源组:选择路由表所属的资源组。
      • 专有网络:选择路由表所属的VPC。

        本示例选择已经创建的VPC,该VPC与增强型NAT网关所属的VPC一致。

      • 名称:路由表的名称。

        名称长度为2~128个字符,以英文字母或中文开头,可包含数字、下划线(_)和短划线(-)。

        本示例输入VTB2

  2. 在自定义路由表VTB2中添加自定义路由条目。
    1. 路由表页面,找到名称为VTB2的路由表,单击其实例ID。
    2. 路由条目列表页签下,单击添加自定义路由条目
    3. 添加路由条目面板,根据以下信息配置路由条目,然后单击确定
      • 名称:输入路由条目的名称。

        名称长度为2~128个字符,以英文字母或中文开头,可包含数字、短划线(-)和下划线(_)。

        本示例输入Route2

      • 目标网段:输入路由条目的目标网段。

        本示例输入0.0.0.0/0

      • 下一跳类型:选择路有条目的下一跳类型。

        本示例先选择NAT网关,然后选择名称为NAT2的增强型NAT网关作为路由的下一跳。

  3. 将自定义路由表VTB2与交换机VSW2绑定。
    1. 单击已绑定交换机页签,然后单击绑定交换机
    2. 绑定交换机面板,选择要绑定的交换机,然后单击确定
      本示例选择名称为VSW2的交换机。

步骤七:访问测试

子网路由配置成功后,您可以测试ECS1实例是否可以通过公网访问部署在ECS2实例的应用服务。
说明 请确保ECS实例的安全组规则满足以下条件:
  • ECS1实例的安全组规则允许ECS1实例访问互联网。
  • ECS2实例的安全组规则允许ECS2实例的服务被互联网访问。

具体操作,请参见添加安全组规则

  1. 登录ECS1实例。
  2. 执行curl http://<名称为EIP2的弹性公网IP>命令,测试是否可以访问部署在ECS2实例的应用服务。
    说明 名称为EIP2的弹性公网IP即为绑定到增强型NAT网关NAT2的弹性公网IP。
    经测试,ECS1实例可以通过公网访问部署在ECS2实例的应用服务。访问测试