管理命名集
本指南介绍了如何对 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 使用该字段来匹配现有的命名集并防止更新冲突。
如需下载指定集,请运行
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。
使用 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_PREFIXallowed-communities.yaml:
# Community set resource: elements: - expression: "'64500:100'" - expression: "'64500:300'" name: allowed-communities type: NAMED_SET_TYPE_COMMUNITY如需上传指定集,请运行
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) 表示