使用 MD5 身份验证
Cloud Router 路由器使用边界网关协议 (BGP) 在 Virtual Private Cloud (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 身份验证。您还可以向现有会话添加身份验证、更改会话使用的密钥,或者移除身份验证。
准备工作
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Install the Google Cloud CLI.
-
配置 gcloud CLI 以使用您的联合身份。
如需了解详情,请参阅使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init- 如果您使用的是 Google Cloud CLI,请运行以下命令来设置项目 ID。此页面上的
gcloud说明假定您已设置项目 ID。gcloud config set project PROJECT_ID
-
运行以下命令,确认已设置该 ID:
gcloud config list --format='text(core.project)'
创建使用身份验证的会话
对于某些网络连接产品,您可以在创建资源时配置 BGP 对等端以使用 MD5 身份验证。这些产品包括高可用性 VPN 和专用互连。
如需了解详情,请参阅以下部分:
如果要创建第 2 层合作伙伴互连 VLAN 连接,请先创建连接,然后更新 BGP 对等端以添加 MD5 身份验证。如需了解如何在更新 BGP 会话时添加身份验证,请参阅以下部分。如果您有第 3 层连接,请联系您的服务提供商以了解相关说明。
向现有会话添加身份验证
如需向现有 BGP 对等端添加身份验证,请执行以下步骤之一。添加身份验证时,请确保您使用的密钥与对等路由器使用的密钥相同。
Cloud de Confiance 不显示 MD5 身份验证密钥,并且仅在成功配置后显示密钥名称。
- 如果您通过 gcloud 或界面配置 MD5 身份验证, Cloud de Confiance会自动生成
PEER_NAME-key形式的密钥名称。 - 如果您通过 API 配置 MD5 身份验证,则可以指定密钥名称。
控制台
在 Cloud de Confiance 控制台中,前往 Cloud Router 页面。
在名称字段中,点击相应 Cloud Router 路由器的名称。
在路由器详情页面上,点击要修改的 BGP 会话的名称。
在 BGP 会话详情页面中,点击 修改。
如需添加 MD5 身份验证,请执行以下操作:
- 在 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替换以下值:
ROUTER_NAME:Cloud Router 路由器的名称PEER_NAME:BGP 对等端的名称REGION: Cloud de Confiance 区域SECRET_KEY:您的密文共享 MD5 身份验证密钥
API
要使用 API 更新会话,请使用
compute.routers.patch方法。使用此方法向会话添加身份验证时,您的请求必须执行以下两项操作:- 在
md5AuthenticationKeys数组中为键添加一个条目。添加条目时,请同时提供键的名称和值。 - 更新
bgpPeers数组以包含md5AuthenticationKeyName字段的值。此字段按名称引用密钥。
修补
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" } ], }替换以下值:
PROJECT_ID:Cloud Router 路由器所属的项目REGION: Cloud de Confiance 区域ROUTER_NAME:Cloud Router 路由器的名称KEY_NAME_1:当前正在使用的密钥的名称(按PEER_NAME_1)KEY_NAME_2:您要为PEER_NAME_2添加的新密钥的名称。记下名称。如果您想稍后使用 API 进行更改,则需要该名称。SECRET_KEY:您为PEER_NAME_2添加的 Secret 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:对等路由器的 IP 地址PEER_ASN_2:此 BGP 对等体的 BGP 自治系统编号 (ASN)
更新身份验证密钥
如需更改 Cloud Router 路由器用于对等互连会话的密钥,请执行以下步骤之一。在 Cloud Router 路由器上更新密钥时,请确保您使用的密钥与对等路由器使用的密钥相同。
Cloud de Confiance 不显示 MD5 身份验证密钥,并且仅在成功配置后显示密钥名称。
- 如果您通过 gcloud 或界面配置 MD5 身份验证, Cloud de Confiance会自动生成
PEER_NAME-key形式的密钥名称。 - 如果您通过 API 配置 MD5 身份验证,则可以指定密钥名称。
控制台
在 Cloud de Confiance 控制台中,前往 Cloud Router 页面。
在名称字段中,点击相应 Cloud Router 路由器的名称。
在路由器详情页面上,点击要修改的 BGP 会话的名称。
在 BGP 会话详情页面中,点击 修改。
在 MD5 身份验证部分中,点击更新 MD5 身份验证密钥。
在 MD5 身份验证密钥字段中,输入新的 Secret 身份验证密钥,或点击生成并复制以填充该字段。
记下密钥。离开此页面后,您将无法检索密钥。
点击保存。
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替换以下值:
ROUTER_NAME:Cloud Router 路由器的名称PEER_NAME:BGP 对等端的名称REGION: Cloud de Confiance 区域SECRET_KEY:您要使用的新 Secret MD5 身份验证密钥
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" } ], }替换以下值:
PROJECT_ID:Cloud Router 路由器所属的项目REGION: Cloud de Confiance 区域ROUTER_NAME:Cloud Router 路由器的名称KEY_NAME:您要更新的密钥的名称;每当您使用 API 来处理 MD5 身份验证时,都必须按名称引用密钥UPDATED_SECRET_KEY:您的新 Secret MD5 身份验证密钥PEER_NAME:BGP 对等端的名称INTERFACE_NAME:BGP 对等互连会话的接口名称IP_ADDRESS:Cloud Router 路由器上的 IP 地址PEER_IP_ADDRESS:对等路由器的 IP 地址PEER_ASN:此 BGP 对等体的 BGP 自治系统编号 (ASN)
检查身份验证状态
请按照以下步骤检查 MD5 身份验证的状态。另请参阅查看 Cloud Router 路由器详细信息。
控制台
在 Cloud de Confiance 控制台中,前往 Cloud Router 页面。
在名称字段中,点击相应 Cloud Router 路由器的名称。
在路由器详情页面上,查找 MD5 身份验证列。对于每个会话,此列中的值表示是否已启用 MD5 身份验证。
gcloud
如需使用 gcloud CLI 检查会话,请使用
gcloud compute routers get-status命令。gcloud compute routers get-status ROUTER_NAME \ --project=PROJECT \ --region=REGION \替换以下值:
ROUTER_NAME:Cloud Router 路由器的名称PROJECT:项目的名称REGION: Cloud de Confiance 区域
输出包括
result.bgpPeerStatus[]对象,其中包含有关 Cloud Router 路由器的 BGP 会话的信息。每个会话的相关数据包括以下两个字段:md5AuthEnabled- 一个布尔值字段,指示是否已为会话启用 MD5 身份验证statusReason- 描述会话状态的字段
API
使用
routers.getRouterStatus方法:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/getRouterStatus
请替换以下内容:
PROJECT_ID:Cloud Router 路由器所属的项目REGION:Cloud Router 路由器所在的区域ROUTER_NAME:Cloud Router 路由器的名称
输出包括每个 BGP 会话的相关信息。每个会话的相关数据包括以下两个字段:
md5AuthEnabled:一个布尔值字段,指示是否已为会话启用 MD5 身份验证statusReason:描述会话状态的字段。此字段仅在 MD5 身份验证出现问题时才显示。(在这种情况下,字段的值为MD5_AUTH_INTERNAL_PROBLEM。)
如需设置 BGP 会话的持续监控,请使用 Cloud Logging。Logging 记录 BGP 事件中 MD5 身份验证状态的相关信息,该事件是信息日志的一部分。
从会话中移除身份验证
如果要从 BGP 会话中移除 MD5 身份验证,则必须从 Cloud Router 路由器和对等路由器中移除 MD5 身份验证。
如需从 Cloud Router 路由器的 BGP 会话中移除 MD5 身份验证,请执行以下步骤之一。
控制台
在 Cloud de Confiance 控制台中,前往 Cloud Router 页面。
在名称字段中,点击相应 Cloud Router 路由器的名称。
在路由器详情页面上,点击要修改的 BGP 会话的名称。
在 BGP 会话详情页面中,点击 修改。
对于 MD5 身份验证,点击停用。
点击保存。系统会显示停用 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替换以下值:
ROUTER_NAME:Cloud Router 路由器的名称PEER_NAME:BGP 对等端的名称REGION: Cloud de Confiance 区域
API
如需移除 MD5 身份验证,请使用
compute.routers.patch方法。使用 API 移除身份验证时,您的更新必须执行以下两项操作:
- 更新
md5AuthenticationKeys数组 - 从相关的
bgpPeers条目中移除md5AuthenticationKey值
比方说,如果您的 Cloud Router 路由器有两个对等 BGP,并且您想要从其中一个 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" } ], ], }替换以下值:
PROJECT_ID:Cloud Router 路由器所属的项目REGION:Cloud Router 路由器所在的 Cloud de Confiance 区域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 身份验证密钥的名称
移除使用身份验证的会话
要移除使用 MD5 身份验证的对等互连会话,请执行以下步骤之一。
控制台
在 Cloud de Confiance 控制台中,前往 Cloud Router 页面。
- 选择要从中移除 BGP 会话的路由器。
- 对于 BGP 会话,选择要移除的 BGP 会话。
- 在页面顶部,点击 删除,然后确认删除。
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" } ], }替换以下值:
PROJECT_ID:Cloud Router 路由器所属的项目REGION: Cloud de Confiance 区域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 身份验证密钥的名称
例如,假设您创建了以下对等端:
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" } ], }后续步骤
- 如果您使用的是 Google Cloud CLI,请运行以下命令来设置项目 ID。此页面上的