虚拟网络中的出口计量

云网络盈利的一个基本方面是能够按网络带宽利用率计费。 出站数据根据给定计费周期中通过 Internet 移出数据中心的数据总量收费。

使用 Windows Server 2019 中 SDN 网络流量的出口计量,能够为出站数据传输提供使用情况计量。 离开每个虚拟网络但仍保留在数据中心内的网络流量可以单独跟踪,以便将其从计费计算中排除。 其中一个未计费地址范围未包含的目标 IP 地址绑定的数据包将作为计费出站数据传输进行跟踪。

虚拟网络未计费的地址范围(IP 范围的允许列表)

可以在现有虚拟网络的 UnbilledAddressRanges 属性下找到未计费的地址范围。 默认情况下,不会添加地址范围。

import-module NetworkController
$uri = "https://sdn.contoso.com"

(Get-NetworkControllerVirtualNetwork -ConnectionURI $URI -ResourceId "VNet1").properties

输出结果将会类似于以下内容:

 AddressSpace           : Microsoft.Windows.NetworkController.AddressSpace
 DhcpOptions            :
 UnbilledAddressRanges  :
 ConfigurationState     :
 ProvisioningState      : Succeeded
 Subnets                : {21e71701-9f59-4ee5-b798-2a9d8c2762f0, 5f4758ef-9f96-40ca-a389-35c414e996cc,
                      29fe67b8-6f7b-486c-973b-8b9b987ec8b3}
 VirtualNetworkPeerings :
 EncryptionCredential   :
 LogicalNetwork         : Microsoft.Windows.NetworkController.LogicalNetwork

示例:管理虚拟网络的未计费地址范围

可以通过设置虚拟网络的 UnbilledAddressRange 属性来管理要从计费出口计量中排除的 IP 子网前缀集。 使用与其中一个前缀匹配的目标 IP 地址的虚拟网络上的网络接口发送的任何流量都不会包含在 BilledEgressBytes 属性中。

  1. 更新 UnbilledAddressRanges 属性,以包含不会对访问计费的子网。

    $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceID "VNet1"
    $vnet.Properties.UnbilledAddressRanges = "10.10.2.0/24,10.10.3.0/24"
    

    提示

    如果添加多个 IP 子网,请在每个 IP 子网之间使用逗号。 不要在逗号前后包含任何空格。

  2. 使用修改后的 UnbilledAddressRanges 属性更新虚拟网络资源。

    New-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "VNet1" -Properties $unbilled.Properties -PassInnerException
    

    输出结果将会类似于以下内容:

       Confirm
       Performing the operation 'New-NetworkControllerVirtualNetwork' on entities of type
       'Microsoft.Windows.NetworkController.VirtualNetwork' via
       'https://sdn.contoso.com/networking/v3/virtualNetworks/VNet1'. Are you sure you want to continue?
       [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
    
    
       Tags             :
       ResourceRef      : /virtualNetworks/VNet1
       InstanceId       : 29654b0b-9091-4bed-ab01-e172225dc02d
       Etag             : W/"6970d0a3-3444-41d7-bbe4-36327968d853"
       ResourceMetadata :
       ResourceId       : VNet1
       Properties       : Microsoft.Windows.NetworkController.VirtualNetworkProperties
    
  3. 检查虚拟网络以查看配置的 UnbilledAddressRanges

    (Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceID "VNet1").properties
    

    输出结果现在将会类似于以下内容:

    AddressSpace           : Microsoft.Windows.NetworkController.AddressSpace
    DhcpOptions            :
    UnbilledAddressRanges  : 10.10.2.0/24,192.168.2.0/24
    ConfigurationState     :
    ProvisioningState      : Succeeded
    Subnets                : {21e71701-9f59-4ee5-b798-2a9d8c2762f0, 5f4758ef-9f96-40ca-a389-35c414e996cc,
                         29fe67b8-6f7b-486c-973b-8b9b987ec8b3}
    VirtualNetworkPeerings :
    EncryptionCredential   :
    LogicalNetwork         : Microsoft.Windows.NetworkController.LogicalNetwork
    

检查虚拟网络的未计费出口使用量

配置 UnbilledAddressRanges 属性后,可以检查虚拟网络中每个子网的计费和未计费出口使用量。 出口流量每四分钟更新一次,其中包含计费和未计费范围的总字节数。

以下属性可用于每个虚拟子网:

  • UnbilledEgressBytes 显示连接到此虚拟子网的网络接口发送的未计费字节数。 未计费字节是发送到属于父虚拟网络的 UnbilledAddressRanges 属性的地址范围的字节。

  • BilledEgressBytes 显示连接到此虚拟子网的网络接口发送的未计费字节数。 计费字节是发送到不属于父虚拟网络的 UnbilledAddressRanges 属性的地址范围的字节。

使用以下示例查询出口使用量:

(Get-NetworkControllerVirtualNetwork -ConnectionURI $URI -ResourceId "VNet1").properties.subnets.properties | ft AddressPrefix,BilledEgressBytes,UnbilledEgressBytes

输出结果将会类似于以下内容:

AddressPrefix BilledEgressBytes UnbilledEgressBytes
------------- ----------------- -------------------
10.0.255.8/29          16827067                   0
10.0.2.0/24           781733019                   0
10.0.4.0/24                   0                   0