通告特定的虛擬私有雲子網路
您可以建立自訂通告路由,限制 Cloud Router 通告的虛擬私有雲 (VPC) 網路子網路。地端部署用戶端只能看到您通告的子網路。除非您將 Cloud Router 設為通告所有子網路,否則 Cloud Router 不會動態通告新的子網路。如果您選擇只通告特定子網路,且想通告新的子網路,則必須將這些子網路新增為自訂通告路徑。
對於啟用 IPv6 的 BGP 工作階段,您可以為特定內部 (ULA) 和外部 (GUA) IPv6 子網路範圍設定自訂通告路徑。如要瞭解 IPv6 子網路類型,請參閱「IPv6 子網路範圍」。
如要在建立 Cloud Router 或設定 BGP 工作階段時指定自訂通告路徑,請參閱「建立 Cloud Router」或「建立 BGP 工作階段」。
事前準備
gcloud
如要使用本指南中的指令列範例,請完成下列事項:
- 安裝或更新至最新版 Google Cloud CLI。
- 設定預設地區和區域。
API
如要使用本指南提供的 API 範例,請設定 API 存取權。
在 Cloud Router 上指定自訂通告路徑
如要在現有的 Cloud Router 上指定自訂 advertise 路由,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Cloud Router」頁面。
選取要更新的 Cloud Router。
在「Router details」(路由器詳細資料) 頁面中,按一下 「Edit」(編輯)。
在「公告路徑」部分,選取「路徑」的「建立自訂路徑」。
如果已選取「公告向 Cloud Router 公開的所有子網路」核取方塊,請取消選取。
選取「新增自訂路徑」,新增自訂通告路徑。
設定自訂 advertise 路由:
- 「來源」:選取預先定義的子網路清單。 Cloud Router 會根據 VPC 網路的動態轉送模式,列出所有可用的子網路。
「IP 位址範圍」:您可以修改通告的子網路 IP 範圍。例如,您可以指定較小的範圍,讓 Cloud Router 只通告子網路的一部分。您可以同時指定 IPv4 和 IPv6 自訂 IP 範圍。 不過,只有在啟用 IPv6 的 BGP 工作階段中,才會宣傳 IPv6 自訂範圍。
如果您提供的 IP 位址前置字元沒有子網路遮罩,系統會將其解讀為 IPv4 的
/32子網路遮罩,以及 IPv6 的/128。如要瞭解自訂已知路徑的數量上限,請參閱「限制」一文。「說明」:加上說明以識別這個自訂通告路徑的目的,然後按一下「完成」。
新增自訂 advertise 路由後,請按一下「Save」(儲存)。
gcloud
開始前,請記下要通告的子網路 IP 範圍。
請執行 update 指令。如要指定要通告的子網路 IP 範圍,請使用 --set-advertisement-ranges 標記。如要將 IP 範圍附加到現有通告,請使用 --add-advertisement-ranges 標記。
使用
--set-advertisement-ranges標記,即可取代所有現有的自訂 advertise 路由:gcloud compute routers update ROUTER_NAME \ --advertisement-mode custom \ --set-advertisement-ranges=ADVERTISED_IP_RANGES
更改下列內容:
ROUTER_NAME:Cloud Router 的名稱ADVERTISED_IP_RANGES:新的 IP 位址範圍陣列內容。您可以同時指定 IPv4 和 IPv6 自訂 IP 範圍。不過,只有在啟用 IPv6 的 BGP 工作階段中,才會宣傳 IPv6 自訂範圍。如果您提供的 IP 位址前置字元沒有子網路遮罩,系統會將其解讀為 IPv4 的
/32子網路遮罩,以及 IPv6 的/128。如要瞭解自訂已知路徑的數量上限,請參閱「限制」一文。
以下範例會更新
my-routerCloud Router,以通告192.0.2.0/24和198.51.100.0/24子網路;現有的自訂通告路徑會遭到取代:gcloud compute routers update my-router \ --advertisement-mode=custom \ --set-advertisement-ranges='192.0.2.0/24,198.51.100.0/24'
以下範例會更新
my-routerCloud Router,以通告192.0.2.0/24和198.51.100.0/24IPv4 子網路,以及2001:db8:abcd:12::/64IPv6 子網路:gcloud compute routers update my-router \ --advertisement-mode=custom \ --set-advertisement-ranges='192.0.2.0/24,198.51.100.0/24,2001:db8:abcd:12::/64'
只有在啟用 IPv6 的 BGP 工作階段中,Cloud Router 才會通告 IPv6 範圍。
以下範例使用
--add-advertisement-ranges標記,將 IP 範圍附加到現有通告:gcloud compute routers update my-router \ --add-advertisement-ranges='203.0.113.0/24'
以下範例會將
2001:db8:abcd:12::/64自訂 IPv6 範圍新增至 Cloud Router 的通告:gcloud compute routers update my-router \ --add-advertisement-ranges='2001:db8:abcd:12::/64'
只有在啟用 IPv6 的 BGP 工作階段中,Cloud Router 才會通告 IPv6 範圍。
如果 Cloud Router 的通告群組包括所有子網路,請將這個群組移除,以防止 Cloud Router 通告其他子網路。通告群組是 Cloud Router 動態通告的 Google 定義 IP 範圍。如需所有通告群組的清單,請參閱 Google SDK 說明文件中的 set-advertisement-groups 標記。
以下範例使用
describe指令,檢查 Cloud Router 通告的路徑:gcloud compute routers describe my-router
如果輸出內容包含的
advertisedGroups欄位顯示all_subnets值,請移除。下列範例使用update指令搭配--remove-advertisement-groups旗標:gcloud compute routers update my-router \ --remove-advertisement-groups all_subnets
API
使用 routers.patch 方法更新 bgp.advertisedIpRanges[] 欄位。如果 bgp.advertisedGroups[] 欄位目前的值為 ALL_SUBNETS,您可能也需要更新該欄位。
bgp.advertisedGroups[] 和 bgp.advertisedIpRanges[] 欄位接受公告群組和公告 IP 位址範圍的陣列。PATCH這些欄位時,系統會以要求中的新陣列覆寫現有陣列。
傳送
GET要求,取得路由器上目前通告的群組和通告的 IP 範圍陣列。詳情請參閱查看 Cloud Router 狀態和路徑。傳送
PATCH要求,其中包含新的廣告群組陣列和廣告 IP 位址範圍:- 將要新增至路由器的任何子網路 IP 位址範圍,新增至
bgp.advertisedIpRanges[]欄位。 - 如果
advertisedGroups[]欄位目前指定的值為ALL_SUBNETS,請傳送空陣列來移除該值,如下列範例所示。以防止 Cloud Router 通告其他子網路。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgp": { "advertisedGroups": [], "advertisedIpRanges": [ ADVERTISED_IP_RANGES ] } }更改下列內容:
PROJECT_ID:包含 Cloud Router 的專案REGION:Cloud Router 所在的區域ROUTER_NAME:Cloud Router 的名稱ADVERTISED_IP_RANGES:新的 IP 位址範圍陣列內容。除了 IPv4 位址範圍,您也可以指定 IPv6 自訂 IP 位址範圍。不過,只有為這個 BGP 工作階段啟用 IPv6 交換功能,才會宣傳 IPv6 範圍。
如果您提供的 IP 位址前置字元沒有子網路遮罩,系統會將其解讀為 IPv4 的
/32子網路遮罩,以及 IPv6 的/128子網路遮罩。如要瞭解自訂學習路徑的數量上限,請參閱「限制」一文。以下範例包含兩個子網路 IPv4 位址範圍和一個 IPv6 位址範圍:
{ "range": "192.0.2.0/24", "description": "First example range" }, { "range": "198.51.100.0/24", "description": "Second example range" }, { "range": "2001:db8:abcd:12::/64", "description: "Third example range" }- 將要新增至路由器的任何子網路 IP 位址範圍,新增至
為 BGP 工作階段指定自訂通告路由
如要為現有 BGP 工作階段指定自訂通告路徑,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Cloud Router」頁面。
選取要更新的 BGP 工作階段所屬的 Cloud Router。
在「路由器詳細資料」頁面中,選取要更新的 BGP 工作階段。
在「BGP session details」(BGP 工作階段詳細資料) 頁面中,按一下「Edit」(編輯)。
在「Routes」(路由) 欄位,選取「Create custom routes」(建立自訂路由)。
如果已選取「公告向 Cloud Router 公開的所有子網路」核取方塊,請取消選取。
選取 [新增自訂路徑] 以新增通告路徑。
設定自訂 advertise 路由:
「來源」:選取預先定義的子網路清單。 Cloud Router 會根據 VPC 網路的動態轉送模式,列出所有可用的子網路。
「IP 位址範圍」:您可以修改通告的子網路 IP 範圍。例如,您可以指定較小的範圍,讓 Cloud Router 只通告子網路的一部分。除了 IPv4 位址範圍,您也可以指定 IPv6 自訂 IP 位址範圍。不過,只有在啟用這個 BGP 工作階段的 IPv6 交換時,才會通告 IPv6 範圍。
如果您提供的 IP 位址前置字元沒有子網路遮罩,系統會將其解讀為 IPv4 的
/32子網路遮罩,以及 IPv6 的/128子網路遮罩。如要瞭解自訂學習路徑的數量上限,請參閱「限制」一文。「說明」:加上說明以識別這個自訂通告路徑的目的,然後按一下「完成」。
新增完自訂路徑後,按一下「儲存」。
gcloud
開始前,請記下要通告的子網路 IP 範圍。
請執行 update-bgp-peer 指令。如要指定要通告的子網路 IP 範圍,請使用 --set-advertisement-ranges 標記。如要將 IP 範圍附加到現有通告,請使用 --add-advertisement-ranges 標記。
使用
--set-advertisement-ranges標記,即可取代現有的所有自訂通告:gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --advertisement-mode=custom \ --set-advertisement-ranges=ADVERTISED_IP_RANGES
更改下列內容:
ROUTER_NAME:Cloud Router 的名稱PEER_NAME:BGP 對等互連名稱- 如要新增自訂 IPv6 範圍,可以選擇新增
--enable-ipv6旗標。 ADVERTISED_IP_RANGES:新的 IP 位址範圍陣列內容。您可以同時指定 IPv4 和 IPv6 自訂 IP 範圍。不過,只有在啟用 IPv6 的 BGP 工作階段中,才會宣傳 IPv6 自訂範圍。如果您提供的 IP 位址前置字元沒有子網路遮罩,系統會將其解讀為 IPv4 的
/32子網路遮罩,以及 IPv6 的/128子網路遮罩。如要瞭解自訂學習路徑的數量上限,請參閱「限制」一文。
以下範例會更新
my-routerCloud Router 上的my-bgp-sessionBGP 工作階段,以 advertise192.0.2.0/24、198.51.100.0/24和2001:db8:abcd:12::/64子網路;現有的自訂通告路徑會遭到取代:gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --enable-ipv6 \ --advertisement-mode=custom \ --set-advertisement-ranges='192.0.2.0/24,198.51.100.0/24,2001:db8:abcd:12::/64'
以下範例使用
--add-advertisement-ranges標記,將 IP 範圍附加到現有通告:gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --add-advertisement-ranges='203.0.113.0/24'
下列範例會將
2001:db8:abcd:12::/64自訂 IPv6 位址新增至 Cloud Router 的通告路由:gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --enable-ipv6 \ --add-advertisement-ranges='2001:db8:abcd:12::/64'
如果 BGP 工作階段的通告群組包括所有子網路,請將這個群組移除,以防止 Cloud Router 通告其他子網路。通告群組是 Cloud Router 動態通告的 Google 定義 IP 範圍。如需所有通告群組的清單,請參閱 Google SDK 說明文件中的 set-advertisement-groups 標記。
以下範例使用
describe指令,檢查 Cloud Router 通告的路徑:gcloud compute routers describe my-router
如果相關 BGP 工作階段包含的
advertisedGroups欄位顯示all_subnets值,請移除。下列範例使用update指令並加上--remove-advertisement-groups標記:gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --remove-advertisement-groups=all_subnets
API
使用 routers.patch 方法更新 bgpPeers[] 欄位。
bgpPeers[] 欄位接受 BGP 對等互連陣列。PATCH這個欄位時,您會以要求中包含的新陣列,覆寫現有的 BGP 對等互連陣列。
傳送
GET要求,取得路由器的目前 BGP 對等互連陣列。詳情請參閱「查看 BGP 工作階段設定」。傳送含有新 BGP 對等互連陣列的
PATCH要求。針對要新增自訂通告路由的每個 BGP 對等互連,執行下列操作:將您要的任何子網路 IP 位址範圍通告新增至
bgpPeers[].advertisedIpRanges[]欄位。如果您提供的 IP 位址前置字元沒有子網路遮罩,系統會將其解讀為 IPv4 的
/32子網路遮罩,以及 IPv6 的/128子網路遮罩。如要瞭解自訂學習路徑的數量上限,請參閱「限制」一文。如果
bgpPeers[].advertisedGroups[]欄位目前指定的值為ALL_SUBNETS,請移除該值,防止 BGP 工作階段通告其他子網路。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ BGP_PEERS ] }更改下列內容:
PROJECT_ID:包含 Cloud Router 的專案REGION:Cloud Router 所在的區域ROUTER_NAME:Cloud Router 的名稱BGP_PEERS:新的 BGP 對等互連陣列內容
以下範例包含兩個具有自訂宣傳路徑的 BGP 對等互連:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "169.254.10.1", "peerIpAddress": "169.254.10.2", "peerAsn": 64512, "enableIpv6": true, "advertisedRoutePriority": 100, "advertiseMode": "CUSTOM", "advertisedGroups": [], "advertisedIpRanges": [ { "range": "192.0.2.0/24", "description": "First example subnet" }, { "range": "198.51.100.0/24", "description": "Second example subnet" }, { "range": "2001:db8:abcd:12::/64", "description: "Third example subnet" } ] }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "169.254.20.1", "peerIpAddress": "169.254.20.2", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "CUSTOM", "advertisedGroups": [], "advertisedIpRanges": [ { "range": "203.0.113.0/24", "description": "Fourth example subnet" } ] }
後續步驟
如要查看 Cloud Router 的設定、BGP 工作階段和 Cloud Router 通告的路徑,請參閱「查看 Cloud Router 詳細資料」。
如要排解自訂公告路徑問題,請參閱疑難排解。