本节介绍了 NSX Advanced Load Balancer 服务引擎上的 NAT 功能。

在部署新的应用程序服务器时,服务器需要使用外部连接以实现可管理性。

在服务器网络中没有路由器的情况下,可以使用 NSX Advanced Load Balancer SE 通过服务引擎的 IP 路由功能路由服务器网络的流量。此外,您还需要使用 SE 中的 NAT 功能,以将 NAT 网关用于整个专用服务器网络。

注:

IPv6 不支持该功能。

NAT 在 SE 中的数据包路径的路由后阶段起作用。建议您了解 SE 默认网关(服务引擎上的 IP 路由)功能。有关更多信息,请参见默认网关(NSX Advanced Load Balancer SE 上的 IP 路由)

在服务引擎上启用 IP 路由并将 SE 作为网关是使用出站 NAT 功能的必备条件。因此,在服务引擎上启用 IP 路由所需的所有要求也适用于出站 NAT 功能。

注:

TCP/UDP 和 ICMP 流支持出站 NAT。

NAT 准则

NAT 支持 VRF,并且必须使用“路由服务”类型的网络服务为每个 SE 组编写 NAT。有关更多信息,请参见网络服务配置

在 Linux 服务器云和 VMware 云的双臂无权访问配置中支持 NAT/IP 路由。

对于处于写入访问模式的 VMware 云部署,NSX Advanced Load Balancer 支持 NAT。要在 VMware 写入访问云上使用该功能,必须为至少一个虚拟服务设置以下配置:

  • 必须将一个臂(在双臂模式部署中)放置在后端网络中。对于该网络,SE 充当默认网关。

  • 将另一个臂放置在所需的前端网络中。

  • 网络服务的 SE 组必须处于传统高可用性(活动/备用)模式。

  • 路由服务必须启用了路由集。

  • NAT 功能是由服务引擎 IP 栈完成的,因此,路由服务的 routing_by_linux_ipstack 属性必须设置为 False

  • 仅允许使用基于 DPDK 的 SE。

  • 在 VMware 写入访问模式下,必须创建了虚拟服务。该虚拟服务创建所需的服务引擎。

  • NAT 规则的 NAT IP 不能与位于 VRF 中的任何接口 IP 相同。将忽略此类 NAT IP。

  • NAT IP 在接口上配置为辅助 IP。因此,不同的服务引擎组不能在给定的 VRF 中共享 NAT IP。

NAT 服务

从内到外启动的 NAT 服务流量示意图如下所示:



NAT 服务流量示意图中提到的流量详细信息是 1 到 8。流量详细信息如下所示:

流量计数

描述

1

服务器为 DG 执行 ARP 并获取 MAC-A。服务器向 MAC-A 发送 IP 数据包。[源:IP SX,目标:IP Ext]

2

由于这是新的流量,服务引擎创建一个 NAT 条目,转换 (NAT) 源 IP 和源端口并将数据包发送到路由器 (MAC-R)。[源:SE NIP,目标:IP Ext]

3

路由器使用 Internet 路由转发到 Ext。[源:SE NIP,目标:IP Ext]

4

Ext 接收 SX 发送的数据包。[源:SE NIP,目标:IP Ext]

5

目标接收数据包。[源:IP Ext,目标:SE NIP]

6

路由器为 SE NIP 执行 ARP,活动 SE 响应该 ARP。[源:IP Ext,目标:SE NIP]

7

SE 查找 NAT 流量表,并根据匹配情况将目标 IP:端口更改为真实服务器 IP 端口。[源:IP Ext,目标:IP SX]

8

SE 执行 IP 路由并将数据包发送到 MAC-SX。[源:IP Ext,目标:IP SX]

注:
  • 路由器充当 SE 组的前端浮动 IP。无法在前端路由 SE 后端网络。

  • 在浮动 IP 中,无法在前端路由后端网络。

NAT 要求在网络中的不同位置进行以下配置:

  • NSX Advanced Load Balancer 控制器 上,您可以在高级选项卡配置中的服务引擎组(仅传统高可用性)上启用 IP 路由

  • 在前端路由器上,配置到后端服务器网络的静态路由,并将下一跳作为前端网络的浮动 IP。

  • 在后端路由器上,在后端服务器网络中将 SE 的浮动 IP 配置为默认网关。

