使用 MD5 驗證
Cloud Router 會透過邊界閘道通訊協定 (BGP),在虛擬私有雲 (VPC) 網路與對等互連網路之間交換路徑。根據預設,Cloud Router BGP 工作階段未經過驗證。不過,如果您將 Cloud Router 與特定產品搭配使用,可以選擇將 BGP 工作階段設定為使用 MD5 驗證。
可使用 MD5 驗證的產品包括:
您也可以搭配使用 MD5 驗證和第三方網路虛擬設備。詳情請參閱 Network Connectivity Center 說明文件中的「路由器裝置」。
設定工作階段以使用 MD5 驗證時,您會提供密鑰共用金鑰,也就是設定 Cloud Router 時使用的金鑰,以及設定對等路由器時使用的金鑰。完成必要的設定步驟後,Cloud Router 會使用該金鑰驗證 BGP 對等端。Cloud Router 會使用 RFC 2385 中所述的模型,強制執行 MD5 驗證。
您可以在建立對等裝置時新增 MD5 驗證。您也可以為現有工作階段新增驗證機制、變更工作階段使用的金鑰,或移除驗證機制。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 如果您使用的是 Google Cloud CLI,請執行下列指令來設定專案 ID。本頁的
gcloud
操作說明假設您已設定專案 ID。gcloud config set project PROJECT_ID
-
執行下列指令,確認 ID 已設定:
gcloud config list --format='text(core.project)'
- 如果您透過 gcloud 或使用者介面設定 MD5 驗證, Google Cloud會自動以
PEER_NAME-key
的形式產生金鑰名稱。 - 如果您透過 API 設定 MD5 驗證,可以指定金鑰名稱。
前往 Google Cloud 控制台的「Cloud Routers」頁面。
在「名稱」欄位中,按一下適當的 Cloud Router 名稱。
在「路由器詳細資料」頁面中,按一下要修改的 BGP 工作階段名稱。
在「BGP 工作階段詳細資料」頁面中,按一下
「編輯」。如要新增 MD5 驗證,請按照下列步驟操作:
- 在「MD5 驗證」部分中,選取「已啟用」。頁面更新後會加入文字欄位。
- 輸入安全金鑰,或按一下「產生並複製」來產生新的安全金鑰。
- 請記下金鑰。離開這個頁面後,您就無法擷取金鑰。
按一下 [儲存]。
ROUTER_NAME
:Cloud Router 的名稱PEER_NAME
:BGP 對等點的名稱REGION
: Google Cloud 區域SECRET_KEY
:您的 MD5 共用驗證金鑰- 在
md5AuthenticationKeys
陣列中新增鍵的項目。新增項目時,您必須提供鍵的名稱和值。 - 更新
bgpPeers
陣列,加入md5AuthenticationKeyName
欄位的值。這個欄位會依名稱參照鍵。 PROJECT_ID
:包含 Cloud Router 的專案REGION
: Google Cloud 區域ROUTER_NAME
:Cloud Router 的名稱KEY_NAME_1
:目前使用 (由PEER_NAME_1
使用) 的鍵名稱KEY_NAME_2
:您要為PEER_NAME_2
新增的新鍵名稱。請記下名稱。如果之後想使用 API 進行變更,就需要這個名稱。SECRET_KEY
:您為PEER_NAME_2
新增的 MD5 密鑰PEER_NAME_1
:您不變更的 BGP 對等互連名稱INTERFACE_NAME_1
:BGP 對等連線工作階段的介面名稱,不會變更IP_ADDRESS_1
:Cloud Router 上的 IP 位址 (適用於不會變更的對等端)PEER_IP_ADDRESS_1
:不變的對等端 IP 位址PEER_ASN_1
:不變動的對等端 BGP 自治系統編號 (ASN)PEER_NAME_2
:您要更新的 BGP 對等端名稱,以便使用 MD5 驗證INTERFACE_NAME_2
:BGP 對等工作階段的介面名稱IP_ADDRESS_2
:Cloud Router 上的 IP 位址PEER_IP_ADDRESS_2
:對等 Router 的 IP 位址PEER_ASN_2
:這個 BGP 對等點的 BGP 自治系統編號 (ASN)- 如果您透過 gcloud 或使用者介面設定 MD5 驗證, Google Cloud會自動以
PEER_NAME-key
的形式產生金鑰名稱。 - 如果您透過 API 設定 MD5 驗證,可以指定金鑰名稱。
前往 Google Cloud 控制台的「Cloud Routers」頁面。
在「名稱」欄位中,按一下適當的 Cloud Router 名稱。
在「路由器詳細資料」頁面中,按一下要修改的 BGP 工作階段名稱。
在「BGP 工作階段詳細資料」頁面中,按一下
「編輯」。在「MD5 驗證」部分中,按一下「更新 MD5 驗證金鑰」。
在「MD5 驗證金鑰」欄位中輸入新的秘密驗證金鑰,或按一下「產生並複製」,讓系統填入欄位。
請記下金鑰。離開這個頁面後,您就無法擷取金鑰。
按一下 [儲存]。
ROUTER_NAME
:Cloud Router 的名稱PEER_NAME
:BGP 對等點的名稱REGION
: Google Cloud 區域SECRET_KEY
:您要使用的新密鑰 MD5 驗證金鑰PROJECT_ID
:包含 Cloud Router 的專案REGION
: Google Cloud 區域ROUTER_NAME
:Cloud Router 的名稱KEY_NAME
:您要更新的金鑰名稱;每當您使用 API 處理 MD5 驗證時,都必須依名稱參照金鑰UPDATED_SECRET_KEY
:新的 MD5 驗證金鑰PEER_NAME
:BGP 對等點的名稱INTERFACE_NAME
:BGP 對等工作階段的介面名稱IP_ADDRESS
:Cloud Router 上的 IP 位址PEER_IP_ADDRESS
:對等 Router 的 IP 位址PEER_ASN
:這個 BGP 對等點的 BGP 自治系統編號 (ASN)前往 Google Cloud 控制台的「Cloud Routers」頁面。
在「名稱」欄位中,按一下適當的 Cloud Router 名稱。
在「路由器詳細資料」頁面中,找出「MD5 驗證」欄。對於每個工作階段,這個欄中的值會指出是否已啟用 MD5 驗證。
ROUTER_NAME
:Cloud Router 的名稱PROJECT
:專案名稱REGION
: Google Cloud 區域md5AuthEnabled
:布林值欄位,指出是否已為工作階段啟用 MD5 驗證statusReason
:用於說明工作階段狀態的欄位PROJECT_ID
:包含 Cloud Router 的專案REGION
:Cloud Router 所在的區域ROUTER_NAME
:Cloud Router 的名稱md5AuthEnabled
:布林值欄位,表示是否已為工作階段啟用 MD5 驗證statusReason
:描述工作階段狀態的欄位。只有在 MD5 驗證發生問題時,系統才會顯示這個欄位。(在這種情況下,欄位的值為MD5_AUTH_INTERNAL_PROBLEM
)。前往 Google Cloud 控制台的「Cloud Routers」頁面。
在「名稱」欄位中,按一下適當的 Cloud Router 名稱。
在「路由器詳細資料」頁面中,按一下要修改的 BGP 工作階段名稱。
在「BGP 工作階段詳細資料」頁面中,按一下
「編輯」。針對「MD5 驗證」,按一下「已停用」。
按一下 [儲存]。系統隨即會顯示「Disable MD5 Authentication key」對話方塊。
在確認對話方塊中,按一下「確認」。
ROUTER_NAME
:Cloud Router 的名稱PEER_NAME
:BGP 對等點的名稱REGION
: Google Cloud 區域- 更新
md5AuthenticationKeys
陣列 - 從相關的
bgpPeers
項目中移除md5AuthenticationKey
值 PROJECT_ID
:包含 Cloud Router 的專案REGION
: Google Cloud Cloud Router 所在的地區ROUTER_NAME
:Cloud Router 的名稱NAME_OF_UPDATED_PEER
:要修改的對等連線工作階段名稱INTERFACE_NAME_FOR_UPDATED_PEER
:您要修改的 BGP 對等互連介面名稱IP_ADDRESS_FOR_UPDATED_PEER
:Cloud Router 中的 IP 位址,由您要修改的對等端使用PEER_IP_ADDRESS_FOR_UPDATED_PEER
:要修改的對等連線工作階段對等路由器的 IP 位址PEER_ASN
:您要修改的 BGP 對等端的 BGP 自治系統編號 (ASN)NAME_OF_UNCHANGED_PEER
:要保留原狀的對等連線工作階段名稱INTERFACE_NAME_FOR_UNCHANGED_PEER
:您要保留原狀的 BGP 對等互連介面名稱IP_ADDRESS_FOR_UNCHANGED_PEER
:Cloud Router 上的 IP 位址,由您要保留的對等端使用PEER_IP_ADDRESS_FOR_UNCHANGED_PEER
:您要保留原狀的對等連線工作階段對等路由器的 IP 位址PEER_ASN_FOR_UNCHANGED_PEER
:您要保留不變的 BGP 對等點的 BGP 自治系統編號 (ASN)KEY_NAME_FOR_UNCHANGED_PEER
:要保留原狀的 BGP 同級節點的 MD5 驗證金鑰名稱前往 Google Cloud 控制台的「Cloud Routers」頁面。
- 選取要移除 BGP 工作階段的路由器。
- 針對「BGP 工作階段」,選取要移除的 BGP 工作階段。
- 按一下頁面頂端的「刪除」圖示 ,然後確認刪除。
PROJECT_ID
:包含 Cloud Router 的專案REGION
: Google Cloud 區域ROUTER_NAME
:Cloud Router 的名稱KEY_NAME_FOR_RETAINED_PEER
:您要保留的對等端使用的鍵名稱NAME_OF_RETAINED_PEER
:您要保留的 BGP 對等端名稱INTERFACE_FOR_RETAINED_PEER
:您要保留的 BGP 對等互連介面名稱IP_ADDRESS_FOR_RETAINED_PEER
:Cloud Router 上要保留的對等端 IP 位址PEER_IP_ADDRESS_FOR_RETAINED_PEER
:您要保留的對等端 IP 位址PEER_ASN_FOR_RETAINED_PEER
:您要保留的對等端的 BGP 自治系統編號 (ASN)KEY_NAME_FOR_RETAINED_PEER
:您保留的 BGP 對等互連 MD5 驗證金鑰名稱
建立使用驗證的工作階段
對於某些網路連線產品,您可以在建立資源時,設定 BGP 同級節點使用 MD5 驗證。這些產品包括高可用性 VPN 和專屬互連網路。
如需更多資訊,請參閱下列各節:
如果您要建立第 2 層合作夥伴互連網路 VLAN 連結,請先建立連結,然後更新 BGP 對等點,以便新增 MD5 驗證。如要瞭解如何在更新 BGP 工作階段時新增驗證,請參閱下一個章節。如果您使用的是第 3 層連線,請洽詢服務供應商取得操作說明。
在現有工作階段中新增驗證
如要在現有 BGP 對等端新增驗證機制,請使用下列任一程序。新增驗證時,請確認您使用的金鑰與對等路由器使用的金鑰相同。
Google Cloud 不會顯示 MD5 驗證金鑰,且僅在設定成功時顯示金鑰名稱。
主控台
gcloud
如要使用 gcloud CLI 更新工作階段,請使用 gcloud compute routers update-bgp-peer
指令:
gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --region=REGION \ --md5-authentication-key=SECRET_KEY
替換下列值:
API
如要使用 API 更新工作階段,請使用 compute.routers.patch
方法。使用此方法為工作階段新增驗證時,要求必須執行兩項操作:
修補 md5AuthenticationKeys
陣列時,您必須提供陣列中每個項目的 name
(除非您要移除某些項目)。不過,您不必為每個項目的 key
欄位提供值。如果省略這個值,Cloud Router 會保留先前使用的值。這項行為旨在保護金鑰的機密性。這與其他修補方法不同,後者通常會要求您為陣列項目的每個欄位指定值。
修補 bgpPeers
陣列時,您必須為每個項目的每個欄位提供值 (除非您想移除某些同儕或某些值)。
舉例來說,假設 Cloud Router 有兩個對等端,其中一個使用 MD5 驗證,另一個則不使用。如果您想讓第一個對等端保持不變,但在第二個對等端新增 MD5 驗證,請使用以下類似的請求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "md5AuthenticationKeys": [ { "name": "KEY_NAME_1", }, { "name": "KEY_NAME_2", "key": "SECRET_KEY" } ], "bgpPeers": [ { "name": "PEER_NAME_1", "md5AuthenticationKeyName": "KEY_NAME_1", "interfaceName": "INTERFACE_NAME_1", "ipAddress": "IP_ADDRESS_1", "peerIpAddress": "PEER_IP_ADDRESS_1", "peerAsn": "PEER_ASN_1" }, { "name": "PEER_NAME_2", "md5AuthenticationKeyName": "KEY_NAME_2", "interfaceName": "INTERFACE_NAME_2", "ipAddress": "IP_ADDRESS_2", "peerIpAddress": "PEER_IP_ADDRESS_2", "peerAsn": "PEER_ASN_2" } ], }
替換下列值:
更新驗證金鑰
如要變更 Cloud Router 用於對等互連工作階段的金鑰,請使用下列任一程序。更新 Cloud Router 上的金鑰時,請確認您使用的金鑰與對等路由器使用的金鑰相同。
Google Cloud 不會顯示 MD5 驗證金鑰,且僅在設定成功時顯示金鑰名稱。
主控台
gcloud
如要更新工作階段,請使用 gcloud compute routers update-bgp-peer
指令。
gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --region=REGION \ --md5-authentication-key=SECRET_KEY
替換下列值:
API
如要更新工作階段,請使用 compute.routers.patch
方法。例如,使用以下要求。
這個範例會取代整個同行陣列,而非只取代已識別的特定同行。也就是說,它會移除 PEER_NAME
以外的所有同儕。它會移除 KEY_NAME
以外的所有金鑰,並使用新值 UPDATED_SECRET_KEY
更新 KEY_NAME
。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "md5AuthenticationKeys": [ { "name": "KEY_NAME", "key": "UPDATED_SECRET_KEY" } ], "bgpPeers": [ { "name": "PEER_NAME", "md5AuthenticationKeyName": "KEY_NAME", "interfaceName": "INTERFACE_NAME", "ipAddress": "IP_ADDRESS", "peerIpAddress": "PEER_IP_ADDRESS", "peerAsn": "PEER_ASN" } ], }
替換下列值:
檢查驗證狀態
請按照下列步驟查看 MD5 驗證狀態。另請參閱「查看 Cloud Router 詳細資料」。
主控台
gcloud
如要使用 gcloud CLI 檢查工作階段,請使用 gcloud compute routers get-status
指令。
gcloud compute routers get-status ROUTER_NAME \ --project=PROJECT \ --region=REGION \
替換下列值:
輸出內容包含 result.bgpPeerStatus[]
物件,其中包含 Cloud Router 的 BGP 工作階段相關資訊。每個工作階段的資料包含下列兩個欄位:
API
請使用 routers.getRouterStatus
方法:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/getRouterStatus
更改下列內容:
輸出結果包含每個 BGP 工作階段的資訊。每個工作階段的資料包含下列兩個欄位:
如要設定持續監控 BGP 工作階段,請使用 Cloud Logging。記錄會記錄 BGP 事件中的 MD5 驗證狀態資訊,這部分屬於資訊記錄。
從工作階段中移除驗證
如要從 BGP 工作階段移除 MD5 驗證,您必須從 Cloud Router 和對等路由器中移除 MD5 驗證。
如要從 Cloud Router 的 BGP 工作階段中移除 MD5 驗證,請使用下列任一程序。
主控台
gcloud
如要移除 MD5 驗證,請使用 gcloud compute routers update-bgp-peer
指令:
gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --region=REGION \ --clear-md5-authentication-key
替換下列值:
API
如要移除 MD5 驗證,請使用 compute.routers.patch
方法。
使用 API 移除驗證機制時,更新必須執行兩項操作:
舉例來說,如果 Cloud Router 有兩個 BGP 對等點,而您想從其中一個對等點移除 MD5 驗證,在這種情況下,請使用類似下方的請求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "md5AuthenticationKeys": [ "name": "KEY_NAME_FOR_UNCHANGED_PEER", ], "bgpPeers": [ { "name": "NAME_OF_UPDATED_PEER", "interfaceName": "INTERFACE_NAME_FOR_UPDATED_PEER", "ipAddress": "IP_ADDRESS_FOR_UPDATED_PEER", "peerIpAddress": "PEER_IP_ADDRESS_FOR_UPDATED_PEER", "peerAsn": "PEER_ASN_FOR_UPDATED_PEER" }, { "name": "NAME_OF_UNCHANGED_PEER", "interfaceName": "INTERFACE_NAME_FOR_UNCHANGED_PEER", "ipAddress": "IP_ADDRESS_FOR_UNCHANGED_PEER", "peerIpAddress": "PEER_IP_ADDRESS_FOR_UNCHANGED_PEER", "peerAsn": "PEER_ASN_FOR_UNCHANGED_PEER" "md5AuthenticationKeyName": "KEY_NAME_FOR_UNCHANGED_PEER" } ], ], }
替換下列值:
移除使用驗證機制的會話
如要移除使用 MD5 驗證的對等連線工作階段,請使用下列任一程序。
主控台
gcloud
如要移除啟用 MD5 驗證功能的 BGP 工作階段,請使用 gcloud compute routers remove-bgp-peer
指令。
詳情請參閱「停用或移除 BGP 工作階段」。
API
如要移除啟用 MD5 驗證的 BGP 工作階段,請使用 compute.routers.patch
方法。
使用 API 移除採用 MD5 驗證的 BGP 工作階段時,更新必須執行兩項操作:從 md5AuthenticationKeys
陣列中移除金鑰,並移除 bgpPeer
本身。
舉例來說,假設 Cloud Router 有兩個對等端,而您想要移除其中一個。在這種情況下,請使用類似下方的請求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "md5AuthenticationKeys": [ "name": "KEY_NAME_FOR_RETAINED_PEER", ], "bgpPeers": [ { "name": "NAME_OF_RETAINED_PEER", "interfaceName": "INTERFACE_FOR_RETAINED_PEER", "ipAddress": "IP_ADDRESS_FOR_RETAINED_PEER", "peerIpAddress": "PEER_IP_ADDRESS_FOR_RETAINED_PEER", "peerAsn": "PEER_ASN_FOR_RETAINED_PEER", "md5AuthenticationKeyName": "KEY_NAME_FOR_RETAINED_PEER" } ], }
替換下列值:
舉例來說,假設您建立了下列對等端:
PATCH https://compute.googleapis.com/compute/v1/projects/project_id/regions/region_name/routers/cloud_router_name { "md5AuthenticationKeys": [ { "name": "first_key_name", "key": "first_secret_key_value" }, { "name": "second_key_name", "key": "second_secret_key_value" } ], "bgpPeers": [ { "name": "first_peer", "md5AuthenticationKeyName": "first_key_name", "interfaceName": "first_interface", "ipAddress": "first_address", "peerIpAddress": "first_peer_interface", "peerAsn": "first_peer_asn" }, { "name": "second_peer", "md5AuthenticationKeyName": "second_key_name", "interfaceName": "second_interface", "ipAddress": "second_address", "peerIpAddress": "second_peer_interface", "peerAsn": "second_peer_asn" } ], }
如果您想移除第二個對等端,請使用類似以下的請求:
PATCH https://compute.googleapis.com/compute/v1/projects/project_id/regions/region_name/routers/cloud_router_name { "md5AuthenticationKeys": [ { "name": "first_key_name", } ], "bgpPeers": [ { "name": "first_peer", "md5AuthenticationKeyName": "first_key_name", "interfaceName": "first_interface", "ipAddress": "first_address", "peerIpAddress": "first_peer_interface", "peerAsn": "first_peer_asn" } ], }