本页面介绍如何使用两个高可用性 VPN 网关连接 Google Cloud 中的两个虚拟私有云 (VPC) 网络。只要两个 VPC 网络中的主要和次要子网 IPv4 或 IPv6 地址范围不重叠,您就可以将它们连接在一起。
如需详细了解 Cloud VPN,请参阅以下资源:
如需查看此拓扑图,请参阅 Google Cloud 网络之间的高可用性 VPN。
如需自动执行此设置,请参阅高可用性 VPN 网关的 Terraform 示例。
如需了解在设置 Cloud VPN 之前需要考虑的最佳实践,请参阅最佳实践。
如需详细了解 Cloud VPN,请参阅 Cloud VPN 概览。
如需了解本页面中所用术语的定义,请参阅关键术语。
使用要求
如需实现 99.99% 的服务等级协议 (SLA) 目标,请在创建此配置时确保满足以下要求:
- 在每个 VPC 网络中设置一个高可用性 VPN 网关。
- 在同一个 Google Cloud 区域中设置两个高可用性 VPN 网关。
- 在每个网关的每个接口上配置隧道。
- 匹配网关接口,如下所示:
- 第一个网关的
interface 0
上的隧道必须连接到第二个网关上的interface 0
。 - 第一个网关的
interface 1
上的隧道必须连接到第二个网关上的interface 1
。
- 第一个网关的
虽然可以使用高可用性 VPN 网关之间的单个隧道或使用传统 VPN 网关将两个 VPC 网络相连,但这种类型的配置不具备高可用性,且不满足高可用性服务等级协议 (SLA) 承诺的 99.99% 可用性。
Cloud Router 路由器建议
配置新的高可用性 VPN 网关时,您可以创建新的 Cloud Router 路由器,也可以将现有 Cloud Router 路由器与现有 Cloud VPN 隧道或 VLAN 连接搭配使用。但是,由于连接的特定 ASN 要求,您使用的 Cloud Router 路由器必须尚未管理与合作伙伴互连连接关联的 VLAN 连接的 BGP 会话。
管理权限
高可用性 VPN 网关并不总会属于您或您的 Google Cloud 组织。在创建高可用性 VPN 网关或连接到其他人所拥有的网关时,请考虑以下要求:
- 如果您拥有在其中创建高可用性 VPN 网关的项目,请为其配置建议的权限。
- 如果您要连接到非您所拥有的 Google Cloud 组织或项目中的高可用性 VPN 网关,请向所有者请求
compute.vpnGateways.use
权限。
准备工作
查看 Google Cloud 中动态路由的工作原理。
确保您的对等 VPN 网关支持边界网关协议 (BGP)。
在 Google Cloud 中设置以下各项,以更轻松地配置 Cloud VPN:
- 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.
-
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.
-
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)'
创建自定义 VPC 网络和子网
本文档中介绍的流程使用两个不同的 VPC 网络。每个 VPC 网络至少有两个子网,并且这些子网位于不同区域。
创建高可用性 VPN 网关和高可用性 VPN 隧道之前,请创建两个 VPC 网络。
每个 VPC 网络必须在您创建高可用性 VPN 网关的区域中至少有一个子网。
- 如需创建自定义模式 VPC 网络(推荐),请参阅创建自定义模式 VPC 网络。
- 如需创建子网,请参阅使用子网。
如需在高可用性 VPN 隧道中启用 IPv6 流量,您必须在创建 VPC 网络时启用 IPv6 内部地址的分配。
此外,请将子网配置为使用 IPv6 内部地址。
您还必须在子网中的虚拟机上配置 IPv6:
- 如需创建具有内部 IPv6 地址的自定义模式 VPC 网络,请参阅创建至少具有一个双栈子网的自定义模式 VPC 网络。
- 如需创建启用 IPv6 的子网,请参阅添加双栈子网。
如需在现有子网中启用 IPv6,请参阅将 IPv4 子网转换为双栈子网。
如需创建启用 IPv6 的虚拟机,请参阅为实例和实例模板配置 IPv6。
VPC 子网必须配置为使用内部 IPv6 地址。使用 gcloud CLI 时,您可以使用 --ipv6-access-type=INTERNAL
标志配置子网。Cloud Router 路由器不会动态通告配置为使用外部 IPv6 地址 (--ipv6-access-type=EXTERNAL
) 的子网的路由。
如需了解如何在 VPC 网络和子网中使用内部 IPv6 地址范围,请参阅内部 IPv6 规范。
本文档中的示例还使用了 VPC 全球动态路由模式,该模式的行为如下:
- Cloud Router 路由器的所有实例会将其获知的
to on-premises
路由应用于 VPC 网络的所有子网。 - 指向 VPC 网络中所有子网的路由会与本地路由器共享。
创建两个相互连接且经过全面配置的高可用性 VPN 网关
按照本部分中的说明创建高可用性 VPN 网关、对等 VPN 网关资源、隧道和 BGP 会话。
创建高可用性 VPN 网关
控制台
VPN 设置向导包括创建高可用性 VPN 网关、对等 VPN 网关资源、隧道和 BGP 会话所需的所有配置步骤。
如要创建第一个高可用性 VPN 网关,请按以下步骤操作:
在 Google Cloud 控制台中,转到 VPN 页面。
如果您是首次创建网关,请点击创建 VPN 连接。
选择 VPN 设置向导。
如果您已有高可用性 VPN 网关,请选择该网关的选项按钮。
点击继续。
指定 VPN 网关名称。
在 VPC 网络下,选择现有网络或默认网络。
选择区域。
为网关选择栈类型:IPv4(单栈)或 IPv4 和 IPv6(双栈)。
点击创建并继续。
控制台页面会刷新,刷新后会显示您的网关信息。系统会自动为每个网关接口分配两个外部 IPv4 地址。请记下您网关配置的详细信息,以供后续配置步骤使用。
如需创建第二个高可用性 VPN 网关,请在新浏览器标签页中重复上述步骤。确保指定与第一个高可用性 VPN 网关相同的高可用性 VPN 隧道堆栈类型。
gcloud
根据您计划通过隧道支持的工作负载,您可以在创建网关时按如下方式选择堆栈类型:
- 如需仅支持 IPv4 工作负载,请创建使用
IPV4_ONLY
堆栈类型的高可用性 VPN 网关。 - 如需同时支持 IPv4 和 IPv6 工作负载,请创建使用
IPV4_IPV6
堆栈类型的高可用性 VPN 网关。 - 如需仅支持 IPv6 工作负载,请创建使用
IPV6_ONLY
堆栈类型的高可用性 VPN 网关。
如需创建两个高可用性 VPN 网关,请完成以下命令序列:
在
REGION
的每个网络中创建一个高可用性 VPN 网关。每个网关创建后,系统会自动分配两个外部 IPv4 地址,每个地址对应一个网关接口。记下这些 IP 地址,以便稍后在配置步骤中使用
在以下命令中,替换以下选项:
GW_NAME_1
和GW_NAME_2
:每个网关的名称NETWORK
:Google Cloud 网络的名称REGION
:您需要在其中创建网关和隧道的 Google Cloud 区域IP_STACK
(可选):要使用的 IP 栈。指定IPV4_ONLY
、IPV4_IPV6
或IPV6_ONLY
。如果未指定此标志,则堆栈类型默认为IPV4_IPV6
。
创建第一个网关
对于具有 IPv4 接口的网关:
gcloud compute vpn-gateways create GW_NAME_1 \ --network=NETWORK_1 \ --region=REGION \ --stack-type=IP_STACK
您创建的网关类似于以下示例输出。系统已自动为每个网关接口分配了一个外部 IPv4 地址:
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a]. NAME INTERFACE0 INTERFACE1 NETWORK REGION ha-vpn-gw-a 203.0.113.16 203.0.113.23 network-a us-central1
创建第二个网关
gcloud compute vpn-gateways create GW_NAME_2 \ --network=NETWORK_2 \ --region=REGION \ --stack-type=IP_STACK
如果您为第一个网关指定了堆栈类型,请将相同的堆栈类型用于第二个网关。
您创建的网关类似于以下示例输出:
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-east1/vpnGateways/ha-vpn-gw-b]. NAME INTERFACE0 INTERFACE1 NETWORK REGION ha-vpn-gw-b 203.0.114.18 203.0.114.25 network-b us-east1
对于具有 IPv6 接口的网关:
gcloud compute vpn-gateways create GW_NAME_1 \ --network=NETWORK_1 \ --region=REGION \ --gateway-ip-version=IPV6 \ --stack-type=IP_STACK
系统会自动为每个网关接口分配一个外部 IPv6 地址。
API
如要创建 BGP 会话,请按照以下步骤操作:
如需为高可用性 VPN 网关创建完整配置,请使用以下部分中的 API 命令。这些部分使用的所有字段值均为示例值。
对于具有 IPv4 接口的网关:
通过向
vpnGateways.insert
方法发出POST
请求,创建第一个高可用性 VPN 网关。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways { "name": "ha-vpn-gw-a", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a", "stackType": "IPV4_IPV6" }
stackType
字段为可选字段。有效值为IPV4_IPV6
或IPV4_ONLY
。如果未指定stackType
,则默认为IPV4_ONLY
。重复该命令以创建第二个高可用性 VPN 网关,并指定适当的
project
、name
、network
和region
。如果您为第一个网关指定了
stackType
,请将相同的堆栈类型用于第二个网关:IPV4_ONLY
或IPV4_IPV6
。
对于具有 IPv6 接口的网关:
通过向
vpnGateways.insert
方法发出POST
请求,创建第一个高可用性 VPN 网关。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/vpnGateways { "name": "ha-vpn-gw-a", "network": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/networks/network-a", "gatewayIpVersion": "IPV6", "stackType": "IPV6_ONLY" }
为高可用性 VPN 网关分配外部 IPv6 地址时,必须将
IPV6
指定为gatewayIpVersion
值。stackType
字段为可选字段。如果未指定
stackType
,则默认值为IPV4_IPV6
。对于
gatewayIpVersion
为IPV6
的网关,唯一有效的stackType
值是IPV4_IPV6
或IPV6_ONLY
。
重复该命令以创建第二个高可用性 VPN 网关,并指定适当的
project
、name
、network
和region
。为高可用性 VPN 网关分配外部 IPv6 地址时,必须将
IPV6
指定为gatewayIpVersion
值。stackType
字段为可选字段。如果您为第一个网关指定了
stackType
,请将相同的堆栈类型用于第二个网关:IPV6_ONLY
或IPV4_IPV6
。
指定对等 VPN 网关资源
在此设置中,对等 VPN 网关资源是第二个高可用性 VPN,即新的 VPN 隧道连接的端点。
如果您要连接两个 VPC 网络,则第二个 VPC 网络可以存在于同一个 Google Cloud 项目中,也可以存在于单独的 Google Cloud 项目中。
控制台
如需指定对等高可用性 VPN 网关资源,请按照以下步骤操作:
- 在创建 VPN 页面的对等 VPN 网关部分,选择 Google Cloud VPN 网关。
- 在项目字段中,选择包含新网关的 Google Cloud 项目。
- 在 VPN 网关名称字段中,选择您在创建高可用性 VPN 网关中创建的第二个高可用性 VPN。
- 继续创建 VPN 隧道。
gcloud
您在创建高可用性 VPN 网关步骤创建第二个高可用性 VPN 网关时,创建了对等 VPN 网关资源。
创建高可用性 VPN 隧道时,您可以将此高可用性 VPN 网关指定为对等 VPN 网关资源。
API
您在创建高可用性 VPN 网关步骤创建第二个高可用性 VPN 网关时,创建了对等 VPN 网关资源。
创建高可用性 VPN 隧道时,您可以将此高可用性 VPN 网关指定为对等 VPN 网关资源。
创建 Cloud Router 路由器
控制台
在 Cloud Router 路由器下,创建指定以下选项的 Cloud Router(如果尚未创建)。如果 Cloud Router 路由器尚未管理与“合作伙伴互连”连接关联的 VLAN 连接的 BGP 会话,则可以使用现有的 Cloud Router 路由器。
要创建新的 Cloud Router 路由器,请指定以下内容:
- 名称
- 可选的说明
- 新路由器的 Google ASN
您可以使用未在网络中其他位置使用的任何专用 ASN(
64512
至65534
、4200000000
至4294967294
)。Google ASN 用于同一个 Cloud Router 路由器上的所有 BGP 会话,且以后不能更改 ASN。如需创建新路由器,请点击创建。
gcloud
以下说明假定您尚未创建用于管理高可用性 VPN 隧道的 BGP 会话的 Cloud Router 路由器。您可以在每个 VPC 网络中使用现有的 Cloud Router 路由器,除非这些路由器已经为与合作伙伴互连连接关联的 VLAN 连接管理 BGP 会话。
如需创建两个 Cloud Router 路由器,请完成以下命令序列:
在
REGION
的每个网络中创建一个 Cloud Router 路由器。在以下命令中,替换以下选项:
PEER_ASN_1
和PEER_ASN_2
:您尚未使用的任何专用 ASN(64512
到65534
、4200000000
到4294967294
)。对于ROUTER_NAME_1
的两个接口,此示例使用 ASN65001
,对于ROUTER_NAME_2
的两个接口,此示例使用 ASN65002
。- 将所有其他选项替换为您之前使用的值。
创建第一个路由器
gcloud compute routers create ROUTER_NAME_1 \ --region=REGION \ --network=NETWORK_1 \ --asn=PEER_ASN_1
您创建的路由器类似于以下示例输出:
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a]. NAME REGION NETWORK router-a us-central1 network-a
创建第二个路由器
gcloud compute routers create ROUTER_NAME_2 \ --region=REGION \ --network=NETWORK_2 \ --asn=PEER_ASN_2
您创建的路由器类似于以下示例输出:
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b]. NAME REGION NETWORK router-b us-central1 network-b
API
如果您已在每个高可用性 VPN 网关所在的每个 VPC 网络中创建了 Cloud Router 路由器,则可以使用这些 Cloud Router 路由器,无需新建。但是,如果 Cloud Router 路由器为与合作伙伴互连连接关联的 VLAN 连接管理 BGP 会话,则创建新的 Cloud Router 路由器。
如需创建 Cloud Router 路由器,请向 routers.insert
方法发出 POST
请求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers { "name": "router-a", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a" }
创建 VPN 隧道
控制台
如需创建 VPN 隧道,请按以下步骤操作:
在高可用性下,选择一对隧道或一个连接到其他高可用性 VPN 网关的隧道:
如果您选择创建一对 VPN 隧道(推荐),请配置创建 VPN 页面底部出现的两个隧道对话框。
如果您选择创建一个 VPN 隧道,您可以在创建 VPN 页面的其余部分配置单个隧道。但是,您必须创建第二个隧道,才能让另一个高可用性 VPN 网关获得服务等级协议 (SLA) 承诺的 99.99% 的可用性。稍后,您可以按照此过程的末尾所述添加第二个隧道。
在同一页面上或在页面底部的每个隧道对话框中,完成以下步骤。
如果您要配置一个隧道,请在关联的 Cloud VPN 网关接口下,针对此网关选择高可用性 VPN 接口和 IP 地址组合,以将其与其他高可用性 VPN 网关上的网关接口关联。对于双隧道配置,此选项和关联的对等 VPN 网关接口选项均不可用,因为已为您配置了正确的接口组合。
- 指定隧道的名称。
- 指定可选的说明。
- 指定 IKE 版本。我们建议使用 IKEv2。如需允许 IPv6 流量,您必须选择 IKEv2。
- 使用预共享密钥(共享密钥)指定 IKE 预共享密钥,该密钥必须与您在对等网关上创建的合作伙伴隧道的预共享密钥相对应。如果您尚未在对等 VPN 网关上配置预共享密钥并希望生成预共享密钥,请点击生成并复制。请确保将预共享密钥记录在安全位置,因为在创建 VPN 隧道后将无法检索该密钥。
- 点击完成。
- 在创建 VPN 页面上,为其余的隧道对话框重复隧道创建步骤。
配置完所有隧道后,点击创建并继续。
gcloud
如需在每个高可用性 VPN 网关上创建两个 VPN 隧道,请完成以下命令序列。
- 您从
GW_NAME_1
的interface 0
创建的隧道必须连接到与NETWORK_2
中GW_NAME_2
的interface 0
相关联的外部 IP 地址。 GW_NAME_1
的interface 1
中的隧道必须连接到与GW_NAME_2
的interface 1
关联的外部 IP 地址。在
NETWORK_1
中的GW_NAME_1
上创建 VPN 隧道时,请指定NETWORK_2
中GW_NAME_2
的信息。Google 会自动将interface 0
的GW_NAME_1
隧道与GW_NAME_2
中的interface 0
连接,并将GW_NAME_1
的interface 1
连接到GW_NAME_2
的interface 1
。在
GW_NAME_1
上创建两个隧道在
NETWORK_1
中GW_NAME_1
的两个接口上各创建一个 VPN 隧道。在以下命令中,替换以下选项:
TUNNEL_NAME_GW1_IF0
和TUNNEL_NAME_GW1_IF1
:源自GW_NAME_1
的每条隧道的名称;通过添加网关接口名称为隧道命名有助于以后识别隧道GW_NAME_2
:--peer-gcp-gateway
的值REGION
:GW_NAME_1
所在的区域- 可选:
--vpn-gateway-region
是运行高可用性 VPN 网关的区域。其值应与--region
相同。如果未指定,则系统会自动设置此选项。该选项会替换此命令调用中的默认区域属性值。 IKE_VERS
:2
表示 IKEv2;两个隧道都连接到另一个高可用性 VPN 网关,因此 Google 建议使用 IKEv2。如需允许 IPv6 流量,您必须使用 IKEv2。SHARED_SECRET
:您的预共享密钥(共享密钥),该密钥必须与您在interface 0
和interface 1
上通过GW_NAME_2
创建的相应隧道使用的预共享密钥相同;有关建议,请参阅生成强预共享密钥。INT_NUM_0
:GW_NAME_1
上第一个接口的编号0
INT_NUM_1
:GW_NAME_1
上第二个接口的编号1
- 如果
peer-gcp-gateway
位于与 VPN 隧道和本地 VPN 网关不同的项目中,则可以使用--peer-gcp-gateway
选项作为完整 URI 或相对名称来指定该项目。以下示例选项是相对名称:--peer-gcp-gateway projects/other-project/regions/us-central1/vpnGateways/ha-vpn-gw-b
在
GW_NAME_1
INT_NUM_0
上创建第一个隧道gcloud compute vpn-tunnels create TUNNEL_NAME_GW1_IF0 \ --peer-gcp-gateway=GW_NAME_2 \ --region=REGION \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --router=ROUTER_NAME_1 \ --vpn-gateway=GW_NAME_1 \ --interface=INT_NUM_0
在
GW_NAME_1
INT_NUM_1
上创建第二个隧道gcloud compute vpn-tunnels create TUNNEL_NAME_GW1_IF1 \ --peer-gcp-gateway=GW_NAME_2 \ --region=REGION \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --router=ROUTER_NAME_1 \ --vpn-gateway=GW_NAME_1 \ --interface=INT_NUM_1
命令输出如以下示例所示:
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0]. NAME REGION VPN_GATEWAY VPN_INTERFACE PEER_ADDRESS tunnel-a-to-b-if-0 us-central1 ha-vpn-gw-a 0 ha-vpn-gw-b Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1]. NAME REGION VPN_GATEWAY VPN_INTERFACE PEER_ADDRESS tunnel-a-to-b-if-1 us-central1 ha-vpn-gw-a 1 ha-vpn-gw-b
在
GW_NAME_2
上创建两个隧道在
NETWORK_2
中GW_NAME_2
的两个接口上各创建一个 VPN 隧道。- 您从
GW_NAME_2
的interface 0
创建的隧道必须连接到与NETWORK_1
中GW_NAME_1
的interface 0
相关联的外部 IP 地址。 GW_NAME_2
的interface 1
中的隧道必须连接到与GW_NAME_1
的interface 1
关联的外部 IP 地址。
在以下命令中,替换以下选项:
REGION
:GW_NAME_2
所在的区域- 可选:
--vpn-gateway-region
是运行 VPN 网关的区域。其值应与--region
相同。如果未指定,则系统会自动设置此选项。该选项会替换此命令调用中的默认区域属性值。 TUNNEL_NAME_GW2_IF0
和TUNNEL_NAME_GW2_IF1
:源自GW_NAME_2
的每条隧道的名称;通过添加网关接口名称为隧道命名有助于以后识别隧道GW_NAME_1
:--peer-gcp-gateway
的值IKE_VERS
:2
表示 IKEv2;这些隧道连接到上一步创建的两个隧道,因此它们必须使用相同的 IKE 版本(Google 建议使用 IKEv2)。如需允许 IPv6 流量,您必须使用 IKEv2。SHARED_SECRET
:您的预共享密钥(共享密钥),必须与您在GW_NAME_1
的每个接口上创建的合作伙伴隧道的预共享密钥相对应;如需查看建议,请参阅生成强预共享密钥GW_NAME_2
:您在网关配置步骤中配置的第二个网关的名称INT_NUM_0
:GW_NAME_2
上第一个接口的编号0
INT_NUM_1
:GW_NAME_2
上第二个接口的编号1
- 如果
peer-gcp-gateway
位于与 VPN 隧道和本地 VPN 网关不同的项目中,则可以使用--peer-gcp-gateway
选项作为完整 URI 或相对名称来指定该项目。以下示例选项是相对名称:--peer-gcp-gateway projects/other-project/regions/us-central1/vpnGateways/ha-vpn-gw-b
--peer-gcp-gateway-region
是 VPN 隧道所连接的对等端高可用性 VPN 网关所在的区域,必须与 VPN 隧道位于同一区域。如果未指定,则系统会自动设置区域。
在
GW_NAME_2
INT_NUM_0
上创建第一个隧道gcloud compute vpn-tunnels create TUNNEL_NAME_GW2_IF0 \ --peer-gcp-gateway=GW_NAME_1 \ --region=REGION \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --router=ROUTER_NAME_2 \ --vpn-gateway=GW_NAME_2 \ --interface=INT_NUM_0
在
GW_NAME_2
INT_NUM_1
上创建第二个隧道gcloud compute vpn-tunnels create TUNNEL_NAME_GW2_IF1 \ --peer-gcp-gateway=GW_NAME_1 \ --region=REGION \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --router=ROUTER_NAME_2 \ --vpn-gateway=GW_NAME_2 \ --interface=INT_NUM_1
命令输出如以下示例所示:
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0]. NAME REGION VPN_GATEWAY VPN_INTERFACE PEER_ADDRESS tunnel-b-to-a-if-0 us-central1 ha-vpn-gw-b 0 ha-vpn-gw-a Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1]. NAME REGION VPN_GATEWAY VPN_INTERFACE PEER_ADDRESS tunnel-b-to-a-if-1 us-central1 ha-vpn-gw-b 1 ha-vpn-gw-a
- 您从
完成此步骤后,请等待几分钟,然后检查每个 VPN 隧道的状态。
仅当对应的合作伙伴隧道同样可用且配置正确时,VPN 隧道的状态才会更改为
Established
。此外,还必须在它们之间协商有效的 IKE 和子安全关联 (SA)。例如,仅当
ha-vpn-gw-b
上的tunnel-b-to-a-if-0
已配置且可用时,才能在ha-vpn-gw-a
上建立tunnel-a-to-b-if-0
。
API
如需为高可用性 VPN 网关的两个接口各创建一个 VPN 隧道,请向 vpnTunnels.insert
方法发出 POST
请求。
如需创建第一个隧道,请运行以下命令:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels { "name": "ha-vpn-gw-a-tunnel-0", "ikeVersion": 2, "peerGcpGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/ha-vpn-gw-b", "router": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/router-a", "sharedSecret": "SECRET_1", "vpnGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/ha-vpn-gw-a", "vpnGatewayInterface": 0 }
如果您计划在与此隧道关联的 BGP 会话中启用 IPv6,则必须为
ikeVersion
指定2
。如需创建第二个隧道,请重复上述命令,但更改以下参数:
name
:例如,ha-vpn-gw-a-tunnel-1
sharedSecret
或sharedSecretHash
(如果需要)vpnGatewayInterface
:更改为其他高可用性 VPN 网关接口的值 - 在此示例中,请将此值更改为1
接下来,为连接到第一个高可用性 VPN 网关的第二个高可用性 VPN 网关创建两个隧道。
如需在第二个高可用性 VPN 网关上创建第一个隧道,请运行以下命令:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels { "name": "ha-vpn-gw-b-tunnel-0", "ikeVersion": 2, "peerGcpGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/ha-vpn-gw-a", "router": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/router-b", "sharedSecret": SECRET_1, "vpnGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/ha-vpn-gw-b", "vpnGatewayInterface": 0 }
使用您为第一个网关 (
ha-vpn-gw-a-tunnel-0
) 的第一个隧道指定的相同sharedSecret
。如果您计划在与此隧道关联的 BGP 会话中启用 IPv6,则必须为
ikeVersion
指定2
。如需在第二个高可用性 VPN 网关上创建第二个隧道,请重复上述命令,但更改以下参数:
name
:例如ha-vpn-gw-b-tunnel-1
sharedSecret
或sharedSecretHash
:指定在第一个网关上创建第二个隧道时使用的sharedSecret
或sharedSecretHash
vpnGatewayInterface
:更改为其他高可用性 VPN 网关接口的值;在此示例中,将此值更改为1
创建 BGP 会话
对于每个高可用性 VPN 隧道,您可以创建 IPv4 BGP 会话和/或 IPv6 BGP 会话。
如需查看具体说明,请选择适合您的高可用性 VPN 和 VPC 网络流量所需的 BGP 会话类型。
BGP 会话类型 | 高可用性 VPN 网关 | VPC 网络 | 是否允许使用 MP-BGP? |
---|---|---|---|
IPv4 BGP 会话 | 仅 IPv4 或双栈 | 仅 IPv4 或双栈 | 是 |
IPv6 BGP 会话 | 双栈 | 双栈 | 是 |
IPv4 和 IPv6 BGP 会话 | 双栈 | 双栈 | 无 |
如需在高可用性 VPN 隧道的 BGP 会话中使用多协议 BGP (MP-BGP),您必须使用双栈高可用性 VPN 网关。
您还必须使用双栈高可用性 VPN 网关在同一高可用性 VPN 隧道中设置 IPv4 和 IPv6 BGP 会话。 不过,您无法在各个 IPv4 BGP 会话和 IPv6 BGP 会话中启用双栈路由交换 (MP-BGP)。
IPv4 BGP 会话
控制台
如要创建 BGP 会话,请按照以下步骤操作:
- 点击配置 BGP 会话。
- 在创建 BGP 会话页面上,完成以下步骤:
- 在 BGP 会话类型字段中,选择 IPv4 BGP 会话。
- 在名称部分,输入 BGP 会话的名称。
- 在 Peer ASN(对等 ASN)字段中,输入为对等 VPN 网关配置的对等 ASN。
- 可选:在通告路由的优先级 (MED) 字段中,输入向此 BGP 对等方通告的路由的优先级。
- 可选:如需启用 IPv6 路由交换,请点击启用 IPv6 流量切换开关。
在分配 BGP IPv4 地址字段中,选择自动或手动。如果您选择手动,请执行以下操作:1. 在 Cloud Router BGP IPv4 地址字段中,输入 Cloud Router BGP IPv4 地址。1. 在 BGP 对等 IPv4 地址字段中,输入 BGP 对等方的 IPv4 地址。IPv4 地址必须满足以下要求:* 每个 IPv4 地址必须属于
169.254.0.0/16
地址范围内的同一/30
子网。* 每个 IPv4 地址是/30
子网的第一个或第二个主机。该子网的第一个和最后一个 IP 地址是为网络和广播地址预留的。* BGP 会话的每个 IPv4 地址范围在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv4 地址。
- 可选:如果您在上一步中启用了 IPv6 路由交换,则在分配 BGP IPv6 下一个跃点字段中,选择自动或手动。如果您选择手动,请执行以下操作:
- 在 Cloud Router BGP IPv6 下一个跃点字段中,输入一个
2600:2d00:0:2::/63
地址范围内的 IPv6 地址。此 IP 地址是 Cloud Router 路由器通告的 IPv6 路由的下一个跃点地址。 - 在对等 BGP IPv6 下一个跃点字段中,输入一个
2600:2d00:0:2::/63
地址范围内的 IPv6 地址。此 IP 地址是 Cloud Router 路由器从 BGP 对等端获知的 IPv6 路由的下一个跃点地址。 - 可选:展开高级选项部分。
- 如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话。
- 如需启用 MD5 身份验证,请选择启用。如果启用,则系统会使用 MD5 身份验证对 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
- 如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。
- 在 Cloud Router BGP IPv6 下一个跃点字段中,输入一个
- 可选:如果您在上一步中启用了 IPv6 路由交换,则在分配 BGP IPv6 下一个跃点字段中,选择自动或手动。如果您选择手动,请执行以下操作:
点击保存并继续。
针对网关中配置的其余隧道重复上述步骤。对于每个隧道,请使用不同的 Cloud Router BGP IP 地址和 BGP 对等 IP 地址。
点击保存 BGP 配置。
gcloud
如要创建 BGP 会话,请按照以下步骤操作:
在本部分中,您将配置 Cloud Router 接口和 BGP 对等端;下表概述了这些接口和对等端。同时介绍了 IPv4 地址范围与为每个接口指定的对等 IPv4 地址之间的关系。
例如,router-1
的第一个接口的 IPv4 地址为 169.254.0.1
,这意味着 router-1
是 IPv4 子网 169.254.0.0/30
中的第一个主机。另一个 Cloud Router router-2
是 router-1
的 BGP 对等端。系统为 router-2
的第一个接口分配了 169.254.0.2
,这是 IPv4 子网 169.254.0.0/30
中的第二个主机。因此,router-1
的对等 IPv4 BGP 地址为 169.254.0.2
,router-2
的对等 IPv4 BGP 地址为 169.254.0.1
。
下表还显示了 IPv6 下一个跃点地址配置的示例。
路由器 | 接口名称 | IPv4 地址范围 | 对等 IPv4 地址 | 对等 ASN | IPv6 下一个跃点 地址 |
对等 IPv6 下一个跃点 地址 |
---|---|---|---|---|---|---|
router-1 | if-tunnel-a-to-b-if-0 | 169.254.0.1/30 | 169.254.0.2 | 65002 | 2600:2d00:0:2::1 | 2600:2d00:0:2::2 |
router-2 | if-tunnel-b-to-a-if-0 | 169.254.0.2/30 | 169.254.0.1 | 65001 | 2600:2d00:0:2::2 | 2600:2d00:0:2::1 |
router-1 | if-tunnel-a-to-b-if-1 | 169.254.1.1/30 | 169.254.1.2 | 65002 | 2600:2d00:0:2:1::1 | 2600:2d00:0:2:1::2 |
router-2 | if-tunnel-b-to-a-if-1 | 169.254.1.2/30 | 169.254.1.1 | 65001 | 2600:2d00:0:2:1::2 | 2600:2d00:0:2:1::1 |
如需创建 Cloud Router 路由器接口和 BGP 对等端,请完成以下命令序列。
在隧道
TUNNEL_NAME_GW1_IF0
的ROUTER_NAME_1
上创建接口和 BGP 对等端。此接口将
GW_1
的interface 0
上的TUNNEL_NAME_GW1_IF0
连接到GW_2
的interface 0
。在以下命令中,替换以下选项:
ROUTER_1_INTERFACE_NAME_0
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW1_IF0
相关的名称会很有帮助IP_VERSION
:指定IPV4
或保留为未指定。如果您未指定此项,则默认设置为IPV4
。IP_ADDRESS_1
:169.254.0.0/16
IPv4 地址范围内尚未使用的 BGP IPv4 地址;此示例使用169.254.0.1
。如果您省略此标志,并且未手动分配 BGP IPv4 地址,Google Cloud 会自动为您分配一个地址。MASK_LENGTH
:指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。PEER_NAME_GW1_IF0
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW1_IF0
相关的名称会很有帮助PEER_IP_ADDRESS_1
:尚未使用的来自169.254.0.0/16
的 BGP IPv4 地址;本示例使用169.254.0.2
。如果您之前没有专门分配 BGP IPv4 地址IP_ADDRESS_1
,则省略此选项,且 Google Cloud 会自动为您分配一个匹配的 BGP 对等 IPv4 地址。如果您手动指定了IP_ADDRESS_1
,则也必须手动配置此选项。PEER_ASN_2
:用于其他 Cloud Router 路由器上所有接口的 ASN 编号ROUTER_NAME_2
;此示例使用 ASN 编号65002
可选:如果您要使用 MP-BGP 创建 IPv4 BGP 会话,请在运行
add-bgp-peer
命令时指定--enable-ipv6
,以启用 IPv6 路由交换。您还可以选择自动或手动配置 IPv6 下一个跃点地址。如需手动配置下一个跃点地址,请替换以下两项:IPV6_NEXTHOP_ADDRESS_1
:Cloud Router 路由器通告的 IPv6 路由的下一个跃点地址。PEER_IPV6_NEXTHOP_ADDRESS_1
:Cloud Router 路由器从 BGP 对等方获知的 IPv6 路由的下一个跃点地址。下一个跃点地址必须在
2600:2d00:0:2::/63
IPv6 地址范围内。
如果您未指定 IPv6 下一个跃点地址,则 Google Cloud 会自动分配
2600:2d00:0:2::/63
IPv6 地址范围内未使用的地址。AUTHENTICATION_KEY
:用于在PEER_NAME_GW1_IF0
上进行 MD5 身份验证的密钥。如需详细了解此可选功能,请参阅使用 MD5 身份验证。
为
TUNNEL_NAME_GW1_IF0
创建 Cloud Router 接口如需在 Cloud Router 上创建具有 IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0 \ --ip-address=IP_ADDRESS_1 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION
为
TUNNEL_NAME_GW1_IF0
创建 BGP 对等端以下示例命令会创建一个启用 IPv6 的 BGP 对等端,其中包含手动指定的 IPv4 BGP 地址和 IPv6 下一个跃点地址:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --enable-ipv6 \ --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS_1 \ --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS_1
以下命令会创建一个未启用 IPv6 的 IPv4 BGP 对等方:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION
可选:如需使用 MD5 身份验证,请使用
--md5-authentication-key
标志提供您的密钥:gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
在隧道
TUNNEL_NAME_GW1_IF1
的ROUTER_NAME_1
上创建接口和 BGP 对等端。此接口用于将
GW_1
的interface 1
上的TUNNEL_NAME_GW1_IF1
连接到GW_2
的interface 1
。在以下命令中,替换以下选项:
ROUTER_1_INTERFACE_NAME_1
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW1_IF1
相关的名称会很有帮助IP_VERSION
:指定IPV4
或保留为未指定IP_ADDRESS_2
:可选:尚未使用的来自169.254.0.0/16
的 BGP IPv4 地址;本示例使用169.254.1.1
。如果您省略此标志,并且未手动分配 BGP IPv4 地址,Google Cloud 会自动为您分配一个地址。MASK_LENGTH
:指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。PEER_NAME_GW1_IF1
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW1_IF1
相关的名称会很有帮助PEER_IP_ADDRESS_2
:169.254.0.0/16
IPv4 地址范围内尚未使用的 BGP IPv4 地址;此示例使用169.254.1.2
。如果您没有专门分配 BGP IPv4 地址IP_ADDRESS_2
,则省略此选项,且 Google Cloud 会自动为您分配一个匹配的 BGP 对等 IPv4 地址。如果您手动指定了IP_ADDRESS_2
,则也必须手动配置此选项。PEER_ASN_2
:用于其他 Cloud Router 路由器上所有接口的 ASN 编号ROUTER_NAME_2
;此示例使用 ASN 编号65002
可选:如果您要使用 MP-BGP 配置 IPv4 BGP 会话,请在
add-bgp-peer
命令中指定--enable-ipv6
以启用 IPv6 路由交换。您还可以选择手动配置 IPv6 下一个跃点地址。如需配置下一个跃点地址,请替换以下两项:IPV6_NEXTHOP_ADDRESS_2
:Cloud Router 路由器通告的 IPv6 路由的下一个跃点地址;该地址必须在2600:2d00:0:2::/63
IPv6 地址范围内PEER_IPV6_NEXTHOP_ADDRESS_2
:Cloud Router 从 BGP 对等端获知的 IPv6 路由的下一个跃点地址;该地址必须在2600:2d00:0:2::/63
IPv6 地址范围内
如果您未指定 IPv6 下一个跃点地址,则 Google Cloud 会自动分配
2600:2d00:0:2::/63
IPv6 地址范围内未使用的地址。AUTHENTICATION_KEY_2
:用于在PEER_NAME_GW1_IF1
上进行 MD5 身份验证的密钥;如需详细了解此可选功能,请参阅使用 MD5 身份验证
为
TUNNEL_NAME_GW1_IF1
创建 Cloud Router 接口如需创建具有 IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1 \ --ip-address=IP_ADDRESS_2 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION
为
TUNNEL_NAME_GW1_IF1
创建 BGP 对等端以下示例命令会创建一个启用 IPv6 的 BGP 对等端,其中包含手动指定的 IPv4 BGP 地址和 IPv6 下一个跃点地址:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --enable-ipv6 \ --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS_1 \ --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS_1
以下命令会创建一个未启用 IPv6 路由交换的 IPv4 BGP 对等方:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION
可选:如需使用 MD5 身份验证,请使用
--md5-authentication-key
标志提供您的密钥:gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY_2
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
验证
ROUTER_NAME_1
的设置:gcloud compute routers describe ROUTER_NAME_1 \ --region=REGION
命令输出如以下示例所示:
bgp: advertisemode: DEFAULT asn: 65001 keepaliveInterval: 20 bgpPeers: — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv6: true interfaceName: if-tunnel-a-to-b-if-0 ipAddress: 169.254.0.1 ipv6NexthopAddress: 2600:2d00:0:2:0:0:0:1 name: bgp-peer-tunnel-a-to-b-if-0 peerAsn: 65002 peerIpAddress: 169.254.0.2 peerIpv6NexthopAddress: 2600:2d00:0:2:0:0:0:2 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv6: true interfaceName: if-tunnel-a-to-b-if-1 ipAddress: 169.254.1.1 ipv6NexthopAddress: 2600:2d00:0:2:0:0:1:1 name: bgp-peer-tunnel-a-to-b-if-1 peerAsn: 65002 peerIpAddress: 169.254.1.2 peerIpv6NexthopAddress: 2600:2d00:0:2:0:0:1:2 creationTimestamp: '2021-10-19T14:31:52.639-07:00' id: '4047683710114914215' interfaces: — ipRange: 169.254.0.1/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0 name: if-tunnel-a-to-b-if-0 — ipRange: 169.254.1.1/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1 name: if-tunnel-a-to-b-if-1 kind: compute#router name: router-a network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
在隧道
TUNNEL_NAME_GW2_IF0
的ROUTER_NAME_2
上创建接口和 BGP 对等端。此接口将
GW_2
的interface 0
上的TUNNEL_NAME_GW2_IF0
连接到GW_1
的interface 0
。在以下命令中,替换以下选项:
ROUTER_2_INTERFACE_NAME_0
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW2_IF0
相关的名称会很有帮助IP_VERSION
:指定IPV4
或保留为未指定。如果您未指定此项,则默认设置为IPV4
。IP_ADDRESS_3
:如果您手动为TUNNEL_NAME_GW1_IF0
配置了PEER_IP_ADDRESS_1
,请为IP_ADDRESS_3
指定该值。如果 Google Cloud 自动分配了此对等 IPv4 地址,则您必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
命令。在 BGP 对等端PEER_NAME_GW1_IF0
的输出中,使用peerIpAddress
字段中显示的值。本示例使用169.254.0.2
。MASK_LENGTH
:指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。PEER_NAME_GW2_IF0
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW2_IF0
相关的名称会很有帮助PEER_IP_ADDRESS_3
:您之前在配置第一个网关和接口时使用的 BGP IPv4 地址。运行gcloud compute routers describe ROUTER_NAME_1
,并使用您为TUNNEL_NAME_GW1_IF0
创建的 BGP 对等方PEER_NAME_GW1_IF0
的ipAddress
字段中显示的值。本示例使用169.254.0.1
。PEER_ASN_1
:用于ROUTER_NAME_1
上所有接口的 ASN 编号,该编号已提前设置;此示例使用 ASN 编号65001
可选:如果您要创建使用 IPv4 BGP 会话和 MP-BGP 的 VPN 隧道,请在
add-bgp-peer
命令中指定--enable-ipv6
以启用 IPv6 流量。您必须配置 IPv6 下一个跃点地址,以匹配为第一个网关配置的接口和 BGP 对等端。如需配置下一个跃点地址,请替换以下两项:IPV6_NEXTHOP_ADDRESS_3
:您之前在PEER_IPV6_NEXTHOP_ADDRESS_1
中指定的 IPv6 路由的下一个跃点地址。如果您在ROUTER_NAME_1
上为TUNNEL_NAME_GW1_IF0
创建接口和 BGP 对等端时自动分配 IPv6 下一个跃点地址,则必须找出哪个 IPv6 下一个跃点地址由 Google Cloud 分配。运行gcloud compute routers describe ROUTER_NAME_1
并检查您为TUNNEL_NAME_GW1_IF0
设置的 BPG 对等端PEER_NAME_GW1_IF0
的输出。使用peerIpv6NextHopAddress
字段中显示的值。本示例使用2600:2d00:0:2:0:0:0:2
。PEER_IPV6_NEXTHOP_ADDRESS_3
:Cloud Router 路由器从 BGP 对等方获知的 IPv6 路由的下一个跃点地址。请使用您之前在IPV6_NEXTHOP_ADDRESS_1
中指定的值。如果您自动分配了 IPv6 下一个跃点地址,请运行gcloud compute routers describe ROUTER_NAME_1
命令,并检查您为TUNNEL_NAME_GW1_IF0
设置的 BPG 对等方的输出。使用Ipv6NextHopAddress
字段中显示的值。 本示例使用2600:2d00:0:2:0:0:0:1
。
AUTHENTICATION_KEY
:用于在PEER_NAME_GW2_IF0
上进行 MD5 身份验证的密钥
为
TUNNEL_NAME_GW2_IF0
创建 Cloud Router 接口如需创建具有 IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_2 \ --interface-name=ROUTER_2_INTERFACE_NAME_0 \ --ip-address=IP_ADDRESS_3 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF0 \ --region=REGION
为
TUNNEL_NAME_GW2_IF0
创建 BGP 对等端以下示例命令会创建一个启用了 IPv6 路由交换的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0 \ --interface=ROUTER_2_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --enable-ipv6 \ --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS \ --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS
以下命令会创建一个未启用 IPv6 路由交换的 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0 \ --interface=ROUTER_2_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION
或者,如果将
ROUTER_NAME_1
配置为对PEER_NAME_GW1_IF0
使用 MD5 身份验证,请将ROUTER_NAME_2
配置为使用 MD5 身份验证,如下所示:gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0 \ --interface=ROUTER_2_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b].
在隧道
TUNNEL_NAME_GW2_IF1
的ROUTER_NAME_2
上创建一个具有 IPv4 地址和 BGP 对等端的接口。此接口将
GW_2
的interface 1
上的TUNNEL_NAME_GW2_IF1
连接到GW_1
的interface 1
。在以下命令中,替换以下选项:
ROUTER_2_INTERFACE_NAME_1
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW2_IF1
相关的名称会很有帮助IP_VERSION
:指定IPV4
或保留为未指定。如果您未指定此项,则默认设置为IPV4
。IP_ADDRESS_4
:如果您为TUNNEL_NAME_GW1_IF1
手动分配了 BGP IPv4 地址PEER_IP_ADDRESS_2
,请为IP_ADDRESS_4
指定该值。如果 Google Cloud 自动分配了 IPv4 地址,则您必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
命令。在 BGP 对等端PEER_NAME_GW1_IF1
的输出中,使用peerIpAddress
字段中显示的值。本示例使用169.254.1.2
。MASK_LENGTH
:对于具有 IPv4 地址的接口,请指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。对于具有 IPv6 地址的接口,请将掩码长度指定为不超过126
。PEER_NAME_GW2_IF1
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW2_IF1
相关的名称会很有帮助PEER_IP_ADDRESS_4
:您在配置第一个网关和接口时指定为IP_ADDRESS_2
的 IP 地址。运行gcloud compute routers describe ROUTER_NAME_1
命令,并使用您为TUNNEL_NAME_GW1_IF1
创建的 BGP 对等方的ipAddress
字段中显示的值。本示例使用169.254.1.1
。PEER_ASN_1
:用于ROUTER_NAME_1
上所有接口的 ASN 编号,该编号已提前设置;此示例使用 ASN 编号65001
可选:如果您要使用 MP-BGP 配置 IPv4 BGP 会话,请在
add-bgp-peer
命令中指定--enable-ipv6
以启用 IPv6 路由交换。您还可以选择手动配置 IPv6 下一个跃点地址。如需配置下一个跃点地址,请替换以下两项:IPV6_NEXTHOP_ADDRESS_4
:您之前在PEER_IPV6_NEXTHOP_ADDRESS_2
中指定的 IPv6 路由的下一个跃点地址。如果您在ROUTER_NAME_1
上为TUNNEL_NAME_GW1_IF1
创建接口和 BGP 对等端时自动分配 IPv6 下一个跃点地址,则必须找出哪个 IPv6 下一个跃点地址由 Google Cloud 分配。运行gcloud compute routers describe ROUTER_NAME_1
命令,并检查您为TUNNEL_NAME_GW1_IF1
设置的 BPG 对等方PEER_NAME_GW1_IF1
的输出。使用peerIpv6NextHopAddress
字段中显示的值。PEER_IPV6_NEXTHOP_ADDRESS_3
:Cloud Router 路由器从 BGP 对等方获知的 IPv6 路由的下一个跃点地址。请使用您之前在IPV6_NEXTHOP_ADDRESS_2
中指定的值。如果您自动分配了 IPv6 下一个跃点地址,请运行gcloud compute routers describe ROUTER_NAME_1
命令,并检查您为TUNNEL_NAME_GW1_IF1
设置的 BPG 对等方PEER_NAME_GW1_IF1
的输出。使用Ipv6NextHopAddress
字段中显示的值。本示例使用2600:2d00:0:2:0:0:1:1
。
AUTHENTICATION_KEY_2
:用于在PEER_NAME_GW2_IF1
上进行 MD5 身份验证的密钥
为
TUNNEL_NAME_GW2_IF1
创建 Cloud Router 接口gcloud compute routers add-interface ROUTER_NAME_2 \ --interface-name=ROUTER_2_INTERFACE_NAME_1 \ --ip-address=IP_ADDRESS_4 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF1 \ --region=REGION
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b].
为
TUNNEL_NAME_GW2_IF1
创建 BGP 对等端以下示例命令会创建一个启用了 IPv6 路由交换的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1 \ --interface=ROUTER_2_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --enable-ipv6 \ --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS \ --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS
以下命令会创建一个未启用 IPv6 路由交换的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1 \ --interface=ROUTER_2_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION
或者,如果将
ROUTER_NAME_1
配置为对PEER_NAME_GW1_IF1
使用 MD5 身份验证,请将ROUTER_NAME_2
配置为使用 MD5 身份验证,如下所示: 命令输出如以下示例所示:gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1 \ --interface=ROUTER_2_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY_2
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b].
验证
ROUTER_NAME_2
的设置:gcloud compute routers describe ROUTER_NAME_2 \ --region=REGION
命令输出如以下示例所示:
bgp: advertiseMode: DEFAULT asn: 65002 bgpPeers: — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv6: true interfaceName: if-tunnel-b-to-a-if-0 ipAddress: 169.254.0.2 ipv6NexthopAddress: 2600:2d00:0:2:0:0:0:2 name: bgp-peer-tunnel-b-to-a-if-0 peerAsn: 65001 peerIpAddress: 169.254.0.1 peerIpv6NexthopAddress: 2600:2d00:0:2:0:0:0:1 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv6: true interfaceName: if-tunnel-b-to-a-if-1 ipAddress: 169.254.1.2 ipv6NexthopAddress: 2600:2d00:0:2:0:0:1:2 name: bgp-peer-tunnel-b-to-a-if-1 peerAsn: 65001 peerIpAddress: 169.254.1.1 peerIpv6NexthopAddress: 2600:2d00:0:2:0:0:1:1 creationTimestamp: '2021-10-19T14:31:52.639-07:00' id: '4047683710114914215' interfaces: — ipRange: 169.254.0.1/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0 name: if-tunnel-b-to-a-if-0 — ipRange: 169.254.1.1/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1 name: if-tunnel-b-to-a-if-1 kind: compute#router name: router-b network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-b region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b
API
如需创建 Cloud Router 接口,请发出以下任一请求:
PATCH
:使用routers.patch
方法UPDATE
:使用routers.update
方法
PATCH
请求仅会更新您添加的参数,而UPDATE
请求会更新 Cloud Router 路由器的所有参数。您必须为高可用性 VPN 网关上的每个 VPN 隧道创建一个 Cloud Router 接口。
您指定的 BGP IPv4 地址范围在 VPC 网络所有区域中的所有 Cloud Router 间必须唯一。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "interfaces": [ { "name": "if-tunnel-a-to-on-prem-if-0", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipRange": "169.254.0.1/30" } ] }
如需将 BGP 对等方配置添加到接口,请发出以下任一请求:
PATCH
:使用routers.patch
方法UPDATE
:使用routers.update
方法
对另一个 VPN 隧道重复此命令,但更改除
name
和peerAsn
以外的所有选项。如需为高可用性 VPN 网关创建完整的 BGP 会话配置,请使用以下 API 命令:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ { "name": "bgp-peer-tunnel-a-to-on-prem-if-0", "interfaceName": "if-tunnel-a-to-on-prem-if-0", "ipAddress": "169.254.0.1", "peerIpAddress": "169.254.0.2", "peerAsn": 65002, "advertiseMode": "DEFAULT" } ] }
如需为启用了 IPv6 的高可用性 VPN 网关创建完整的 BGP 会话配置,请使用以下 API 命令:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ { "name": "bgp-peer-tunnel-a-to-on-prem-if-0", "interfaceName": "if-tunnel-a-to-on-prem-if-0", "ipAddress": "169.254.0.1", "peerIpAddress": "169.254.0.2", "peerAsn": 65002, "advertiseMode": "DEFAULT" "enableIpv6": true "ipv6NexthopAddress: "2600:2d00:0:2:0:0:0:1" "peerIpv6NexthopAddress: "2600:2d00:0:2:0:0:0:2" } ] }
如果要将会话配置为使用 MD5 身份验证,您的请求必须包含身份验证密钥,这意味着它必须同时提供密钥和密钥名称。创建 BGP 对等互连会话时,它还必须按名称引用密钥。例如:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "md5AuthenticationKeys": [ { "name": "bgppeer-1-key", "key": "secret_key_value" } ], } { "bgpPeers": [ { "interfaceName": "if-tunnel-a-to-on-prem-if-0", "ipAddress": "169.254.0.1", "name": "bgp-peer-tunnel-a-to-on-prem-if-0", "peerAsn": 65002, "peerIpAddress": "169.254.0.2", "advertiseMode": "DEFAULT", "md5AuthenticationKeyName": "bgppeer-1-key" } ], }
IPv6 BGP 会话
控制台
如要创建 BGP 会话,请按照以下步骤操作:
- 点击配置 BGP 会话。
在创建 BGP 会话页面上,完成以下步骤:
- 在 BGP 会话类型字段中,选择 IPv6 BGP 会话。
- 在名称部分,输入 BGP 会话的名称。
- 在 Peer ASN(对等 ASN)字段中,输入为对等 VPN 网关配置的对等 ASN。
- 可选:在通告路由的优先级 (MED) 字段中,输入向此 BGP 对等方通告的路由的优先级。
- 可选:如需启用 IPv4 路由交换,请点击启用 IPv4 流量切换开关。
在分配 BGP IPv6 地址字段中,选择自动或手动。如果您选择手动,请执行以下操作:
- 在 Cloud Router BGP IPv6 地址字段中,输入 Cloud Router BGP IPv6 地址。
- 在 BGP 对等 IPv6 地址字段中,输入 BGP 对等方的 IPv6 地址。IPv6 地址必须满足以下要求:
- 每个地址必须是
fdff:1::/64
地址范围内掩码长度为/64
的唯一本地地址 (ULA)。例如fdff:1::1
。 - 每个地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。
- 每个地址必须是
如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv6 地址。
可选:如果您在上一步中启用了 IPv4 路由交换,则在分配 BGP IPv4 下一个跃点字段中,选择自动或手动。如果您选择手动,请执行以下操作:
- 在 Cloud Router BGP IPv4 下一个跃点字段中,输入一个
169.254.0.0/16
地址范围内的 IPv4 地址。此 IP 地址是 Cloud Router 路由器通告的 IPv4 路由的下一个跃点地址。 - 在对等 BGP IPv4 下一个跃点字段中,输入一个
169.254.0.0/16
地址范围内的 IP 地址。此 IP 地址是 Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址。 - 可选:展开高级选项部分。
- 如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话。
- 如需添加 MD5 身份验证,请选择启用。如果启用,您可以使用 MD5 身份验证对 Cloud Router 路由器与其对等方之间的 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
- 如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。
- 在 Cloud Router BGP IPv4 下一个跃点字段中,输入一个
点击保存并继续。
针对网关中配置的其余隧道重复上述步骤。对于每个隧道,请使用不同的 Cloud Router BGP IP 地址和 BGP 对等 IP 地址。
点击保存 BGP 配置。
gcloud
如要创建 BGP 会话,请按照以下步骤操作:
在本部分中,您将配置 IPv6 Cloud Router 接口和 BGP 对等端;下表概述了这些接口和对等端。同时介绍了 IPv6 BGP 范围与为每个接口指定的对等 IP 地址之间的关系。
例如,router-1
的第一个接口的 IPv6 地址为 fdff:1::1
,这意味着 router-1
是 IPv6 子网 fdff:1::/126
中的第一个主机。另一个 Cloud Router router-2
是 router-1
的 BGP 对等端。系统为 router-2
的第一个接口分配了 fdff:1::2
,这是 IPv6 子网 fdff:1::/126
中的第二个主机。因此,router-1
的 BGP 对等 IPv6 地址为 fdff:1::2
,router-2
的地址为 fdff:1::2
。
路由器 | 接口名称 | IPv6 地址范围 | 对等 IPv6 地址 | 对等 ASN | IPv6 下一个跃点 地址 |
对等 IPv4 下一个跃点 地址 |
---|---|---|---|---|---|---|
router-1 | if-tunnel-a-to-b-if-0 | fdff:1::/64 | fdff:1::2 | 65002 | 169.254.12.1 | 169.254.12.2 |
router-2 | if-tunnel-b-to-a-if-0 | fdff:1::/64 | fdff:1::1 | 65001 | 169.254.12.2 | 169.254.12.1 |
router-1 | if-tunnel-a-to-b-if-1 | fdff:1::/64 | fdff:1::2 | 65002 | 169.254.13.1 | 169.254.13.2 |
router-2 | if-tunnel-b-to-a-if-1 | fdff:1::/64 | fdff:1::1 | 65001 | 169.254.13.2 | 169.254.13.1 |
如需创建 Cloud Router 接口和 BGP 对等端,请完成以下命令序列。
在隧道
TUNNEL_NAME_GW1_IF0
的ROUTER_NAME_1
上创建接口和 BGP 对等端。此接口将
GW_1
的interface 0
上的TUNNEL_NAME_GW1_IF0
连接到GW_2
的interface 0
。在以下命令中,替换以下选项:
ROUTER_1_INTERFACE_NAME_0
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW1_IF0
相关的名称会很有帮助IP_VERSION
:IPV6
;仅当您希望 Google Cloud 自动为此接口分配 IPv6 地址时,此参数才是必需的。如果您要手动为此接口分配 IPv6 地址,则可以省略此标志。IP_ADDRESS_1
:fdff:1::/64
IPv6 地址范围内尚未使用的 BGP IPv6 地址;此示例使用fdff:1::1
。如果您省略此标志,并且未手动分配 IPv6 地址,Google Cloud 会自动为您分配一个地址。MASK_LENGTH
:将掩码长度指定为126
。PEER_NAME_GW1_IF0
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW1_IF0
相关的名称会很有帮助PEER_IP_ADDRESS_1
:fdff:1::/64
IPv6 地址范围内尚未使用的 BGP IPv6 地址;此示例使用fdff:1::2
。如果您之前未分配特定 BGP IPv6 地址IP_ADDRESS_1
,也请忽略此选项,Google Cloud 会自动为您分配一个匹配的 BGP 对等 IPv6 地址。如果您手动指定了IP_ADDRESS_1
,则也必须手动配置此选项。PEER_ASN_2
:用于其他 Cloud Router 路由器上所有接口的 ASN 编号ROUTER_NAME_2
;此示例使用 ASN 编号65002
可选:如需在使用 MP-BGP 的 IPv6 BGP 会话中启用 IPv4 路由交换,请在运行
gcloud compute routers add-bgp-peer
命令时指定--enable-ipv4
。您还可以选择自动或手动配置 IPv4 下一个跃点地址。如需手动配置 IPv4 下一个跃点地址,请替换以下两项:
IPV4_NEXTHOP_ADDRESS_1
:Cloud Router 路由器通告的 IPv4 路由的下一个跃点地址;该地址必须在链路本地 IPv4 地址范围169.254.0.0/16
内。Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址;该地址必须在链路本地地址范围169.254.0.0/16
内。
如果您未指定 IPv4 下一个跃点地址,则 Google Cloud 会自动为您分配
169.254.0.0/16
IPv4 地址范围内未使用的地址。AUTHENTICATION_KEY
:用于在PEER_NAME_GW1_IF0
上进行 MD5 身份验证的密钥。如需详细了解此可选功能,请参阅使用 MD5 身份验证。
可选:分配 BGP 标识符范围
当您向具有 IPv6 地址的 Cloud Router 添加第一个接口时,系统会自动为 Cloud Router 分配一个 BGP 标识符范围。如果您希望为 Cloud Router 定义自己的 BGP 标识符范围,可以创建自己的范围。您也可以稍后修改此范围。
如需了解详情,请参阅配置 Cloud Router 的 BGP 标识符范围。
自动
为
TUNNEL_NAME_GW1_IF0
创建接口如需创建具有自动分配的 IPv6 地址的接口,请运行以下命令。
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION \ --ip-version=IPV6
为
TUNNEL_NAME_GW1_IF0
创建 BGP 对等端如需创建启用 IPv4 路由交换并具有自动分配的 IPv4 下一个跃点地址的 IPv6 BGP 对等端,请运行以下命令。
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --enable-ipv4 \
以下命令会创建一个未启用 IPv4 且不带自动分配的 IPv6 地址的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-asn=PEER_ASN_2 \ --region=REGION
可选:如需使用 MD5 身份验证,请使用
--md5-authentication-key
标志提供您的密钥:gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
手动
为
TUNNEL_NAME_GW1_IF0
创建接口如需创建具有手动指定的 IPv6 地址的接口,请运行以下命令。
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0 \ --ip-address=IP_ADDRESS_1 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION \
为
TUNNEL_NAME_GW1_IF0
创建 BGP 对等端如需创建启用 IPv4 路由交换并具有手动指定的 IPv4 下一个跃点地址的 BGP 对等端,请运行以下命令。
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --enable-ipv4 \ --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS_1 \ --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS_1
以下命令会创建一个未启用 IPv4 路由交换的 BGP 对等方:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION
可选:如需使用 MD5 身份验证,请使用
--md5-authentication-key
标志提供您的密钥:gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0 \ --interface=ROUTER_1_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
在隧道
TUNNEL_NAME_GW1_IF1
的ROUTER_NAME_1
上创建接口和 BGP 对等端。此接口将
GW_1
的interface 1
上的TUNNEL_NAME_GW1_IF1
连接到GW_2
的interface 1
。在以下命令中,替换以下选项:
ROUTER_1_INTERFACE_NAME_1
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW1_IF1
相关的名称会很有帮助IP_VERSION
:IPV6
IP_ADDRESS_2
:fdff:1::/64
IPv6 地址范围内尚未使用的 BGP IPv6 地址;此示例使用fdff:1::1:1
。如果您省略此标志,并且未手动分配 BGP IPv6 地址,Google Cloud 会自动为您分配一个地址。MASK_LENGTH
:将掩码长度指定为64
PEER_NAME_GW1_IF1
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW1_IF1
相关的名称会很有帮助PEER_IP_ADDRESS_2
:fdff:1::/64
IPv6 地址范围内尚未使用的 BGP IPv6 地址;此示例使用fdff:1::1:2
。如果您没有专门分配 IPv6 地址IP_ADDRESS_2
,则省略此选项,Google Cloud 会自动为您分配一个匹配的 BGP 对等 IPv6 地址。如果您手动指定了IP_ADDRESS_2
,则也必须手动配置此选项。PEER_ASN_2
:用于其他 Cloud Router 路由器上所有接口的 ASN 编号ROUTER_NAME_2
;此示例使用 ASN 编号65002
可选:如需在使用 MP-BGP 的 IPv6 BGP 会话中启用 IPv4 路由交换,请在运行
gcloud compute routers add-bgp-peer
命令时指定--enable-ipv4
。您还可以选择自动或手动配置 IPv4 下一个跃点地址。如需手动配置 IPv4 下一个跃点地址,请替换以下两项:
IPV4_NEXTHOP_ADDRESS_2
:Cloud Router 路由器通告的 IPv4 路由的下一个跃点地址;该地址必须在链路本地 IPv4 地址范围169.254.0.0/16
内。PEER_IPV4_NEXTHOP_ADDRESS_2
:Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址;该地址必须在链路本地 IPv4 地址范围169.254.0.0/16
内。
AUTHENTICATION_KEY_2
:用于在PEER_NAME_GW1_IF1
上进行 MD5 身份验证的密钥;如需详细了解此可选功能,请参阅使用 MD5 身份验证
自动
为
TUNNEL_NAME_GW1_IF1
创建 Cloud Router 接口如需创建具有自动分配的 IPv6 地址的接口,请运行以下命令。
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION \ --ip-version=IPV6
为
TUNNEL_NAME_GW1_IF1
创建 BGP 对等端如需创建启用 IPv4 路由交换并具有自动分配的 IPv4 下一个跃点地址的 IPv6 BGP 对等端,请运行以下命令。
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --enable-ipv4 \
以下命令会创建一个未启用 IPv4 的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION
可选:如需使用 MD5 身份验证,请使用
--md5-authentication-key
标志提供您的密钥:gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY_2
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
手动
为
TUNNEL_NAME_GW1_IF1
创建 Cloud Router 接口如需创建具有手动指定的 IPv6 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1 \ --ip-address=IP_ADDRESS_2 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION \
为
TUNNEL_NAME_GW1_IF1
创建 BGP 对等端如需创建启用 IPv4 路由交换的 IPv6 BGP 对等端,请运行以下命令:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --enable-ipv4 \ --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS_2 \ --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS_2
以下命令会创建一个未启用 IPv4 的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION
可选:如需使用 MD5 身份验证,请使用
--md5-authentication-key
标志提供您的密钥:gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1 \ --interface=ROUTER_1_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY_2
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
验证
ROUTER_NAME_1
的设置:gcloud compute routers describe ROUTER_NAME_1 \ --region=REGION
命令输出如以下示例所示:
bgp: advertisemode: DEFAULT asn: 65001 keepaliveInterval: 20 bgpPeers: — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv4: true interfaceName: if-tunnel-a-to-b-if-0 ipAddress: fdff:1::1 ipv4NexthopAddress: 169.254.12.2 name: bgp-peer-tunnel-a-to-b-if-0 peerAsn: 65002 peerIpAddress: fdff:1::2 peerIpv4NexthopAddress: 169.254.12.1 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv4: true interfaceName: if-tunnel-a-to-b-if-1 ipAddress: fdff:1:1:2::1 ipv4NexthopAddress: 169.254.13.2 name: bgp-peer-tunnel-a-to-b-if-1 peerAsn: 65002 peerIpAddress: fdff:1::2 peerIpv4NexthopAddress: 169.254.13.1 creationTimestamp: '2021-10-19T14:31:52.639-07:00' id: '4047683710114914215' interfaces: — ipRange: fdff:1::1/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0 name: if-tunnel-a-to-b-if-0 — ipRange: fdff:1::1/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1 name: if-tunnel-a-to-b-if-1 kind: compute#router name: router-a network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
在隧道
TUNNEL_NAME_GW2_IF0
的ROUTER_NAME_2
上创建接口和 BGP 对等端。此接口将
GW_2
的interface 0
上的TUNNEL_NAME_GW2_IF0
连接到GW_1
的interface 0
。在以下命令中,替换以下选项:
ROUTER_2_INTERFACE_NAME_0
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW2_IF0
相关的名称会很有帮助IP_VERSION
:IPV6
;仅当您希望 Google Cloud 自动为此接口分配 IPv6 地址时,此参数才是必需的。如果您要手动为此接口分配 IPv6 地址,则可以省略此标志。IP_ADDRESS_3
:如果您为TUNNEL_NAME_GW1_IF0
手动为PEER_IP_ADDRESS_1
分配了 BGP IPv6 地址,请为IP_ADDRESS_3
指定该值。如果 Google Cloud 自动分配了此对等 IPv6 地址,则您必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
命令。在 BGP 对等端PEER_NAME_GW1_IF0
的输出中,使用peerIpAddress
字段中显示的值。本示例使用fdff:1::2
。MASK_LENGTH
:指定126
或短的掩码长度。PEER_NAME_GW2_IF0
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW2_IF0
相关的名称会很有帮助PEER_IP_ADDRESS_3
:您之前在配置第一个网关和接口时使用的 BGP IPv6 地址。运行gcloud compute routers describe ROUTER_NAME_1
命令,并使用您为fdff:1::1
创建的 BGP 对等方的ipAddress
字段中显示的值。PEER_ASN_1
:用于ROUTER_NAME_1
上所有接口的 ASN 编号,该编号已提前设置;此示例使用 ASN 编号65001
可选:如果您要创建 IPv6 BGP 会话和 MP-BGP,请在运行
gcloud compute routers add-bgp-peer
命令时指定--enable-ipv4
以启用 IPv4 流量。您必须配置 IPv4 下一个跃点地址,以匹配为第一个网关配置的接口和支持 IPv4 的 BGP 对等端。如需配置下一个跃点地址,请替换以下两项:
IPV4_NEXTHOP_ADDRESS_3
:先前在PEER_IPV4_NEXTHOP_ADDRESS_1
中指定的 IPv4 路由的下一个跃点地址;如果您在为ROUTER_NAME_1
上的TUNNEL_NAME_GW1_IF0
创建接口和 BGP 对等体时自动分配了 IPv4 下一个跃点地址,那么必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
命令,并检查您为TUNNEL_NAME_GW1_IF0
设置的 BPG 对等方的输出。使用peerIpv4NextHopAddress
字段中显示的值。 本示例使用169.254.13.1
。PEER_IPV4_NEXTHOP_ADDRESS_2
:Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址;该地址必须在 IPv4 链路本地范围169.254.0.0/16
内。本示例使用169.254.13.2
。
AUTHENTICATION_KEY
:用于在PEER_NAME_GW2_IF0
上进行 MD5 身份验证的密钥
可选:分配 BGP 标识符范围
当您向具有 IPv6 地址的 Cloud Router 添加第一个接口时,系统会自动为 Cloud Router 分配 BGP 标识符范围。如果您希望为 Cloud Router 定义自己的 BGP 标识符范围,可以创建自己的范围。您也可以稍后修改此范围。
如需了解详情,请参阅配置 Cloud Router 的 BGP 标识符范围。
为
TUNNEL_NAME_GW2_IF0
创建 Cloud Router 接口如需创建具有 IPv6 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_2_INTERFACE_NAME_0 \ --ip-address=IP_ADDRESS_3 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF0 \ --region=REGION \ --ip-version=IPV6
为
TUNNEL_NAME_GW2_IF0
创建 BGP 对等端以下示例命令会创建一个支持 IPv4 的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0 \ --interface=ROUTER_2_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --enable-ipv4 \ --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS \ --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS
以下命令会创建一个未启用 IPv4 的 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0 \ --interface=ROUTER_2_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION
或者,如果将
ROUTER_NAME_1
配置为对PEER_NAME_GW1_IF0
使用 MD5 身份验证,请将ROUTER_NAME_2
配置为使用 MD5 身份验证,如下所示:gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0 \ --interface=ROUTER_2_INTERFACE_NAME_0 \ --peer-ip-address=PEER_IP_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY
命令输出如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b].
在隧道
TUNNEL_NAME_GW2_IF1
的ROUTER_NAME_2
上创建接口和 BGP 对等端。此接口将
GW_2
的interface 1
上的TUNNEL_NAME_GW2_IF1
连接到GW_1
的interface 1
。在以下命令中,替换以下选项:
ROUTER_2_INTERFACE_NAME_1
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW2_IF1
相关的名称会很有帮助IP_ADDRESS_4
:如果您为TUNNEL_NAME_GW1_IF1
手动为PEER_IP_ADDRESS_2
分配了 BGP IPv6 地址,请为IP_ADDRESS_4
指定该值。如果您为ROUTER_NAME_1
上的TUNNEL_NAME_GW1_IF1
创建接口和 BGP 对等端时 Google Cloud 自动分配了对等 BGP IPv6 地址,则必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
命令。在 BGP 对等端的输出中,使用peerIpAddress
字段显示的值。 本示例使用fdff:1::1:2
。MASK_LENGTH
:将掩码长度指定为126
。PEER_NAME_GW2_IF1
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW2_IF1
相关的名称会很有帮助PEER_IP_ADDRESS_4
:如果您为TUNNEL_NAME_GW1_IF1
手动为IP_ADDRESS_2
分配了 BGP IP 地址,请为PEER_IP_ADDRESS_4
指定该值。如果 Google Cloud 自动为您分配了 BGP IPv6 地址,则您必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
,并使用您所创建的 BGP 对等端的ipAddress
字段中显示的值。本示例使用fdff:1::1:1
。PEER_ASN_1
:用于ROUTER_NAME_1
上所有接口的 ASN 编号,该编号已提前设置;此示例使用 ASN 编号65001
可选:如果您要创建 IPv6 BGP 会话和 MP-BGP,请在运行
gcloud compute routers add-bgp-peer
命令时指定--enable-ipv4
以启用 IPv4 流量。您必须配置 IPv4 下一个跃点地址,以匹配为第一个网关配置的接口和支持 IPv4 的 BGP 对等端。如需配置下一个跃点地址,请替换以下两项:
IPV4_NEXTHOP_ADDRESS_4
:先前在PEER_IPV4_NEXTHOP_ADDRESS_3
中指定的 IPv4 路由的下一个跃点地址;如果您在为ROUTER_NAME_1
上的TUNNEL_NAME_GW1_IF0
创建接口和 BGP 对等体时自动分配了 IPv4 下一个跃点地址,那么必须找出由 Google Cloud 分配的地址。运行gcloud compute routers describe ROUTER_NAME_1
命令,并检查您为TUNNEL_NAME_GW1_IF0
设置的 BPG 对等方的输出。使用peerIpv4NextHopAddress
字段中显示的值。本示例使用169.254.13.1
。PEER_IPV4_NEXTHOP_ADDRESS_4
:Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址;该地址必须在链路本地 IPv4 地址范围169.254.0.0/16
内。本示例使用169.254.13.2
。
AUTHENTICATION_KEY_2
:用于在PEER_NAME_GW2_IF1
上进行 MD5 身份验证的密钥
为
TUNNEL_NAME_GW2_IF1
创建 Cloud Router 接口gcloud compute routers add-interface ROUTER_NAME_2 \ --interface-name=ROUTER_2_INTERFACE_NAME_1 \ --ip-address=IP_ADDRESS_4 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF1 \ --region=REGION \
命令输出应如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b].
为
TUNNEL_NAME_GW2_IF1
创建 BGP 对等端以下示例命令会创建一个启用了 IPv4 路由交换的 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1 \ --interface=ROUTER_2_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --enable-ipv4 \ --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS \ --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS
以下命令会创建一个未启用 IPv4 路由交换的 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1 \ --interface=ROUTER_2_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION
或者,如果将
ROUTER_NAME_1
配置为对PEER_NAME_GW1_IF1
使用 MD5 身份验证,请将ROUTER_NAME_2
配置为使用 MD5 身份验证,如下所示:gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1 \ --interface=ROUTER_2_INTERFACE_NAME_1 \ --peer-ip-address=PEER_IP_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION \ --md5-authentication-key=AUTHENTICATION_KEY_2
命令输出应如以下示例所示:
Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b].
验证
ROUTER_NAME_2
的设置:gcloud compute routers describe ROUTER_NAME_2 \ --region=REGION
命令输出应如以下示例所示:
bgp: advertiseMode: DEFAULT asn: 65002 bgpPeers: — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv4: true interfaceName: if-tunnel-b-to-a-if-0 ipAddress: fdff:1::2 ipv4NexthopAddress: 169.254.12.2 name: bgp-peer-tunnel-b-to-a-if-0 peerAsn: 65001 peerIpAddress: fdff:1::1 peerIpv4NexthopAddress: 169.254.12.1 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' enableIpv4: true interfaceName: if-tunnel-b-to-a-if-1 ipAddress: fdff:1::1 ipv4NexthopAddress: 169.254.13.2 name: bgp-peer-tunnel-b-to-a-if-1 peerAsn: 65001 peerIpAddress: fdff:1::2 peerIpv4NexthopAddress: 169.254.13.2 creationTimestamp: '2021-10-19T14:31:52.639-07:00' id: '4047683710114914215' interfaces: — ipRange: fdff:1::2/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0 name: if-tunnel-b-to-a-if-0 — ipRange: fdff:1::1:2/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1 name: if-tunnel-b-to-a-if-1 kind: compute#router name: router-b network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-b region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b
API
如需创建具有 IPv6 地址的 Cloud Router 接口,请向
routers.patch
方法或routers.update
方法发出PATCH
或UPDATE
请求。PATCH
仅更新您包含的参数。UPDATE
会更新 Cloud Router 的所有参数。为高可用性 VPN 网关上的每个 VPN 隧道创建一个接口。以下示例会创建一个具有手动配置的 IPv6 BGP 地址的接口。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "interfaces": [ { "name": "if-tunnel-a-to-b-if-0", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipRange": "fdff:1::1/126" } ] }
每个 BGP 会话的每个 BGP IPv6 地址范围在 VPC 网络的所有区域中的所有 Cloud Router 路由器中必须唯一。
在另一个示例中,以下命令会创建一个具有自动分配的 IPv6 地址的接口。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "interfaces": [ { "name": "if-tunnel-a-to-b-if-0", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipVersion": "IPV6" } ] }
针对高可用性 VPN 网关上的每个 VPN 隧道重复此步骤。
针对每个接口向 Cloud Router 添加一个 BGP 对等端。
如需创建 BGP 对等端,请使用
routers.patch
方法或routers.update
方法发出PATCH
或UPDATE
请求。 对其他接口重复此命令,并根据需要更改字段值。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ { "name": "bgp-peer-tunnel-a-to-b-if-0", "interfaceName": "if-tunnel-a-to-b-if-0", "ipAddress": "fdff:1::2", "peerIpAddress": "fdff:1::1", "peerAsn": 65002, "advertiseMode": "DEFAULT" } ] }
如需创建配置了 MP-BGP 和 IPv4 下一个跃点地址的 IPv6 BGP 会话,请使用以下 API 命令:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ { "name": "bgp-peer-tunnel-a-to-b-if-0", "interfaceName": "if-tunnel-a-to-b-if-0", "ipAddress": "fdff:1::2", "peerIpAddress": "fdff:1::1", "peerAsn": 65002, "advertiseMode": "DEFAULT", "enableIpv4": true, "ipv4NexthopAddress: "169.254.12.2", "peerIpv4NexthopAddress: "169.254.12.1" } ] }
如果要将会话配置为使用 MD5 身份验证,您的请求必须包含身份验证密钥,这意味着它必须同时提供密钥和密钥名称。创建 BGP 对等互连会话时,它还必须按名称引用密钥。例如:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "md5AuthenticationKeys": [ { "name": "bgppeer-1-key", "key": "secret_key_value" } ], } { "bgpPeers": [ { "interfaceName": "if-tunnel-a-to-b-if-0", "ipAddress": "fdff:1::2", "name": "bgp-peer-tunnel-a-to-b-if-0", "peerAsn": 65002, "peerIpAddress": "fdff:1::1", "advertiseMode": "DEFAULT", "md5AuthenticationKeyName": "bgppeer-1-key" } ], }
IPv4 和 IPv6 BGP 会话
控制台
如需同时创建 IPv4 和 IPv6 BGP 会话,请按照以下步骤操作:
- 点击配置 BGP 会话。
在创建 BGP 会话页面上,完成以下步骤:
- 在 BGP 会话类型字段中,选择两者。
IPv4 BGP 会话
- 在名称部分,输入 BGP 会话的名称。
- 在 Peer ASN(对等 ASN)字段中,输入为对等 VPN 网关配置的对等 ASN。
- 在分配 BGP IPv4 地址字段中,选择自动或手动。如果您选择手动,请执行以下操作:
- 在 Cloud Router BGP IPv4 地址字段中,输入 Cloud Router BGP IPv4 地址。
在 BGP 对等 IPv4 地址字段中,输入 BGP 对等方的 IPv4 地址。IPv4 地址必须满足以下要求:
- 每个 IPv4 地址都必须属于
169.254.0.0/16
地址范围内的同一/30
子网。 - 每个 IPv4 地址是
/30
子网的第一个或第二个主机。该子网的第一个和最后一个 IP 地址是为网络和广播地址预留的。 - BGP 会话的每个 IPv4 地址范围在 VPC 网络的所有区域中的所有 Cloud Router 路由器之间必须唯一。
如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv4 地址。
如果您选择自动 IPv6 地址分配,则 Google Cloud 会自动为 BGP 会话选择 IPv6 地址。
- 每个 IPv4 地址都必须属于
可选:展开高级选项部分。
如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话。
如需添加 MD5 身份验证,请选择启用。如果启用,您可以使用 MD5 身份验证对 Cloud Router 路由器与其对等方之间的 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。
点击保存并继续。
IPv6 BGP 会话
- 在名称部分,输入 BGP 会话的名称。
- 在 Peer ASN(对等 ASN)字段中,输入为对等 VPN 网关配置的对等 ASN。
- 可选:在通告路由的优先级 (MED) 字段中,输入向此 BGP 对等方通告的路由的优先级。
- 在分配 BGP IPv6 地址字段中,选择自动或手动。如果您选择手动,请执行以下操作:
- 在 Cloud Router BGP IPv6 地址字段中,输入 Cloud Router BGP IPv6 地址。
在 BGP 对等 IPv6 地址字段中,输入 BGP 对等方的 IPv6 地址。IPv4 地址必须满足以下要求:
- 每个地址必须是
fdff:1::/64
地址范围内掩码长度为/64
的唯一本地地址 (ULA)。例如fdff:1::1
。 - 每个地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。
如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv6 地址。
- 每个地址必须是
可选:展开高级选项部分。
如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话。
如需启用 MD5 身份验证,请选择启用。如果启用,则系统会使用 MD5 身份验证对 Cloud Router 路由器与其对等方之间的 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。
点击保存并继续。
针对网关中配置的其余隧道重复上述步骤。对于每个隧道,请使用不同的 Cloud Router BGP IP 地址和 BGP 对等 IP 地址。
点击保存 BGP 配置。
gcloud
在本部分中,您将为每个高可用性 VPN 隧道配置两个接口和 BGP 对等端。下表简要介绍了这些接口和对等方。同时介绍了 IP 地址范围与为每个接口指定的对等 IP 地址之间的关系。
例如,系统为 router-1
的第一个接口分配了 IPv4 地址 169.254.0.1
。系统会为 router-1
的第二个接口分配 IPv6 地址 fdff:1::1
。另一个 Cloud Router router-2
是 router-1
的 BGP 对等端。系统为 router-2
的第一个接口分配了 169.254.0.2
,这是 IPv4 子网 169.254.0.0/30
中的第二个主机。系统为 router-2
的第二个接口分配了 fdff:1::2
,这是 IPv6 子网 fdff:1::/126
中的第二个主机。因此,router-1
的对等 IPv4 BGP 地址为 169.254.0.2
,其对等 BGP 对等 IPv6 地址为 fdff:1::2
。router-2
的对等 IPv4 BGP 地址为 169.254.0.1
,其对等 BGP 对等 IPv6 地址为 fdff:1::1
。
路由器 | 接口名称 | BGP IP 地址 | 对等 IP 地址 | 对等 ASN |
---|---|---|---|---|
router-1 | if-tunnel-a-to-b-if-0_ipv4 | 169.254.0.1/30 | 169.254.0.2 | 65002 |
router-1 | if-tunnel-a-to-b-if-0_ipv6 | fdff:1::1/126 | fdff:1::2 | 65002 |
router-1 | if-tunnel-a-to-b-if-1_ipv4 | 169.254.1.1/30 | 169.254.1.2 | 65002 |
router-1 | if-tunnel-a-to-b-if-1_ipv6 | fdff:1::1:1/126 | fdff:1::1:2 | 65002 |
router-2 | if-tunnel-b-to-a-if-0_ipv4 | 169.254.0.2/30 | 169.254.0.1 | 65001 |
router-2 | if-tunnel-b-to-a-if-0_ipv6 | fdff:1::2/126 | fdff:1::1 | 65001 |
router-2 | if-tunnel-b-to-a-if-1_ipv4 | 169.254.1.2/30 | 169.254.1.1 | 65001 |
router-2 | if-tunnel-b-to-a-if-1_ipv6 | fdff:1::1:2/126 | fdff:1::1:1 | 65001 |
如需创建 Cloud Router 接口和 BGP 对等端,请完成以下命令序列。
在
ROUTER_NAME_1
上为隧道TUNNEL_NAME_GW1_IF0
创建接口和 BGP 对等端。这两个接口将
GW_1
的interface 0
上的TUNNEL_NAME_GW1_IF0
连接到GW_2
的interface 0
。在命令中,替换以下内容:
ROUTER_1_INTERFACE_NAME_0_ipv4
和ROUTER_1_INTERFACE_NAME_0_ipv6
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW1_IF0
相关的名称会很有帮助IP_VERSION
:接口的 IPv6 版本,IPV6
或IPV4
。仅当您希望 Google Cloud 自动为接口分配 IPv6 地址时,此参数才是必需的。如果您要手动为此接口分配 IPv6 地址,则可以省略此标志。IPV4_ADDRESS_1
和IPV6_ADDRESS_1
:169.254.0.0/16
或fdff:1::/64
地址范围中尚未使用的 BGP IP 地址;此示例使用169.254.0.1
和fdff:1::1
。如果您省略此标志,并且未手动分配 BGP IP 地址,Google Cloud 会自动为您分配一个地址。MASK_LENGTH
:为接口指定 BGP IPv6 地址时,请指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。为接口指定 IPv6 地址时,请将掩码长度指定为126
。PEER_NAME_GW1_IF0_ipv4
和PEER_NAME_GW1_IF0_ipv6
:描述 IPv4 和 IPv6 BGP 对等端的名称;使用与TUNNEL_NAME_GW1_IF0
相关的名称会很有帮助PEER_IPV4_ADDRESS_1
和PEER_IPV6_ADDRESS_1
:169.254.0.0/16
或fdff:1::/64
IPv6 地址范围中尚未使用的 BGP 地址;此示例使用169.254.0.2
和fdff:1::2
。如果您之前没有为IPV4_ADDRESS_1
和IPV6_ADDRESS_1
分配特定的 BGP 地址,也请省略这些选项,Google Cloud 会自动为您分配一个匹配的 BGP 对等 IP 地址。如果您手动指定了IPV4_ADDRESS_1
和IPV6_ADDRESS_1
,则也必须手动配置这些选项。PEER_ASN_2
:用于ROUTER_NAME_2
上所有接口的 ASN 编号;此示例使用 ASN 编号65002
可选:分配 BGP 标识符范围
当您向 Cloud Router 添加具有 IPv6 地址的第一个接口时,系统会自动为 Cloud Router 分配 BGP 标识符范围。如果您希望为 Cloud Router 定义自己的 BGP 标识符范围,可以创建自己的范围。您也可以稍后修改此范围。
如需了解详情,请参阅配置 Cloud Router 的 BGP 标识符范围。
自动
为
TUNNEL_NAME_GW1_IF0
创建 Cloud Router 接口如需创建具有自动配置的 BGP IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0_ipv4 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION \ --ip-version=IPV4
如需创建具有自动配置的 BGP IPv6 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0_ipv6 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION \ --ip-version=IPV6
为
TUNNEL_NAME_GW1_IF0
创建 BGP 对等端以下示例命令将创建 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0_ipv4 \ --interface=ROUTER_1_INTERFACE_NAME_0_ipv4 \ --peer-asn=PEER_ASN_2 \ --region=REGION \
以下示例命令将创建 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0_ipv6 \ --interface=ROUTER_1_INTERFACE_NAME_0_ipv6 \ --peer-asn=PEER_ASN_2 \ --region=REGION
通过创建两个接口和 BGP 对等端,您可以在同一隧道中并行运行两个 IPv4 BGP 会话和一个 IPv6 BGP 会话。
您无法在此配置中使用 MP-BGP。
手动
为
TUNNEL_NAME_GW1_IF0
创建 Cloud Router 接口如需创建具有手动配置的 BGP IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0_ipv4 \ --ip-address=IPV4_ADDRESS_1 \ --mask-length=30 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION
如需创建具有手动配置的 BGP IPv6 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_0_ipv6 \ --ip-address=IPV6_ADDRESS_1 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW1_IF0 \ --region=REGION \
为
TUNNEL_NAME_GW1_IF0
创建 BGP 对等端以下示例命令将创建 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0_ipv4 \ --interface=ROUTER_1_INTERFACE_NAME_0_ipv4 \ --peer-ip-address=PEER_IPV4_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION \
以下命令将创建 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF0_ipv6 \ --interface=ROUTER_1_INTERFACE_NAME_0_ipv6 \ --peer-ip-address=PEER_IPV6_ADDRESS_1 \ --peer-asn=PEER_ASN_2 \ --region=REGION
通过创建两个接口和 BGP 对等端,您可以在同一隧道中并行运行两个 IPv4 BGP 会话和 IPv6 BGP 会话。
您无法在此配置中使用 MP-BGP。
在
ROUTER_NAME_1
上为隧道TUNNEL_NAME_GW1_IF1
创建接口和 BGP 对等端。这两个接口将
GW_1
的interface 1
上的TUNNEL_NAME_GW1_IF1
连接到GW_2
的interface 1
。在以下命令中,替换以下选项:
ROUTER_1_INTERFACE_NAME_1_ipv4
和ROUTER_1_INTERFACE_NAME_1_ipv6
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW1_IF1
相关的名称会很有帮助IP_VERSION
:接口的版本,IPV6
或IPV4
。如果您未指定此项,则默认设置为IPV4
。仅当您希望 Google Cloud 自动为接口分配 IPv6 地址时,此参数才是必需的。如果要手动为此接口分配 IPv4 或 IPv6 地址,则可以忽略此标志。IPV4_ADDRESS_2
或IPV6_ADDRESS_2
:169.254.0.0/16
或fdff:1::/64
IPv6 地址范围内尚未使用的 BGP IPv4 或 IPv6 地址;此示例使用169.254.1.1
和/或fdff:1::1:1
。如果您忽略此标志,并且未手动分配 BGP IPv4 或 IPv6 地址,则 Google Cloud 会自动为您分配一个地址。MASK_LENGTH
:在为接口指定 IPv4 地址时,请指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。为接口指定 IPv6 地址时,请将掩码长度指定为64
。PEER_NAME_GW1_IF1_ipv4
和PEER_NAME_GW1_IF0_ipv6
:描述 IPv4 和 IPv6 BGP 对等端的名称;使用与TUNNEL_NAME_GW1_IF1
相关的名称会很有帮助PEER_IPV4_ADDRESS_2
或PEER_IPV6_ADDRESS_2
:169.254.0.0/16
或fdff:1::/64
IPv6 地址范围内尚未使用的 BGP IPv4 或 IPv6 地址;此示例使用169.254.1.2
和fdff:1::1:2
。如果您没有专门分配 IPv4 或 IPv6 地址(IPV4_ADDRESS_2
或IPV6_ADDRESS_2
),则忽略此选项,Google Cloud 会自动为您分配一个匹配的 BGP 对等 IPv4 或 IPv6 地址。如果您手动指定了IPV4_ADDRESS_2
或IPV6_ADDRESS_2
,则也必须手动配置此选项。PEER_ASN_2
:用于其他 Cloud Router 路由器上所有接口的 ASN 编号ROUTER_NAME_2
;此示例使用 ASN 编号65002
AUTHENTICATION_KEY_2
:用于在PEER_NAME_GW1_IF1
上进行 MD5 身份验证的密钥;如需详细了解此可选功能,请参阅使用 MD5 身份验证
自动
为
TUNNEL_NAME_GW1_IF1
创建 Cloud Router 接口如需创建具有自动配置的 IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1_ipv4 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION \ --ip-version=IPV4
如需创建具有自动配置的 IPv6 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1_ipv6 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION \ --ip-version=IPV6
为
TUNNEL_NAME_GW1_IF1
创建 BGP 对等端以下示例命令将创建一个 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1_ipv4 \ --interface=ROUTER_1_INTERFACE_NAME_1_ipv4 \ --peer-ip-address=PEER_IPV4_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION
以下示例命令将创建一个 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1_ipv6 \ --interface=ROUTER_1_INTERFACE_NAME_1_ipv6 \ --peer-ip-address=PEER_IPV6_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION
通过创建两个接口和 BGP 对等端,您可以在同一隧道中并行运行两个 IPv4 BGP 会话和 IPv6 BGP 会话。
您无法在此配置中使用 MP-BGP。
手动
为
TUNNEL_NAME_GW1_IF1
创建 Cloud Router 接口如需创建具有手动配置的 IPv4 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1_ipv4 \ --ip-address=IPV4_ADDRESS_2 \ --mask-length=30 \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION
如需创建具有手动配置的 IPv6 地址的接口,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_1_INTERFACE_NAME_1_ipv6 \ --ip-address=IPV6_ADDRESS_2 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW1_IF1 \ --region=REGION
为
TUNNEL_NAME_GW1_IF1
创建 BGP 对等端以下示例命令将创建一个 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1_ipv4 \ --interface=ROUTER_1_INTERFACE_NAME_1_ipv4 \ --peer-ip-address=PEER_IPV4_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION
以下示例命令将创建一个 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_1 \ --peer-name=PEER_NAME_GW1_IF1_ipv6 \ --interface=ROUTER_1_INTERFACE_NAME_1_ipv6 \ --peer-ip-address=PEER_IPV6_ADDRESS_2 \ --peer-asn=PEER_ASN_2 \ --region=REGION
通过创建两个接口和 BGP 对等端,您可以在同一隧道中并行运行两个 IPv4 BGP 会话和 IPv6 BGP 会话。
您无法在此配置中使用 MP-BGP。
验证
ROUTER_NAME_1
的设置:gcloud compute routers describe ROUTER_NAME_1 \ --region=REGION
命令输出应如以下示例所示:
bgp: advertisemode: DEFAULT asn: 65001 keepaliveInterval: 20 bgpPeers: — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-a-to-b-if-0_ipv4 ipAddress: 169.254.0.1 name: bgp-peer-tunnel-a-to-b-if-0_ipv4 peerAsn: 65002 peerIpAddress: 169.254.0.2 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-a-to-b-if-1_ipv4 ipAddress: 169.254.1.1 name: bgp-peer-tunnel-a-to-b-if-1_ipv4 peerAsn: 65002 peerIpAddress: 169.254.1.2 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-a-to-b-if-0_ipv6 ipAddress: fdff:1::1 name: bgp-peer-tunnel-a-to-b-if-0_ipv6 peerAsn: 65002 peerIpAddress: fdff:1::2 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-a-to-b-if-1_ipv6 ipAddress: fdff:1::1 name: bgp-peer-tunnel-a-to-b-if-1_ipv6 peerAsn: 65002 peerIpAddress: fdff:1::2 creationTimestamp: '2021-10-19T14:31:52.639-07:00' id: '4047683710114914215' interfaces: — ipRange: 169.254.0.1/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0 name: if-tunnel-a-to-b-if-0 — ipRange: 169.254.1.1/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0 name: if-tunnel-a-to-b-if-0 — ipRange: fdff:1::1/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1 name: if-tunnel-a-to-b-if-1 — ipRange: fdff:1::1:1/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1 name: if-tunnel-a-to-b-if-1 kind: compute#router name: router-a network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
在
ROUTER_NAME_2
上为隧道TUNNEL_NAME_GW2_IF0
创建接口和 BGP 对等端。这两个接口将
GW_2
的interface 0
上的TUNNEL_NAME_GW2_IF0
连接到GW_1
的interface 0
。您必须手动配置此 Cloud Router 上的接口和 BGP 对等互连地址,因为已在另一个 Cloud Router
ROUTER_NAME_1
上配置了相应的地址。在命令中,替换以下内容:
ROUTER_2_INTERFACE_NAME_0_ipv4
和ROUTER_2_INTERFACE_NAME_0<_ipv6
:Cloud Router 接口名称;使用与TUNNEL_NAME_GW2_IF0
相关的名称会很有帮助IPV4_ADDRESS_3
和IPV6_ADDRESS_3
:之前用于此网关和接口的 BGP IPv4 和 IPv6 地址。如果您在ROUTER_NAME_1
上为TUNNEL_NAME_GW1_IF0
创建接口和 BGP 对等端时自动分配了对等 IPv4 和 IPv6 地址,则必须将分配的地址指定为IPV4_ADDRESS_3
和IPV6_ADDRESS_3
。如需了解 Google Cloud 分配了哪些地址,请运行gcloud compute routers describe ROUTER_NAME_1
命令。在 BGP 对等端的输出中,使用peerIpAddress
字段中显示的值。 此示例使用了169.254.0.2
和fdff:1::2
。MASK_LENGTH
:对于具有 IPv4 地址的接口,请指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。对于具有 IPv6 地址的接口,请将掩码长度指定为64
。PEER_NAME_GW2_IF0_ipv4
和PEER_NAME_GW2_IF0_ipv6
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW2_IF0
相关的名称会很有帮助PEER_IPV4_ADDRESS_3
和PEER_IPV6_ADDRESS_3
:您之前在配置第一个网关和接口时使用的 BGP IPv4 或 IPv6 地址。运行gcloud compute routers describe ROUTER_NAME_1
,并使用您为TUNNEL_NAME_GW1_IF0
创建的 BGP 对等端的ipAddress
字段中显示的值。此示例使用了169.254.0.1
和fdff:1::1
。PEER_ASN_1
:用于ROUTER_NAME_1
上所有接口的 ASN 编号,该编号已提前设置;此示例使用 ASN 编号65001
为
TUNNEL_NAME_GW2_IF0
创建 Cloud Router 接口如需创建接口并手动配置其 IPv4 地址,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_2 \ --interface-name=ROUTER_2_INTERFACE_NAME_0 \ --ip-address=IPV4_ADDRESS_3 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF0 \ --region=REGION
如需创建接口并手动配置其 IPv6 地址,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_1 \ --interface-name=ROUTER_2_INTERFACE_NAME_0 \ --ip-address=IPV6_ADDRESS_3 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF0 \ --region=REGION \
为
TUNNEL_NAME_GW2_IF0
创建 BGP 对等端以下示例命令将创建 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0_ipv4 \ --interface=ROUTER_2_INTERFACE_NAME_0_ipv4 \ --peer-ip-address=PEER_IPV4_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION
以下示例命令将创建 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF0_ipv6 \ --interface=ROUTER_2_INTERFACE_NAME_0_ipv6 \ --peer-ip-address=PEER_IPV6_ADDRESS_3 \ --peer-asn=PEER_ASN_1 \ --region=REGION
通过创建两个接口和 BGP 对等端,您可以在同一隧道中并行运行两个 IPv4 BGP 会话和一个 IPv6 BGP 会话。
您无法在此配置中使用 MP-BGP。
在
ROUTER_NAME_2
上为隧道TUNNEL_NAME_GW2_IF1
创建接口和 BGP 对等端。这两个接口将
GW_2
的interface 0
上的TUNNEL_NAME_GW2_IF0
连接到GW_1
的interface 0
。您必须手动配置此 Cloud Router 上的接口和 BGP 对等互连地址,因为已在另一个 Cloud Router
ROUTER_NAME_1
上配置了相应的地址。这两个接口将
GW_2
的interface 1
上的TUNNEL_NAME_GW2_IF1
连接到GW_1
的interface 1
。在以下命令中,替换以下选项:
ROUTER_2_INTERFACE_NAME_1_ipv4
和ROUTER_2_INTERFACE_NAME_1_ipv6
:Cloud Router 接口的名称;使用与TUNNEL_NAME_GW2_IF1
相关的名称会很有帮助IPV4_ADDRESS_4
和IPV6_ADDRESS_4
:之前用于此网关和接口的 BGP IPv4 和 IPv6 地址。如果您在ROUTER_NAME_1
上为TUNNEL_NAME_GW1_IF1
创建接口和 BGP 对等端时自动分配了对等 BGP IP 地址,则必须手动将分配的这些地址指定为IPV4_ADDRESS_4
和IPV6_ADDRESS_4
。如需了解 Google Cloud 分配了哪些地址,请运行gcloud compute routers describe ROUTER_NAME_1
命令。在 BGP 对等端的输出中,使用peerIpAddress
字段中显示的值。此示例使用了169.254.1.2
和fdff:1::1:2
。MASK_LENGTH
:对于具有 IPv4 地址的接口,请指定30
,因为 Cloud Router 路由器必须使用同一169.254.0.0/16
IPv4 地址范围内的唯一/30
CIDR。对于具有 IPv6 地址的接口,请将掩码长度指定为64
。PEER_NAME_GW2_IF1_ipv4
和PEER_NAME_GW2_IF1_ipv6
:描述 BGP 对等端的名称;使用与TUNNEL_NAME_GW2_IF1
相关的名称会很有帮助PEER_IPV4_ADDRESS_4
和PEER_IPV6_ADDRESS_4
:您在配置第一个网关和接口时指定为IPV4_ADDRESS_2
和IPV6_ADDRESS_2
的 IP 地址。运行gcloud compute routers describe ROUTER_NAME_1
,并使用您为TUNNEL_NAME_GW2_IF1
创建的 BGP 对等端的ipAddress
字段中显示的值。此示例使用了169.254.1.1
和fdff:1::1:1
。PEER_ASN_1
:用于ROUTER_NAME_1
上所有接口的 ASN 编号,该编号已提前设置;此示例使用 ASN 编号65001
为
TUNNEL_NAME_GW2_IF1
创建 Cloud Router 接口如需创建接口并手动配置其 IPv4 地址,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_2 \ --interface-name=ROUTER_2_INTERFACE_NAME_1 \ --ip-address=IPV4_ADDRESS_4 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF1 \ --region=REGION
如需创建接口并手动配置其 IPv6 地址,请运行以下命令:
gcloud compute routers add-interface ROUTER_NAME_2 \ --interface-name=ROUTER_2_INTERFACE_NAME_1 \ --ip-address=IPV6_ADDRESS_4 \ --mask-length=MASK_LENGTH \ --vpn-tunnel=TUNNEL_NAME_GW2_IF1 \ --region=REGION
为
TUNNEL_NAME_GW2_IF1
创建 BGP 对等端以下示例命令将创建 IPv4 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1_ipv4 \ --interface=ROUTER_2_INTERFACE_NAME_1_ipv4 \ --peer-ip-address=PEER_IPV4_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION
以下示例命令将创建 IPv6 BGP 对等端:
gcloud compute routers add-bgp-peer ROUTER_NAME_2 \ --peer-name=PEER_NAME_GW2_IF1_ipv6 \ --interface=ROUTER_2_INTERFACE_NAME_1_ipv6 \ --peer-ip-address=PEER_IPV6_ADDRESS_4 \ --peer-asn=PEER_ASN_1 \ --region=REGION
验证
ROUTER_NAME_2
的设置:gcloud compute routers describe ROUTER_NAME_2 \ --region=REGION
命令输出如以下示例所示:
bgp: advertisemode: DEFAULT asn: 65002 keepaliveInterval: 20 bgpPeers: — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-b-to-a-if-0_ipv4 ipAddress: 169.254.0.2 name: bgp-peer-tunnel-b-to-a-if-0_ipv4 peerAsn: 65002 peerIpAddress: 169.254.0.1 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-b-to-a-if-1_ipv4 ipAddress: 169.254.1.2 name: bgp-peer-tunnel-b-to-a-if-1_ipv4 peerAsn: 65001 peerIpAddress: 169.254.1.1 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-b-to-a-if-0_ipv6 ipAddress: fdff:1::2 name: bgp-peer-tunnel-b-to-a-if-0_ipv6 peerAsn: 65001 peerIpAddress: fdff:1::1 — bfd: minReceiveInterval: 1000 minTransmitInterval: 1000 mode: DISABLED multiplier: 5 sessionInitializationMode: DISABLED enable: 'TRUE' interfaceName: if-tunnel-b-to-a-if-1_ipv6 ipAddress: fdff:1::2 name: bgp-peer-tunnel-b-to-a-if-1_ipv6 peerAsn: 65001 peerIpAddress: fdff:1::1 creationTimestamp: '2021-10-19T14:31:52.639-07:00' id: '4047683710114914215' interfaces: — ipRange: 169.254.0.2/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0 name: if-tunnel-b-to-a-if-0 — ipRange: 169.254.1.2/30 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0 name: if-tunnel-b-to-a-if-0 — ipRange: fdff:1::2/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1 name: if-tunnel-b-to-a-if-1 — ipRange: fdff:1::1:2/126 linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1 name: if-tunnel-b-to-a-if-1 kind: compute#router name: router-b network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-b region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b
API
要创建多个 Cloud Router 接口,请使用
routers.patch
方法或routers.update
方法发出PATCH
或UPDATE
请求。PATCH
仅更新您包含的参数。UPDATE
会更新 Cloud Router 的所有参数。您指定的 BGP 地址范围在 VPC 网络的所有区域中的所有 Cloud Router 路由器之间必须唯一。
对每个高可用性 VPN 网关上定义的每个 VPN 隧道重复此步骤和命令。对于高可用性 VPN 网关到高可用性 VPN 部署,这意味着四个高可用性 VPN 隧道配置。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "interfaces": [ { "name": "if-tunnel-a-to-b-if-0_ipv4", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipRange": "169.254.0.1/30" }, { "name": "if-tunnel-a-to-b-if-0_ipv6", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipRange": "fdff:1::1/126" } ] }
以下示例会将一个具有 IPv4 地址的接口和一个具有 IPv6 地址的接口添加到同一
linkedVpnTunnel
。该命令会自动向接口分配 IPv4 和 IPv6 地址:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "interfaces": [ { "name": "if-tunnel-a-to-b-if-0_ipv4", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipVersion": "IPV4" }, { "name": "if-tunnel-a-to-b-if-0_ipv6", "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0", "ipVersion": "IPV6" } ] }
如需向每个 VPN 隧道的 Cloud Router 添加 BGP 对等端,请使用
routers.patch
方法或routers.update
方法发出PATCH
或UPDATE
请求。对每个 VPN 隧道重复此命令,并根据需要更改所有选项。例如:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ { "interfaceName": "if-tunnel-a-to-b-if-0_ipv4", "ipAddress": "169.254.0.1", "name": "bgp-peer-tunnel-a-to-b-if-0_ipv4", "peerAsn": 65002, "peerIpAddress": "169.254.0.2", "advertiseMode": "DEFAULT" }, { "interfaceName": "if-tunnel-a-to-b-if-0_ipv6", "ipAddress": fdff:1::1", "name": "bgp-peer-tunnel-a-to-b-if-0_ipv6", "peerAsn": 65002, "peerIpAddress": "fdff:1::2", "advertiseMode": "DEFAULT" } ] }
验证配置
控制台
如要验证配置,请转到摘要和提醒页面:
gcloud
如需验证 Cloud Router 路由器配置,请参阅创建 BGP 会话中的 gcloud
标签页上的验证步骤。
API
如需验证 Cloud Router 路由器配置,请使用 routers.getRouterStatus
方法发出 GET
请求,并使用空请求正文:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
在单个隧道网关上创建其他隧道。
控制台
如需获得 SLA 承诺的 99.99% 正常运行时间,请在高可用性 VPN 到高可用性 VPN 网关配置的每个端的每个高可用性 VPN 接口上配置隧道。
如果您已在一个高可用性 VPN 网关到另一个高可用性 VPN 网关上配置了一个隧道,但希望获得服务等级协议 (SLA) 承诺的 99.99% 的正常运行时间,则必须再配置一个隧道。
如需配置第二个隧道,请按照添加从高可用性 VPN 网关到另一个高可用性 VPN 网关的隧道中的步骤操作。
设置通告路由的基准优先级(可选)
您创建的 BGP 会话允许每个 Cloud Router 路由器将路由通告到对等网络。通告使用未经修改的基准优先级。
将创建两个相互连接且经过全面配置的高可用性 VPN 网关中所述的配置用于主动-主动路由配置,其中两端的两个隧道的通告路由优先级匹配。省略通告路由优先级 (--advertised-route-priority
) 会导致两个 BGP 对等端的通告路由优先级相同。
对于主动-被动路由配置,您可以通过在添加或更新 BGP 对等方时设置通告路由的优先级 (--advertised-route-priority
) 来控制 Cloud Router 路由器与对等 VPN 网关共享的 to Google Cloud
路由的通告路由优先级。如需创建主动-被动配置,请为一个 BGP 会话及其对应的 VPN 隧道设置比另一个 BGP 会话和 VPN 隧道更高的通告路由优先级。
如需详细了解通告路由的基准优先级,请参阅通告的前缀和优先级。
您还可以使用自定义通告来优化所通告的路由:
- 添加
--advertisement-mode=CUSTOM
标志 (gcloud
) 或advertiseMode: custom
标志 (API)。 - 使用
--set-advertisement-ranges
标志 (gcloud
) 或advertisedIpRanges
标志 (API) 指定 IP 地址范围。
完成配置
在使用新的 Cloud VPN 网关及其关联的 VPN 隧道之前,请完成以下步骤:
- 在 Google Cloud 中为您的 VPC 网络配置防火墙规则。
- 检查您的 VPN 隧道的状态。注意:此步骤包括检查高可用性 VPN 网关的高可用性配置。
后续步骤
- 如需控制可用于对等 VPN 网关的 IP 地址,请参阅限制对等 VPN 网关的 IP 地址。
- 如需使用高可用性和高吞吐量场景或多个子网方案,请参阅高级配置。
- 如需帮助解决使用 Cloud VPN 时可能会遇到的常见问题,请参阅问题排查。