使用 UI 配置 NAT 策略

以下是配置 NAT 策略的步骤:

  1. 导航到模板 > 策略 > NAT 策略。单击创建



  2. 指定 NAT 策略的名称。

  3. 选中启用规则框。

  4. 匹配选项卡中指定目标源 IP 地址。

  5. 操作选项卡中指定类型IP 地址

  6. 在指定所需的详细信息后,单击保存

使用 CLI 配置 NAT 策略

您可以按以下方式配置 NAT 策略:

  1. 假设 10.100.0.78 是服务器尝试访问的目标 IP,10.100.0.26 是 NAT IP。该 IP 归服务引擎所有。请注意,必须在前端路由器上将 NAT IP 配置为静态路由,并将下一跳作为 SE 的前端浮动接口 IP (10.100.0.2)。

    configure natpolicy nat-policy-default-group-global
        rules index 1
            enable
            name rule1
            match
                  source_ip match_criteria is_in
                        addrs 192.168.100.21
                        ranges begin 192.168.100.2 end 192.168.100.10
                        save
                        prefixes 192.168.100.1/24
                        save
                  destination_ip match_criteria is_in
                        addrs 10.100.0.78
                        save
                  services
                        destination_port match_criteria is_in
                             ports 80
                             ports 443
                        save
                        source_port match_criteria is_not_in
                             ports 800
                        save
                  save
          save
          action
             type nat_policy_action_type_dynamic_ip_port
              nat_info
                  nat_ip 10.100.0.26
                  save
            save
        save
    save

    假设服务引擎组名称设置为 DefaultGroup,并且 SE 接口位于 VRF global 中。

  2. 创建具有 NAT 策略的 NetworkService

    configure networkservice nat-policy-default-group-global
          vrf_ref global
          se_group_ref Default-Group
          service_type routing_service
           routing_service
                enable_routing
                nat_policy_ref nat-policy-default-group-global
           save
    save
  3. ServiceEngineGroup 配置为传统高可用性模式,并为 EnableRouting 配置浮动接口 IP,如下所述。有关更多信息,请参见默认网关(NSX Advanced Load Balancer SE 上的 IP 路由)

出站 NAT 用例

以下是可用于获取 NAT 流信息/统计信息的调试命令:

[admin:localhost.localdomain]: > show serviceengine Active_Standby-se-xyjud nat
nat-flows             Show NAT flow information
natpolicystats        show NAT policy stats
natstat               Show NAT statistics
注:

可以使用 CLI 获取统计信息。

匹配条件

支持以下匹配条件选项:

  • 匹配源 IP 地址

  • 匹配源 IP 地址范围

  • 匹配源 IP 地址组

  • 匹配源 IP 前缀

  • 匹配源端口。不支持端口范围

  • 匹配目标 IP 地址

  • 匹配目标 IP 地址范围

  • 匹配目标 IP 地址组

  • 匹配目标 IP 前缀

  • 匹配目标端口

为每个选项提供了不是选项。该选项可用于将具有某些参数的数据包从规则匹配中排除。

匹配操作

  1. 如果将两个或更多相同参数作为匹配条件,则使用运算进行匹配。

    示例:

    match
     source_ip match_criteria is_in
     addrs 192.168.100.21
     ranges begin 192.168.100.2 end 192.168.100.10

    如果源 IP 为 192.168.100.21,或者源 IP 在 192.168.100.2 - 192.168.100.10 范围内,则此值将匹配。

  2. 如果在匹配条件中使用两个不同的参数,则使用运算进行匹配。

    示例:

    match
     source_ip match_criteria is_in
     addrs 192.168.100.21
     ranges begin 192.168.100.2 end 192.168.100.10
     destination_port match_criteria is_in
     ports 80

    如果源 IP 是 192.168.100.21 或者源 IP 位于 192.168.100.2 - 192.168.100.10 范围内,并且目标端口是 80,这才会匹配。

  3. 如果配置了多个规则,则按索引升序计算这些规则的值。计算在第一个匹配项处停止。如果数据包已与一个规则匹配,则不检查后续规则。

操作选项

  • NAT IP 可能是 NSX Advanced Load Balancer VIP、浮动接口 IP 或 SE 接口子网中的 IP 地址。NAT IP 不能是 SE 接口 IP。

  • NAT IP 范围。