为 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 2025 和 2022 支持双堆栈。 VMM 控制台不支持对双堆栈 VM 网络的 NAT 规则。 可以使用 PowerShell cmdlet 指定 NAT 规则。 有关详细信息,请参阅向 NAT 连接添加规则。
注意
- 从 VMM 2019 UR1 开始,一个连接的网络类型更改为“已连接网络”
- VMM 2019 UR2 及更高版本支持 IPv6。
开始之前
确保以下信息:
- 部署 SDN 网络控制器 和 SDN 软件负载均衡器 。
- 创建具有网络虚拟化的 SDN VM 网络。
创建 NAT 连接
请按以下过程操作:
在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击要为其创建 NAT 连接的所选 VM 网络,然后选择“ 属性”。
在显示的向导页上选择 “连接 ”。
在 “连接”中,选择“ 直接连接到其他逻辑网络 ”,然后在此选项下选择“网络地址转换” (NAT )。
在 IP 地址池中,选择 VIP 必须来自的 IP 池。 在 IP 地址中,从所选池中选择 IP 地址。 选择“确定”。
- 若要启用 IPv6,请选择 IPv6 地址池并提供 IPv6 地址。
将为此 VM 网络创建 NAT 连接。
注意
- 与 NAT 连接一起,此过程还会创建默认出站 NAT 规则,该规则可为 VM 网络启用出站连接。
- 若要启用入站连接并将外部流量转发到特定 VM,必须将 NAT 规则添加到 NAT 连接。
将规则添加到 NAT 连接
VMM 2022 支持双栈。 VMM 控制台不支持用于双堆栈 VM 网络的 NAT 规则。 可以使用 PowerShell cmdlet 指定 NAT 规则。
VMM 2025 和 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 连接:
在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击所选的 VM 网络,然后选择“ 属性”。
在 向导中选择“网络地址转换 ”。
在“指定网络地址转换”(NAT)规则下,选择“添加”。 根据需要键入以下详细信息:
- 名称 – 入站 NAT 规则的名称。
- 协议 - 入站网络流量协议。 支持 TCP/UDP。
- 传入端口 – 要与 VIP 一起使用的端口号来访问 VM。
- 目标 IP – 要将外部流量定向到的 VM 的 IP 地址。
- 目标端口 – VM 上的端口号,外部流量必须转发到。
- 选择“确定”。
注意
可以创建多个 NAT 规则,将流量转发到属于 VM 网络的多个 VM。
删除 NAT 规则
请按以下过程操作:
- 在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击所选的 VM 网络,然后选择“ 属性”。
- 在 向导中选择“网络地址转换 ”。
- 选择要删除的 NAT 规则,选择“删除”,然后选择“确定”。
删除 NAT 连接
- 在 VMM 控制台中,选择 VM 和服务>VM 网络。 右键单击所选的 VM 网络,然后选择“ 属性”。
- 在 向导中选择“连接 ”。
- 清除“直接连接到其他逻辑网络”选项,然后选择“确定”。