为 SDN 基础结构中的流量转发设置 NAT

本文介绍如何在 System Center Virtual Machine Manager (VMM) 构造中设置的软件定义网络(SDN)基础结构中用于流量转发的网络地址转换(NAT)。

NAT 允许隔离 SDN 虚拟网络中的虚拟机(VM)获取外部连接。 VMM 将虚拟 IP(VIP)配置为将流量转发到外部网络和从外部网络转发。

VMM 支持以下两种 NAT 类型。

  • 出站 NAT - 将 VM 网络流量从虚拟网络转发到外部目标。
  • 入站 NAT - 将外部流量转发到虚拟网络中的特定 VM。

本文介绍如何使用 VMM 为 SDN 虚拟网络配置 NAT 连接。

VMM 2022 支持双栈。 VMM 控制台不支持对双堆栈 VM 网络的 NAT 规则。 可以使用 PowerShell cmdlet 指定 NAT 规则。 有关详细信息,请参阅向 NAT 连接添加规则

注意

  • 从 VMM 2019 UR1 开始,一个连接的网络类型更改为“已连接网络”
  • VMM 2019 UR2 及更高版本支持 IPv6。

开始之前

确保以下信息:

创建 NAT 连接

请按以下过程操作:

  1. 在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击要为其创建 NAT 连接的所选 VM 网络,然后选择“ 属性”。

  2. 在显示的向导页上选择 “连接 ”。

  3. “连接”中,选择“ 直接连接到其他逻辑网络 ”,然后在此选项下选择“网络地址转换” (NAT )。

    nat 连接的屏幕截图。

  4. 在 IP 地址池,选择 VIP 必须来自的 IP 池。 在 IP 地址中,从所选池中选择 IP 地址。 选择“确定”

  1. 若要启用 IPv6,请选择 IPv6 地址池并提供 IPv6 地址。

将为此 VM 网络创建 NAT 连接。

注意

  • 与 NAT 连接一起,此过程还会创建默认出站 NAT 规则,该规则可为 VM 网络启用出站连接。
  • 若要启用入站连接并将外部流量转发到特定 VM,必须将 NAT 规则添加到 NAT 连接。

将规则添加到 NAT 连接

VMM 2022 支持双栈。 VMM 控制台不支持用于双堆栈 VM 网络的 NAT 规则。 可以使用 PowerShell cmdlet 指定 NAT 规则。

$vmNetwork = Get-SCVMNetwork -ID <VMNetwork ID>

$vmSubnet = Get-SCVMSubnet -Name <VMSubnet Name> | where { $_.ID -eq <VMSubnet ID> }
$gatewayDevice = Get-SCNetworkGateway -ID <Gateway Device ID>
$VmNetworkGateway = Add-SCVMNetworkGateway -Name "TenantDS_Gateway" -EnableBGP $false -NetworkGateway $gatewayDevice -VMNetwork $vmNetwork

对于 IPv6 NAT 连接

$externalIpPoolVar = Get-SCStaticIPAddressPool -ID <VIP Pool Id>
$natConnectionIPv6 = Add-SCNATConnection -VMNetwork $vmNetwork -Name "TenantDS_NatConnection_IPv6" -ExternalIPPool $externalIpPoolVar -ExternalIPAddress <IP From IPv6 VIP Pool>
Add-SCNATRule -Name "NATIPv6" -Protocol "TCP" -InternalIPAddress <IP From IPv6 subnet> -ExternalPort <External Port> -NATConnection $natConnectionIPv6 -InternalPort <Internal Port>

对于 IPv4 NAT 连接

$externalIpPoolVar1 = Get-SCStaticIPAddressPool -Name "PublicVIP_IPAddressPool_0"
$natConnectionIPv4 = Add-SCNATConnection -VMNetwork $vmNetwork -Name "TenantDS_NatConnection_IPv4" -ExternalIPPool $externalIpPoolVar1 -ExternalIPAddress <IP From IPv4 VIP Pool>
Add-SCNATRule -Name "NATIPv4" -Protocol "TCP" -InternalIPAddress <IP From IPv4 subnet>" -ExternalPort <External Port> -NATConnection $natConnectionIPv4 -InternalPort <Internal Port>

使用以下过程将规则添加到 NAT 连接:

  1. 在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击所选的 VM 网络,然后选择“ 属性”。

  2. 向导中选择“网络地址转换 ”。

    nat 规则的屏幕截图。

  3. 在“指定网络地址转换”(NAT)规则,选择“添加”。 根据需要键入以下详细信息:

  • 名称 – 入站 NAT 规则的名称。
  • 协议 - 入站网络流量协议。 支持 TCP/UDP。
  • 传入端口 – 要与 VIP 一起使用的端口号来访问 VM。
  • 目标 IP – 要将外部流量定向到的 VM 的 IP 地址。
  • 目标端口 – VM 上的端口号,外部流量必须转发到。
  1. 选择“确定”

注意

可以创建多个 NAT 规则,将流量转发到属于 VM 网络的多个 VM。

删除 NAT 规则

请按以下过程操作:

  1. 在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击所选的 VM 网络,然后选择“ 属性”。
  2. 向导中选择“网络地址转换 ”。
  3. 选择要删除的 NAT 规则,选择“删除,然后选择“确定”。

删除 NAT 连接

  1. 在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击所选的 VM 网络,然后选择“ 属性”。
  2. 向导中选择“连接 ”。
  3. 清除“直接连接到其他逻辑网络”选项,然后选择“确定”。