管理命名集

本指南介绍了如何对 Cloud Router BGP 路由政策的命名集执行以下更新:

  • 列出命名集
  • 移除命名集
  • 更新命名集
  • 添加命名集元素
  • 移除命名集元素

列出路由器上的命名集

使用 list-named-sets 命令可查看在单个路由器上定义的命名集的名称和类型。

gcloud compute routers list-named-sets ROUTER_NAME

将 ROUTER_NAME 替换为 Cloud Router 的名称。

移除命名集

如果路由器的任何 BGP 路由政策中引用了某个命名集,您就无法移除该命名集。

gcloud compute routers remove-named-set ROUTER_NAME
    --set-name=SET_NAME

替换以下内容:

  • ROUTER_NAME:Cloud Router 路由器的名称
  • SET_NAME:要移除的命名集的名称

更新路由器上的命名集合

更新现有命名集时,建议您使用 download-named-set 命令以 YAML 或 JSON 格式从路由器下载命名集。在本地修改 YAML 或 JSON 文件,然后使用 upload-named-set 命令将更新后的文件上传到路由器。upload-named-set 命令会覆盖现有的命名集。

从路由器下载的文件包含 fingerprint 字段,Cloud Router 使用该字段来匹配现有的命名集并防止更新冲突。

  1. 如需下载指定集,请运行 download-named-set 命令:

    gcloud compute routers download-named-set ROUTER_NAME
        --set-name=SET_NAME
        --file-name=FILE_NAME
        --file-format=FORMAT
    

    替换以下内容:

    • 将 ROUTER_NAME 替换为 Cloud Router 的名称。
    • 将 SET_NAME 替换为集合的名称。
    • 将 FILE_NAME 替换为您要为命名集指定的文件名,包括路径和文件扩展名。
    • FORMAT,格式为命名集,可以是 JSON 或 YAML。
  2. 使用 JSON 或 YAML 格式在首选文本编辑器中修改下载的命名集。

    以下示例使用两个 YAML 文件来更新名为 allowed-prefixes 和 allowed-communities 的命名集。

    allowed-prefixes.yaml:

    # Prefix set
    resource:
      elements:
      - expression: "'192.168.1.0/24'"
      - 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:300'"
      name: allowed-communities
      type: NAMED_SET_TYPE_COMMUNITY
    
  3. 如需上传指定集,请运行 upload-named-set 命令:

    gcloud compute routers upload-named-set ROUTER_NAME
        --set-name=SET
        --file-name=NAME
        --file-format=FORMAT
    

    替换以下内容:

    • 将 ROUTER_NAME 替换为 Cloud Router 的名称。
    • 将 SET 替换为集合的名称。
    • NAME 替换为您修改的 YAML 或 JSON 文件的位置和文件名。
    • FORMAT,格式为命名集,可以是 JSON 或 YAML。

添加命名集元素

运行以下命令:

gcloud compute routers add-named-set-element ROUTER_NAME
    --set-name=SET_NAME
    --new-set-element=CEL_EXPRESSION

替换以下内容:

  • ROUTER_NAME:Cloud Router 路由器的名称
  • SET_NAME:您要更新的命名集的名称
  • CEL_EXPRESSION:要添加到集合中的元素,以通用表达式语言 (CEL) 表示

移除命名集元素

运行以下命令:

gcloud compute routers remove-named-set-element ROUTER_NAME
    --set-name=SET_NAME
    --set-element=CEL_EXPRESSION

替换以下内容:

  • ROUTER_NAME:Cloud Router 路由器的名称
  • SET_NAME:您要更新的命名集的名称
  • CEL_EXPRESSION:要从集合中移除的元素,以通用表达式语言 (CEL) 表示

后续步骤