创建命名集

本指南介绍了如何在 Cloud Router 路由器中创建命名集。

本页面上的示例创建了两个不同类型的命名集:前缀集和社集群。

前缀集名为 allowed-prefixes,包含以下项:

  • '192.168.0.0/16'
  • 'fd00::/8'
  • prefix('10.0.0.0/20').orLonger()

社集群名为 allowed-communities,包含以下项:

  • '64500:100'
  • '64500:200'

您可以通过以下两种方式为 Cloud Router 路由器创建命名集:

构建命名集

命名集的名称在路由器中必须是唯一的。本部分使用 gcloud CLI 构建命名集。

构建前缀集

如需构建前缀集,请执行以下操作:

  1. 如需创建名为 allowed-prefixes 的空前缀命名集,请运行以下命令:
    gcloud compute routers add-named-set ROUTER_NAME
        --set-name=allowed-prefixes
        --set-type=prefix
    
    将 ROUTER_NAME 替换为 Cloud Router 路由器的名称。
  2. 如需将每个元素添加到 allowed-prefixes 命名集,请为每个元素运行 add-named-set-element 命令:

    gcloud compute routers add-named-set-element ROUTER_NAME
        --set-name=allowed-prefixes
        --new-set-element="'192.168.0.0/16'"

    gcloud compute routers add-named-set-element ROUTER_NAME --set-name=allowed-prefixes --new-set-element="'fd00::/8'"

    gcloud compute routers add-named-set-element ROUTER_NAME --set-name=allowed-prefixes --new-set-element="prefix('10.0.0.0/20').orLonger()"

构建社集群

如需构建社集群,请执行以下操作:

  1. 如需创建名为 allowed-communities 的空社集群,请运行以下命令:
    gcloud compute routers add-named-set ROUTER_NAME
        --set-name=allowed-communities
        --set-type=community
    
  2. 如需将每个元素添加到 allowed-communities 命名集,请为每个元素运行 add-named-set-element 命令:

    gcloud compute routers add-named-set-element ROUTER_NAME
        --set-name=allowed-communities
        --new-set-element="'64500:100'"

    gcloud compute routers add-named-set-element ROUTER_NAME --set-name=allowed-communities --new-set-element="'64500:200'"

上传命名集

创建 JSON 或 YAML 文件时,请使用以下命名集类型之一:

  • NAMED_SET_TYPE_COMMUNITY
  • NAMED_SET_TYPE_PREFIX

The upload-named-set 命令会覆盖任何同名的命名集。

  1. 如需创建名为 allowed-prefixes 和 allowed-communities 的命名集,请在您偏好的文本编辑器中创建命名集。您可以使用 YAML 或 JSON 格式创建它们。

    allowed-prefixes.yaml:

    # Prefix set
    resource:
      elements:
      - expression: "'192.168.0.0/16'"
      - expression: "'fd00::/8'"
      - expression: "prefix('10.0.0.0/20').orLonger()"
      name: allowed-prefixes
      type: NAMED_SET_TYPE_PREFIX
    

    allowed-communities.yaml:

    # Community set
    resource:
      elements:
      - expression: "'64500:100'"
      - expression: "'64500:200'"
      name: allowed-communities
      type: NAMED_SET_TYPE_COMMUNITY
    
  2. 如需上传命名集,请运行以下命令:

    gcloud compute routers upload-named-set ROUTER_NAME
        --set-name=allowed-prefixes
        --file-name=allowed-prefixes.yaml
        --file-format=json
    

    gcloud compute routers upload-named-set ROUTER_NAME
        --set-name=allowed-communities
        --file-name=allowed-communities.json
        --file-format=json
    

    将 ROUTER_NAME 替换为 Cloud Router 路由器的名称。

前缀集元素

前缀集的元素必须是前缀字面量(字符串)或前缀范围对象。这些元素与为在路由政策中使用而定义的前缀字面量和前缀范围相同。

下表介绍了前缀集的每个元素。

表达式 说明

'192.168.0.0/24'

前缀字面量。

prefix('192.168.0.0/24')

前缀匹配对象。

p.longer()

前缀范围对象,它是 p 的副本,其范围的结束值设置为输入前缀的每个地址系列的最大值(/32 或 /128),范围的起始值设置为输入前缀的长度加 1。

p.orLonger()

前缀范围对象,它是 p 的副本,其范围的结束值设置为输入前缀的每个地址系列的最大值(/32 或 /128)。

p.lengthRange(20, 30)

前缀范围对象,它是 p 的副本,其范围的起始值设置为 /20,结束值设置为 /30。

p.upTo(30)

前缀范围对象,它是 p 的副本,其范围的结束值设置为输入前缀的 /30。

社集群元素

社集群的元素必须是人类可读的 A:B 格式的社群字符串。

下表介绍了社集群的元素。

表达式 说明

'A:B'

社群字面量。

后续步骤