本节介绍了 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 策略的步骤:
导航到创建。
。单击指定 NAT 策略的名称。
选中启用规则框。
在匹配选项卡中指定目标和源 IP 地址。
在操作选项卡中指定类型和 IP 地址。
在指定所需的详细信息后,单击保存。
使用 CLI 配置 NAT 策略
您可以按以下方式配置 NAT 策略:
假设 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 中。
创建具有 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
将 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 前缀
匹配目标端口
为每个选项提供了不是选项。该选项可用于将具有某些参数的数据包从规则匹配中排除。
匹配操作
如果将两个或更多相同参数作为匹配条件,则使用或运算进行匹配。
示例:
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 范围内,则此值将匹配。
如果在匹配条件中使用两个不同的参数,则使用与运算进行匹配。
示例:
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,这才会匹配。
如果配置了多个规则,则按索引升序计算这些规则的值。计算在第一个匹配项处停止。如果数据包已与一个规则匹配,则不检查后续规则。
操作选项
NAT IP 可能是 NSX Advanced Load Balancer VIP、浮动接口 IP 或 SE 接口子网中的 IP 地址。NAT IP 不能是 SE 接口 IP。
NAT IP 范围。