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

重要

此版本的 Virtual Machine Manager (VMM) 已终止支持。 建议 升级到 VMM 2022

本文介绍了如何为在 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 控制台不支持将 NAT 规则转为双堆栈 VM 网络。 可以使用 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 上的端口号。
  4. 选择“确定” 。

注意

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

删除 NAT 规则

请按以下过程操作:

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

删除 NAT 连接

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