虚拟网络中的出口计量

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

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

Egress Server 2019 中为 SDN 网络流量进行Windows能够为出站数据传输提供使用计量。 可以单独跟踪离开每个虚拟网络但保留在数据中心内的网络流量,以便可以从计费计算中排除流量。 为未计费地址范围之一中未包含的目标 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 属性后,可以检查虚拟网络中每个子网的计费和未计费出口使用情况。 Egress流量每四分钟更新一次,总字节数为计费范围和未计费范围。

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

  • 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