管理已命名的集合
本指南說明如何對 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) 表示