配置流量区分

Application Awareness 功能使用差分服务代码点 (DSCP) 来进行流量区分,帮助您更高效地使用专用互连连接。

您可以使用 Cloud Interconnect 中的 Application Awareness 功能为出站的专用互连数据传输配置流量区分。

当您在 Cloud Interconnect 上启用 Application Awareness,并在出站数据传输的 IP 标头中标记 DSCP 以将其映射到流量类别时,您的出站数据传输将在 Cloud Interconnect 上获得差异化处理。

使用 Application Awareness,您可以:

  • 选择两种政策类型之一(严格优先级政策或带宽百分比政策),以指定 Cloud Interconnect 如何处理分类为不同流量类别的出站数据传输。

  • 在六个不同的流量类别中分配专用互连出站数据传输带宽。

  • 除了使用上述任一政策类型外,您还可以使用流量整形控制来设置每个流量类别可以在专用互连出站数据传输中使用的最大带宽。

以下部分介绍 Cloud Interconnect 中的 Application Awareness 功能以及如何为专用互连连接配置该功能。

如需在专用互连中启用 Application Awareness,请与您的客户支持团队联系。

准备工作

在开始之前,请执行以下操作:

  • 了解配置 Cloud Interconnect 时的最佳实践,尤其是创建具有足够容量的冗余 Cloud Interconnect 连接的最佳实践。

  • 确保专用互连连接上没有网络流量。

  • 请考虑以下有关配置 Application Awareness 的信息:

    • 出站数据流量 IP 标头中的 DSCP 决定了 Application Awareness 流量类别,以实现流量区分。相应地标记出站 IP 数据流量标头中的 DSCP。

    • 为了在源自 Google API 的出站 Cloud Interconnect 数据传输中标记特定的 DSCP,请在 Google API 请求数据包中将相同的 DSCP 标记为 Google API 响应流量的预期 DSCP。Google API 会在其响应流量中回显(复制)相应客户请求 IP 数据包中的 DSCP,从而让您控制 Google API 响应流量的 DSCP。

    • 使用 Private Service Connect 时,Google API 支持 DSCP 回显行为。您可以通过相应地设置请求 DSCP 来控制 Google API 响应流量中的 DSCP。这样,您就可以控制通过 Private Service Connect 连接的 Google API 的出站数据传输中的 DSCP。

    • 使用 Private Service Connect 时,对于已发布的虚拟私有云 (VPC) 托管服务,不支持 DSCP 回显。因此,无法通过请求流量 DSCP 控制已发布的 VPC 托管服务在响应数据流量中的 DSCP。而是由相应的 VPC 托管服务后端确定响应数据包中的 DSCP。

流量类别

Application Awareness 使用基于 DSCP 范围的流量类别概念来区分专用互连上的流量。下表介绍了六种流量类别:

流量类别 内部 DSCP 范围(二进制) 内部 DSCP 范围(十进制) 说明和示例
TC1 000xxx 0-7 尽力服务流量
TC2 001xxx 8-15 批量流量

示例:文件传输

TC3 010xxx 16-23 运营、行政和管理流量

示例:SNMP、SSH、ping、telnet

TC4 011xxx 24-31 流式视频或直播视频
TC5 10xxxx 32-47 互动流量或面向用户的流量
TC6 11xxxx 48-63 必要的网络控制流量

示例:控制来自 BGP 和 BFD 等协议的流量

可用的政策类型

Cloud Interconnect 上的 Application Awareness 提供两种政策类型,用于确定如何在 Cloud Interconnect 上区分出站数据传输:

严格优先级

严格优先级政策类型会为出站数据传输的每个流量类别分配优先级。优先级最高的出站数据传输会被分配到流量类别 TC6,而优先级最低的出站数据传输会被分配到流量类别 TC1

