在 IPv4 或 IPv6 BGP 会话中配置多协议 BGP
通过 Cloud Router,您可以在使用多协议 BGP (MP-BGP) 的各个边界网关协议 (BGP) 会话中启用和停用 IPv4 或 IPv6 路由交换。借助 MP-BGP,您可以通过 IPv4 BGP 会话交换 IPv6 路由,或通过 IPv6 BGP 会话交换 IPv4 路由。IPv6 BGP 会话支持目前为预览版。
如需在单个 BGP 会话中交换 IPv4 和 IPv6 流量,您必须在 Network Connectivity 产品(例如高可用性 VPN 或专用互连)中选择 IPv4 和 IPv6(双栈)堆栈类型。
通过修改 BGP 对等方的配置,您可以在特定 BGP 会话中启用或停用 IPv4 或 IPv6 路由交换。如果您需要排查特定于 IPv4 或 IPv6 的网络问题,则停用 IPv4 或 IPv6 路由交换非常有用。另一个原因可能是,您希望在双栈高可用性 VPN 隧道中暂时停用流量,而不删除隧道和网关。
如果您在 BGP 会话中停用 IPv4 或 IPv6 路由交换,然后重新启用它,则系统不会弃用之前分配的 IPv4 或 IPv6 下一个跃点地址。如果 BGP 会话再次启用了 IPv4 或 IPv6,则可以重复使用这些 IPv4 或 IPv6 下一个跃点地址。
准备工作
gcloud
如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 Google Cloud CLI 的最新版本。
- 设置默认区域和可用区。
API
如果希望使用本指南中的 API 示例,请设置 API 访问权限。
配置 IPv4 BGP 会话
本部分介绍如何修改 IPv4 BGP 会话的配置。
您无法在 IPv4 BGP 会话中停用 IPv4 路由交换。
启用 IPv6 路由交换
此过程假定您将修改已经为高可用性 VPN 隧道或 VLAN 连接创建的 BGP IPv4 会话。
此外,还假设您已将关联的高可用性 VPN 网关或 VLAN 连接配置为使用 IPv4 和 IPv6 双栈,具体如以下步骤所述:
如需在现有 IPv4 BGP 会话中启用 IPv6 路由交换,请执行以下步骤。
控制台
对于高可用性 VPN
如需为高可用性 VPN 配置 BGP 会话,请在 Google Cloud 控制台中转到 Cloud VPN 隧道页面。
选择待更新 BGP 会话所属的 Cloud VPN 隧道。
在 VPN 隧道详情页面上,点击修改 BGP 会话。
如需启用 IPv6 路由交换,请点击启用 IPv6 流量切换开关。
可选:您可以手动或自动为高可用性 VPN 隧道分配 IPv6 下一个跃点地址。
- 如需自动分配地址,请选择自动。
- 如需手动分配地址,请执行以下操作:
- 选择手动。
- 输入 Cloud Router 路由器 IPv6 下一个跃点的 IPv6 地址。此地址是 Cloud Router 用于此 Cloud VPN 隧道的 IPv6 地址。此 IPv6 地址会通告为 Cloud Router 向其 BGP 对等方通告的 IPv6 路由的下一个跃点。该地址必须在
2600:2d00:0:2::/63
范围内。 - 输入对等 IPv6 下一个跃点的 IPv6 地址。此地址是本地路由器或对等 VPN 设备的 IPv6 地址。此 IPv6 地址是从 Cloud Router 的 BGP 对等方获知的 IPv6 路由的下一个跃点。该地址必须在
2600:2d00:0:2::/63
范围内。
点击保存并继续。
对于专用互连
如需为专用互连配置 BGP 会话,请转到 VLAN 连接页面。
选择待更新 BGP 会话所属的 VLAN 连接。
在 VLAN 连接详情页面上,点击修改 BGP 会话。
如需启用 IPv6 路由交换,请点击启用 IPv6 流量切换开关。
点击保存并继续。 注意:您无法在 Cloud Interconnect 中更改 IPv6 下一个跃点配置。Google Cloud 会自动将 IPv6 下一个跃点地址分配给 VLAN 连接。
gcloud
运行 update-bgp-peer
命令。使用 --enable-ipv6
标志允许 BGP 会话交换 IPv6 路由,如以下示例所示:
gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --enable-ipv6
(可选)为高可用性 VPN 隧道中使用的 BGP 会话启用 IPv6 流量时,您可以指定 IPv6 下一个跃点地址:
gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --enable-ipv6 \ --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS \ --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS
替换以下内容:
IPV6_NEXTHOP_ADDRESS
:Cloud Router 用于此 Cloud VPN 隧道的 IPv6 地址。此 IPv6 地址会通告为 Cloud Router 向其 BGP 对等方通告的 IPv6 路由的下一个跃点。该地址必须在
2600:2d00:0:2::/63
IPv6 范围内。PEER_IPV6_NEXTHOP_ADDRESS
:本地路由器的 IPv6 地址。此 IPv6 地址是从 Cloud Router 的 BGP 对等方获知的 IPv6 路由的下一个跃点。该地址必须在2600:2d00:0:2::/63
范围内。
如果您未指定下一个跃点地址,则 Google Cloud 会自动为您分配 2600:2d00:0:2::/63
IPv6 范围内的未使用地址。
API
使用 routers.patch
方法更新 bgpPeers[]
字段。
bgpPeers[]
字段接受 BGP 对等方数组。PATCH
此字段时,您将使用请求中包含的新数组覆盖现有 BGP 对等方数组。
发送
GET
请求以获取路由器的当前 BGP 对等方数组。如需了解详情,请参阅查看 BGP 会话配置。发送带有新 BGP 对等方数组的
PATCH
请求。对于要在 BGP 会话中启用 IPv6 的每个 BGP 对等方,请将bgpPeers[].enableIpv6
设置为TRUE
。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ BGP_PEERS ] }
替换以下内容:
PROJECT_ID
:Cloud Router 路由器所属的项目REGION
:Cloud Router 路由器所在的区域ROUTER_NAME
:Cloud Router 路由器的名称BGP_PEERS
:新 BGP 对等方数组的内容
以下示例在第一个 BGP 对等方的会话中启用 IPv6:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "169.254.10.1", "peerIpAddress": "169.254.10.2", "peerAsn": 64512, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv6": true }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "169.254.20.1", "peerIpAddress": "169.254.20.2", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv6": false " }
此外,如果您要为高可用性 VPN 隧道中使用的 BGP 会话启用 IPv6 流量,则可以指定 IPv6 下一个跃点地址:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "169.254.10.1", "peerIpAddress": "169.254.10.2", "peerAsn": 64512, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv6": true, "ipv6NexthopAddress": "2600:2d00:0:0:0:0:1:5", "peerIpv6NexthopAddress": "2600:2d00:0:0:0:0:1:6" }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "169.254.20.1", "peerIpAddress": "169.254.20.2", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv6": false }
使用
ipv6NexthopAddress
和peerIpv6NexthopAddress
的值配置本地路由器或对等 VPN 设备。如需查看高可用性 VPN 和对等 VPN 设备的示例配置,请参阅为 IPv4 和 IPv6 流量设置第三方 VPN。
如需查看专用互连和本地路由器的示例配置,请参阅为 IPv4 和 IPv6 流量设置本地路由器。
停用 IPv6 路由交换
此过程假设您要修改先前启用了 IPv6 的现有 BGP IPv4 会话。
控制台
对于高可用性 VPN
在 Google Cloud 控制台中,进入 Cloud VPN 隧道页面。
选择待更新 BGP 会话所属的 Cloud VPN 隧道。
在 VPN 隧道详情页面上,点击修改 BGP 会话。
如需停用 IPv6 路由交换,请点击启用 IPv6 流量切换开关。
点击保存并继续。
对于专用互连
在 Google Cloud 控制台中,转到 VLAN 连接页面。
选择待更新 BGP 会话所属的 VLAN 连接。
在 VLAN 连接详情页面上,点击修改 BGP 会话。
如需停用 IPv6 路由交换,请点击启用 IPv6 流量切换开关。
点击保存并继续。
gcloud
运行 update-bgp-peer 命令。使用 --no-enable-ipv6 标志来阻止 BGP 会话交换 IPv6 路由,如以下示例所示:
gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --no-enable-ipv6
API
使用 routers.patch
方法更新 bgpPeers[]
字段。
bgpPeers[]
字段接受 BGP 对等方数组。PATCH
此字段时,您将使用请求中包含的新数组覆盖现有 BGP 对等方数组。
发送
GET
请求以获取路由器的当前 BGP 对等方数组。如需了解详情,请参阅查看 BGP 会话配置。发送带有新 BGP 对等方数组的
PATCH
请求。针对要在 BGP 会话中停用 IPv6 的每个 BGP 对等方,将bgpPeers[].enableIpv6
设置为FALSE
。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ BGP_PEERS ] }
替换以下内容:
PROJECT_ID
:Cloud Router 路由器所属的项目REGION
:Cloud Router 路由器所在的区域ROUTER_NAME
:Cloud Router 路由器的名称BGP_PEERS
:新 BGP 对等方数组的内容
以下示例在第一个 BGP 对等方的会话中禁用 IPv6:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "169.254.10.1", "peerIpAddress": "169.254.10.2", "peerAsn": 64512, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv6": false }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "169.254.20.1", "peerIpAddress": "169.254.20.2", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv6": false }
配置 IPv6 BGP 会话
本部分介绍如何修改 IPv6 BGP 会话的配置。
您无法在 IPv6 BGP 会话中停用 IPv6 路由交换。
启用通过 IPv6 BGP 会话进行的 IPv4 路由交换
此过程假定您将修改已经为高可用性 VPN 隧道或 VLAN 连接创建的 BGP IPv6 会话。
此外,还假设您已经按照以下过程所述配置了 IPv4 和 IPv6(双栈)高可用性 VPN 网关或 VLAN 连接:
如需在现有 IPv6 BGP 会话中启用 IPv4 路由交换,请执行以下步骤。
gcloud
运行 update-bgp-peer
命令。使用 --enable-ipv4
标志允许 BGP 会话交换 IPv4 路由,如以下示例所示:
gcloud beta compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --enable-ipv4
(可选)为高可用性 VPN 隧道中使用的 IPv6 BGP 会话启用 IPv4 流量时,您可以指定 IPv4 下一个跃点地址:
gcloud beta compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --enable-ipv4 \ --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS \ --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS
替换以下内容:
IPV4_NEXTHOP_ADDRESS
:Cloud Router 用于此高可用性 VPN 隧道的 IPv4 地址。此 IPv4 地址作为 Cloud Router 向其 BGP 对等方通告的 IPv4 路由的下一个跃点通告。该地址必须在 IPv4 链路本地范围169.254.0.0/16
内。PEER_IPV4_NEXTHOP_ADDRESS
:本地路由器的 IPv4 地址。此 IPv4 地址是从 Cloud Router 的 BGP 对等方获知的 IPv4 路由的下一个跃点。该地址必须在 IPv4 链路本地范围169.254.0.0/16
内。如果您未指定下一个跃点地址,则 Google Cloud 会自动为您分配 IPv4 链路本地
169.254.0.0/16
范围内的未使用地址。
API
使用 routers.patch
方法更新 bgpPeers[]
字段。
bgpPeers[]
字段接受 BGP 对等方数组。PATCH
此字段时,您将使用请求中包含的新数组覆盖现有 BGP 对等方数组。
发送
GET
请求以获取路由器的当前 BGP 对等方数组。如需了解详情,请参阅查看 BGP 会话配置。发送带有新 BGP 对等方数组的
PATCH
请求。对于要在 BGP 会话中启用 IPv4 的每个 BGP 对等方,请将bgpPeers[].enableIpv4
设置为TRUE
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ BGP_PEERS ] }
替换以下内容:
PROJECT_ID
:Cloud Router 路由器所属的项目REGION
:Cloud Router 路由器所在的区域ROUTER_NAME
:Cloud Router 路由器的名称BGP_PEERS
:新 BGP 对等方数组的内容
以下示例在第一个 BGP 对等方的会话中启用 IPv4:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "fdff:1::1", "peerIpAddress": "fdff:1::2", "peerAsn": 64512, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv4": true }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "fdff:1::3", "peerIpAddress": "fdff:1::4", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv4": false }
此外,如果您要为高可用性 VPN 隧道中使用的 BGP 会话启用 IPv4 流量,则可以指定 IPv4 下一个跃点地址:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "fdff:1::1", "peerIpAddress": "fdff:1::2", "peerAsn": 64512, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv4": true, "ipv4NexthopAddress": "169.254.0.1", "peerIpv4NexthopAddress": "169.254.0.2" }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "fdff:1::3", "peerIpAddress": "fdff:1::4", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv4": false }
停用通过 IPv6 BGP 会话进行的 IPv4 路由交换
此过程假定您要修改先前已交换 IPv4 路由的现有 IPv6 BGP 会话。
gcloud
运行 update-bgp-peer
命令。使用 --no-enable-ipv4
标志阻止 IPv6 BGP 会话交换 IPv4 路由,如以下示例所示:
gcloud beta compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --no-enable-ipv4
API
使用 routers.patch
方法更新 bgpPeers[]
字段。
bgpPeers[]
字段接受 BGP 对等方数组。PATCH
此字段时,您将使用请求中包含的新数组覆盖现有 BGP 对等方数组。
发送
GET
请求以获取路由器的当前 BGP 对等方数组。如需了解详情,请参阅查看 BGP 会话配置。发送带有新 BGP 对等方数组的
PATCH
请求。针对要在 BGP 会话中停用 IPv4 的每个 BGP 对等方,将bgpPeers[].enableIpv4
设置为FALSE
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ BGP_PEERS ] }
替换以下内容:
PROJECT_ID
:Cloud Router 路由器所属的项目REGION
:Cloud Router 路由器所在的区域ROUTER_NAME
:Cloud Router 路由器的名称BGP_PEERS
:新 BGP 对等方数组的内容
以下示例在第一个 BGP 对等方的会话中禁用 IPv4:
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "fdff:1::1", "peerIpAddress": "fdff:1::2", "peerAsn": 64512, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv4": false }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "fdff:1::3", "peerIpAddress": "fdff:1::4", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "DEFAULT", "advertisedGroups": [], "advertisedIpRanges": [], "enable": "TRUE", "enableIpv4": false }
后续步骤
- 如需停用或结束 BGP 会话,请参阅停用或移除 BGP 会话。