端口转发

端口转发(PF):基于云路由器/VPC路由器提供的三层转发服务,可将指定公有网络的IP地址端口流量转发到云主机对应协议的端口。在公网IP地址紧缺的情况下,通过端口转发可提供多个云主机对外服务,节省公网IP地址资源。
  • 启用SNAT服务的私有网络中,云主机可访问外部网络但不能被外部网络所访问;使用端口转发规则,允许外部网络访问SNAT后面云主机的某些指定端口。
  • 弹性端口转发规则可动态绑定到云主机,或从云主机解绑。
  • 端口转发服务限于云路由器/VPC路由器提供。
    • 端口转发规则创建于云路由器/VPC路由器公有网络和云主机私有网络之间,如Figure 1所示:
      Figure 1. 端口转发


  • 通过虚拟IP提供端口转发服务。
    • 虚拟IP对应于公网IP地址资源池中的一个可用IP。
    • 端口转发使用虚拟IP有两种方法:新建虚拟IP、使用已有虚拟IP。
    • 端口转发指定端口映射有两种方法:单个端口到单个端口的映射、端口区间的映射。
    • Figure 2所示:
      Figure 2. 虚拟IP-端口转发


以下介绍VPC下端口转发的使用方法,包括三个场景:
  • 创建端口转发规则并绑定一个云主机;
  • 将端口转发规则绑定其它云主机;
  • 绑定同一虚拟IP的不同端口到不同云主机。
  1. 在一个VPC下搭建两个VPC子网,例如:VPC网络-1和VPC网络-2,使用VPC网络-1创建云主机VM-1,使用VPC网络-2创建云主机VM-2。详情可参考本教程基本部署章节。
  2. 创建端口转发规则并绑定VM-1。
    1. 创建端口转发规则。
      ZStack私有云主菜单,点击网络服务 > 端口转发,进入端口转发界面,点击创建端口转发,在弹出的创建端口转发界面,可参考以下示例输入相应内容:
      • 名称:设置端口转发规则名称,例如PF-1
      • 简介:可选项,可留空不填
      • 选择虚拟IP:通过虚拟IP提供端口转发服务,可选新建虚拟IP或已有虚拟IP方式添加
        • 新建虚拟IP方式,必须填写网络信息,可选填指定IP选项
        • 已有虚拟IP方式,必须填写虚拟IP信息
      • 协议:选择协议类型,包括:TCP、UDP
      • 端口:可选指定端口或端口区间方式添加,端口范围:1-65535
        • 指定端口方式,必须填写源起始端口云主机起始端口,可选填允许CIDR
        • 端口区间方式,必须填写源起始端口源结束端口,可选填允许CIDR
      本场景下,使用指定端口方式(源起始端口:24,云主机起始端口:22)创建的端口转发规则PF-1如Figure 3所示,点击确定按钮完成端口转发创建。
      Figure 3. 创建端口转发规则PF-1


    2. 将PF-1绑定VM-1。
      端口转发创建完成后会自动跳转到绑定云主机网卡界面,点击云主机栏里的加号按钮,弹出选择云主机界面,选择VM-1,点击确定。如Figure 4Figure 5所示:
      Figure 4. 选择VM-1


      Figure 5. 将PF-1绑定VM-1


    3. 通过PF-1登录VM-1。

      使用某一可访问VPC网络公网网段的主机SSH登录公网IP:10.151.10.174的24端口,也就是登录到私网IP为192.168.10.79的VM-1的22端口。

      Figure 6所示:
      Figure 6. 通过PF-1登录VM-1


  3. 将PF-1绑定VM-2。
    1. 将PF-1从VM-1解绑。
      端口转发界面,选择PF-1,点击更多操作 > 解绑,弹出解绑云主机确认窗口,点击确定。如Figure 7所示:
      Figure 7. 将PF-1从VM-1解绑


    2. 将PF-1绑定VM-2。

      端口转发界面,选择PF-1,点击更多操作 > 绑定,弹出选择云主机窗口,选择VM-2,点击确定

      Figure 8Figure 9所示:
      Figure 8. 选择VM-2


      Figure 9. 将PF-1绑定VM-2


    3. 通过PF-1登录VM-2。

      再次SSH登录公网IP:10.151.10.174的24端口,可发现此时登录到私网IP为192.168.30.252的VM-2的22端口。

      Figure 10所示:
      Figure 10. 通过PF-1登录VM-2


  4. 绑定同一虚拟IP的不同端口到不同云主机。
    1. 使用同一虚拟IP创建端口转发规则PF-2。
      ZStack私有云主菜单,点击网络服务 > 端口转发,进入端口转发界面,点击创建端口转发,在弹出的创建端口转发界面,可参考以下示例输入相应内容:
      • 名称:设置端口转发规则名称,例如PF-2
      • 简介:可选项,可留空不填
      • 选择虚拟IP:选择已有虚拟IP
      • 协议:选择协议类型,包括:TCP、UDP
      • 端口:选择端口区间方式,端口范围:1-65535
        • 源起始端口:可从1-65535端口之间选择一个端口作为源起始端口,例如30
        • 源结束端口:可从1-65535端口之间选择一个端口作为源结束端口,例如40
        • 云主机起始端口:系统自动填写,默认与源起始端口一致
        • 云主机结束端口:系统自动填写,默认与源结束端口一致
        • 允许CIDR:可选项,仅允许指定的CIDR才可通过,可留空不填
      Figure 11所示,点击确定按钮完成端口转发创建。
      Figure 11. 创建端口转发规则PF-2


    2. 将PF-2绑定VM-1。
      端口转发创建完成后会自动跳转到绑定云主机网卡界面,点击云主机栏里的加号按钮,弹出选择云主机界面,选择VM-1,点击确定。如Figure 12Figure 13所示:
      Figure 12. 选择VM-1


      Figure 13. 将PF-2绑定VM-1


    3. 可见,同一虚拟IP(10.151.10.174),通过不同的端口转发规则,绑定到不同云主机。
    4. 通过PF-2向VM-1发送信息。

      使用某一可访问VPC网络公网网段(10.108.12.0~10.108.13.255)的主机,通过nc命令向公网IP:10.108.13.216的5900~5910某端口发送信息,可在私网IP为192.168.10.226的VM-1相应端口接收信息。

      例如,使用规则范围内的源端口5900发送信息,在VM-1的端口5900接收信息。
      Note: 需将VM-1中原先的iptables规则清除,可使用命令iptables -F
      Figure 14Figure 15所示:
      Figure 14. 在源端口30发送信息


      Figure 15. 在VM-1的端口5900接收信息


至此,端口转发的使用方法介绍完毕。