严格优先级区分不要求您指定特定于类别的配置,因为每个流量类别的优先级都是预先指定的。不过,为了防止在拥塞事件期间优先级较低的流量类别缺少流量,我们建议您指定流量整形配置文件,以限制每个优先级较高的流量类别使用的最大带宽。

带宽百分比

带宽百分比政策类型可让您指定每个流量类别在 Cloud Interconnect 发生拥塞事件时可以使用的目标带宽份额。为每个流量类别分配百分比有助于确保在 Cloud Interconnect 发生拥塞事件时,每个流量类别都可以使用其指定的 Cloud Interconnect 带宽份额。

如果某个流量类别未充分使用其分配的份额,导致有额外的带宽可用,则所有其他流量类别会平均共享剩余的带宽。

流量整形控制

除了这两种政策类型之外,Application Awareness 还提供流量整形控制,可让您指定每个流量类别可以使用的最大带宽。您可以将流量整形控制与严格优先级政策带宽百分比政策搭配使用。

配置严格优先级政策类型

请按照以下步骤配置严格优先级政策类型。

gcloud

使用以下命令:

gcloud beta compute interconnects application-awareness \
    configure-strict-priority-policy INTERCONNECT_NAME \
    --profile-description=DESCRIPTION \
    --enabled

替换以下内容:

  • INTERCONNECT_NAME:要修补的互连的名称
  • DESCRIPTION:Application Awareness 的配置文件说明

API

将以下 JSON 对象发送到 interconnects.patch 端点

{
  "aaiEnabled":true,
  "applicationAwareInterconnect":
    {
      "profileDescription": "DESCRIPTION",
      "strictPriorityPolicy":{}
  },
}

DESCRIPTION 替换为此配置文件的说明。

使用流量整形配置文件配置严格优先级政策类型

您可以选择配置严格优先级政策类型以及流量整形配置文件。我们建议您使用流量整形配置文件,以帮助确保在拥堵事件期间,低优先级流量类别不会因高优先级流量类别而缺少流量。

请按照以下步骤配置严格优先级政策类型以及流量整形配置文件。指定一个数值,表示每个纳入的流量类别的最大带宽百分比。您可以为一部分或所有 6 个流量类别(TC1TC6)指定流量整形配置文件。

gcloud

  1. 使用以下命令配置严格优先级政策:

    gcloud beta compute interconnects application-awareness \
        configure-strict-priority-policy INTERCONNECT_NAME \
        --profile-description=DESCRIPTION \
        --enabled
    

    替换以下内容:

    • INTERCONNECT_NAME:要修补的互连的名称
    • DESCRIPTION:Application Awareness 的配置文件说明
  2. 使用以下命令配置流量整形配置文件:

    gcloud beta compute interconnects application-awareness \
        configure-shaper-average-percentage INTERCONNECT_NAME \
        --profile-description=DESCRIPTION \
        --bandwidth-percentages="TC1=TC1_SHAPE_PERCENTAGE,TC2=TC2_SHAPE_PERCENTAGE,TC3=TC3_SHAPE_PERCENTAGE,TC4=TC4_SHAPE_PERCENTAGE,TC5=TC5_SHAPE_PERCENTAGE,TC6=TC6_SHAPE_PERCENTAGE" \
        --enabled
    

    替换以下内容:

    • INTERCONNECT_NAME:要修补的互连的名称
    • DESCRIPTION:Application Awareness 的配置文件说明
    • TC1_SHAPE_PERCENTAGE ... TC6_SHAPE_PERCENTAGE:一个数值,表示每种流量类别的平均百分比。每个值必须小于或等于 100。您可以为一部分或所有 6 个流量类别(TC1TC6)指定流量整形配置文件。

API

将以下 JSON 对象发送到 interconnects.patch 端点

{
  "aaiEnabled": true,
  "applicationAwareInterconnect":
    {
      "profileDescription": "DESCRIPTION",
      "strictPriorityPolicy": {},
      "shapeAveragePercentages": [
          {
            "trafficClass": "TC1",
            "percentage": TC1_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC2",
            "percentage": TC2_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC3",
            "percentage": TC3_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC4",
            "percentage": TC4_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC5",
            "percentage": TC5_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC6",
            "percentage": TC6_SHAPE_PERCENTAGE
          }
        ]
    }
}

TC1_SHAPE_PERCENTAGE ... TC6__SHAPE_PERCENTAGE 替换为一个数值,表示每个流量类别的最大带宽百分比。您可以为一部分或所有 6 个流量类别(TC1TC6)指定流量整形配置文件。

为防止网络故障,请确保网络控制流量(例如 BGP 和 BFD)包含在最高 strict_policy 优先级类别中。

配置带宽百分比

请按照以下步骤配置带宽百分比政策。

gcloud

使用以下命令:

gcloud beta compute interconnects application-awareness \
    configure-bandwidth-percentage-policy INTERCONNECT_NAME \
    --profile-description=DESCRIPTION \
    --bandwidth-percentages="TC1=TC1_PERCENTAGE,TC2=TC2_PERCENTAGE,TC3=TC3_PERCENTAGE,TC4=TC4_PERCENTAGE,TC5=TC5_PERCENTAGE,TC6=TC6_PERCENTAGE" \
    --enabled

替换以下内容:

  • INTERCONNECT_NAME:要修补的互连的名称
  • DESCRIPTION:Application Awareness 的配置文件说明
  • TC1_PERCENTAGE ... TC6_PERCENTAGE:表示每个流量类别的带宽百分比的数值。每个值必须小于或等于 100。

API

将以下 JSON 对象发送到 interconnects.patch 端点

{
  "aaiEnabled": true,
  "applicationAwareInterconnect":
    {
      "profileDescription": "DESCRIPTION",
      "bandwidthPercentagePolicy": {
        "bandwidthPercentages": [
          {
            "trafficClass": "TC1",
            "percentage": TC1_PERCENTAGE
          },
          {
            "trafficClass": "TC2",
            "percentage": TC2_PERCENTAGE
          },
          {
            "trafficClass": "TC3",
            "percentage": TC3_PERCENTAGE
          },
          {
            "trafficClass": "TC4",
            "percentage": TC4_PERCENTAGE
          },
          {
            "trafficClass": "TC5",
            "percentage": TC5_PERCENTAGE
          },
          {
            "trafficClass": "TC6",
            "percentage": TC6_PERCENTAGE
          }
        ]
    }
  }
}

替换以下内容:

  • DESCRIPTION:此配置文件的说明。
  • TC1_PERCENTAGE ... TC6_PERCENTAGE:表示每个流量类别的百分比的非零数值。所有流量类别的带宽百分比之和必须为 100%。

使用流量整形配置文件配置带宽百分比

您可以选择配置带宽百分比政策以及流量整形配置文件。流量整形配置文件可帮助您设置每个流量类别可以使用的最大带宽。

按照以下步骤使用流量整形配置文件配置带宽百分比政策。必须为每个流量类别指定一个非零值,并且所有流量类别的带宽百分比之和必须为 100。

gcloud

  1. 使用以下命令配置带宽百分比政策:

    gcloud beta compute interconnects application-awareness \
        configure-bandwidth-percentage-policy INTERCONNECT_NAME \
        --profile-description=DESCRIPTION \
        --bandwidth-percentages="TC1=TC1_PERCENTAGE,TC2=TC2_PERCENTAGE,TC3=TC3_PERCENTAGE,TC4=TC4_PERCENTAGE,TC5=TC5_PERCENTAGE,TC6=TC6_PERCENTAGE" \
        --enabled
    

    替换以下内容:

    • INTERCONNECT_NAME:要修补的互连的名称
    • DESCRIPTION:Application Awareness 的配置文件说明
    • TC1_PERCENTAGE ... TC6_PERCENTAGE:表示每个流量类别的带宽百分比的数值。每个值必须小于或等于 100。
  2. 使用以下命令配置流量整形配置文件:

    gcloud beta compute interconnects application-awareness \
        configure-shaper-average-percentage INTERCONNECT_NAME \
        --profile-description=DESCRIPTION \
        --bandwidth-percentages="TC1=TC1_SHAPE_PERCENTAGE,TC2=TC2_SHAPE_PERCENTAGE,TC3=TC3_SHAPE_PERCENTAGE,TC4=TC4_SHAPE_PERCENTAGE,TC5=TC5_SHAPE_PERCENTAGE,TC6=TC6_SHAPE_PERCENTAGE" \
        --enabled
    

    替换以下内容:

    • INTERCONNECT_NAME:要修补的互连的名称
    • DESCRIPTION:Application Awareness 的配置文件说明
    • TC1_SHAPE_PERCENTAGE ... TC6_SHAPE_PERCENTAGE:一个数值,表示每种流量类别的平均百分比。每个值必须小于或等于 100。您可以为一部分或所有 6 个流量类别(TC1TC6)指定流量整形配置文件。

API

将以下 JSON 对象发送到 interconnects.patch 端点

{
  "aaiEnabled": true,
  "applicationAwareInterconnect":
    {
      "profileDescription": "DESCRIPTION",
      "bandwidthPercentagePolicy": {
        "bandwidthPercentages": [
          {
            "trafficClass": "TC1",
            "percentage": TC1_PERCENTAGE
          },
          {
            "trafficClass": "TC2",
            "percentage": TC2_PERCENTAGE
          },
          {
            "trafficClass": "TC3",
            "percentage": TC3_PERCENTAGE
          },
          {
            "trafficClass": "TC4",
            "percentage": TC4_PERCENTAGE
          },
          {
            "trafficClass": "TC5",
            "percentage": TC5_PERCENTAGE
          },
          {
            "trafficClass": "TC6",
            "percentage": TC6_PERCENTAGE
          }
        ]
    },
      "shapeAveragePercentages": [
          {
            "trafficClass": "TC1",
            "percentage": TC1_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC2",
            "percentage": TC2_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC3",
            "percentage": TC3_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC4",
            "percentage": TC4_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC5",
            "percentage": TC5_SHAPE_PERCENTAGE
          },
          {
            "trafficClass": "TC6",
            "percentage": TC6_SHAPE_PERCENTAGE
          }
        ]
    }
}

替换以下内容:

  • DESCRIPTION:此配置文件的说明
  • TC1_PERCENTAGE ... TC6_PERCENTAGE:表示每个流量类别的百分比的数值
  • TC1_SHAPE_PERCENTAGE ... TC6_SHAPE_PERCENTAGE:一个数值,表示每种流量类别的平均百分比。每个值必须小于或等于 100。您可以为一部分或所有 6 个流量类别(TC1TC6)指定流量整形配置文件。

为防止网络故障,请确保网络控制流量(例如 BGP 和 BFD)包含在相应的带宽百分比配置中。

删除流量区分政策

如需删除流量区分政策,请按照以下步骤操作。

gcloud

使用以下命令:

gcloud beta compute interconnects application-awareness delete INTERCONNECT_NAME

INTERCONNECT_NAME 替换为您配置了流量区分政策的互连的名称。

API

将以下 JSON 对象发送到 interconnects.patch 端点

{
  "applicationAwareInterconnect":
  {
    "profileDescription": null,
    "strictPriorityPolicy": null,
    "bandwidthPercentagePolicy": null,
    "shapeAveragePercentages": null
  }
}

关闭流量区分

如需关闭流量区分,请按照以下步骤操作:

gcloud

使用以下命令:

gcloud beta compute interconnects application-awareness update INTERCONNECT_NAME \
    --no-enabled

INTERCONNECT_NAME 替换为要更新的互连的名称。

API

将以下 JSON 对象发送到 interconnects.patch 端点

{
  "aaiEnabled": false
}

后续步骤