为合作伙伴互连建立 99.99% 的可用性配置

在本教程中,您将使用合作伙伴互连创建和配置资源,以实现 99.99% 的可用性。对于生产级应用,如对停机时间容忍度低的任务关键型操作,Google 建议采用该配置。

为了实现 99.99% 可用性,需要以下资源和设置:

  • 至少四个 VLAN 连接,每个 Google Cloud 地区两个。即使您的虚拟机 (VM) 实例都在一个地区内,您也必须使用两个地区。如果发生地区范围问题,Google Cloud 可以通过另一个地区将流量重新路由到您的虚拟机。每个 VLAN 连接必须各自具备 Cloud Router 路由器(也就是四个不同的 Cloud Router 路由器)。
  • 一个地区的连接必须连接到某个都市圈的互连连接,另一个地区的连接必须连接到另一个都市圈的互连连接。如需详细了解如何选择互连位置,请参阅请求连接
  • Virtual Private Cloud (VPC) 网络的动态路由模式必须为全局。通过全局动态路由,Cloud Router 路由器可以通告所有子网,并将学到的路由传播至所有子网(无论子网在哪个地区)。
  • 根据您的硬件和可用性要求,您的本地网络中可能有一个或多个路由器。

下面的教程使用以下资源名称、区域和互连位置。根据教程执行操作时,请将这些值替换成您的资源的相应值。

区域 路由器名称 VLAN 连接名称 连接位置 边缘可用性网域
us-central1 router-central-a attach-central-a 达拉斯 1
us-central1 router-central-b attach-central-b 达拉斯 2
us-east4 router-east-a attach-east-a 阿什本 1
us-east4 router-east-b attach-east-b 阿什本 2

以下示例拓扑显示了位于两个都市圈的四个第 2 层连接。在每个都市圈,每个连接位于不同的边缘可用性网域:Dallas - domain 1Dallas - domain 2Ashburn - domain 1Ashburn - domain 2。Cloud Router 路由器(每个 VLAN 连接一个)位于 us-central1us-east4 区域的 vpc1 网络中。对于第 2 层连接,用户在其本地路由器上配置与每个云端路由器的 BGP 会话。

使用第 2 层实现 99.9% 可用性的冗余互连图(点击可放大)
可实现 99.99% 可用性的冗余互连(点击可放大)

与第 2 层拓扑类似,下方第 3 层拓扑显示了位于两个都市圈和不同边缘可用性网域的四个连接。Cloud Router 路由器(每个 VLAN 连接一个)位于 us-central1us-east4 区域的 vpc1 网络中。对于第 3 层连接,由服务提供商配置 BGP 会话。

使用第 3 层实现 99.9% 可用性的冗余互连图(点击可放大)
可实现 99.99% 可用性的冗余互连(点击可放大)

首选路径

为实现 99.99% 可用性,您必须将 VPC 网络的动态路由模式设置为全局。通过全局动态路由,Cloud Router 路由器向 VPC 网络中的所有子网通告路由。但是,Cloud Router 路由器向远程子网(Cloud Router 路由器所在地区以外的子网)通告路由所采用的优先级,低于向本地子网(位于 Cloud Router 路由器所在地区的子网)通告的优先级。如需了解详情,请参阅 Cloud Router 路由器文档中的动态路由模式

在示例拓扑中,VPC 网络的入站流量优先经过 us-central1,因为这些路由的优先级高于 us-east4 区域中的路由。只有当 us-central1 中的连接失败时,流量才会遍历 us-east4

您可以在配置 Cloud Router 路由器的 BGP 会话时更改路由优先级。BGP 会话提供一个选项,供您选择通告路由优先级(一个 MED 值)。值越小,优先级越高。例如,您可为 us-east4 中的 BGP 会话配置较高优先级,使该区域成为首选路径。如需了解详情,请参阅 Cloud Router 路由器文档中的路由指标

过程

以下部分介绍创建前述拓扑的步骤。如需量身定制自己的拓扑,请将示例输入值替换成您的资源相应的值。例如,将 vpc1 网络名称替换成您的 VPC 网络名称。

创建 VPC 网络

对于 vpc1 网络,创建一个带有自定义子网的网络,并将其动态路由模式设置为全局。如需了解详情,请参阅 VPC 文档中的创建带有自定义子网的新 VPC 网络

控制台

  1. 转到 Google Cloud Console 中的“VPC 网络”页面。
    转到“VPC 网络”页面
  2. 点击创建 VPC 网络
  3. 名称字段中,输入 vpc1
  4. 对于子网创建模式,选择自定义
  5. 指定子网的详细信息:
    1. 名称 - 输入 subnet-uscentral1
    2. 区域 - 选择 us-central1
    3. IP 地址范围 - 指定一个 IP 范围,如 192.168.1.0/24。请使用与本地网络不重叠的范围。
  6. 点击添加子网
  7. 指定第二个子网的详细信息:
    1. 名称 - 输入 subnet-useast4
    2. 区域 - 选择 us-east4
    3. IP 地址范围 - 指定一个 IP 范围,如 192.168.2.0/24。请使用与本地网络不重叠的范围。
  8. 动态路由模式部分中,选择全局
  9. 点击创建

gcloud

  1. 创建自定义子网网络。

    gcloud compute networks create vpc1 \
      --subnet-mode custom \
      --bgp-routing-mode global
    
  2. us-central1us-east4 区域指定子网前缀。

    gcloud compute networks subnets create subnet-uscentral1 \
      --network vpc1 \
      --region us-central1 \
      --range 192.168.1.0/24
    
    gcloud compute networks subnets create subnet-useast4 \
      --network vpc1 \
      --region us-east4 \
      --range 192.168.2.0/24
    

创建云端路由器

创建四个 Cloud Router 路由器,每个 VLAN 连接一个。对于合作伙伴互连,所有 Cloud Router 路由器的本地 ASN 必须为 16550。

控制台

  1. 转到 Google Cloud Console 中的“创建 Cloud Router 路由器”页面。
    转到路由器页面
  2. 指定 Cloud Router 路由器详细信息。
    • 名称 - 指定 router-central-a 作为第一个 Cloud Router 路由器的名称。
    • VPC 网络 - 指定 vpc1,这是本地网络扩展到的目标网络的名称。
    • 区域 - 指定 us-central1,这是配置了 Cloud Router 路由器的区域,如示例拓扑所示。
    • Google ASN - 指定 16550,合作伙伴互连需要此设置。
  3. 复制第一个 Cloud Router 路由器,但将名称更改为 router-central-b
  4. us-east4 地区另外创建两个具有相同特性的 Cloud Router 路由器,名称分别为 router-east-arouter-east-b

gcloud

  1. us-central1 地区的 vpc1 网络中创建两个 Cloud Router 路由器。为这两个 Cloud Router 路由器使用 ASN 16550

    gcloud compute routers create router-central-a \
      --asn 16550 \
      --network vpc1 \
      --region us-central1
    
    gcloud compute routers create router-central-b \
     --asn 16550 \
     --network vpc1 \
     --region us-central1
    
  2. us-east4 区域的 vpc1 网络中创建两个 Cloud Router 路由器。为这两个 Cloud Router 路由器使用 ASN 16550

    gcloud compute routers create router-east-a \
     --asn 16550 \
     --network vpc1 \
     --region us-east4
    
    gcloud compute routers create router-east-b \
     --asn 16550 \
     --network vpc1 \
     --region us-east4
    

创建 VLAN 连接

如以下列表所示,创建四个 VLAN 连接,并将其与 Cloud Router 路由器配对:

  • router-central-aattach-central-a 相关联
  • router-central-battach-central-b 相关联
  • router-east-aattach-east-a 相关联
  • router-east-battach-east-b 相关联

控制台

  1. 转到 Google Cloud Console 中的 Cloud Interconnect “VLAN 连接”标签页。
    转到“VLAN 连接”标签页
  2. 选择添加 VLAN 连接
  3. 选择合作伙伴互连以创建专用 VLAN 连接,然后选择继续
  4. 选择我已经有服务提供方
  5. 选择创建具备冗余性的一对 VLAN
  6. 对于网络区域字段,分别选择 vpc1 网络和 us-central1 区域,用于指定要连接的 VPC 网络和区域。
  7. 指定第一个 VLAN 连接的详细信息。
    • Cloud Router 路由器 - 选择 router-centreal-a Cloud Router 路由器。
    • VLAN 连接名称 - 指定 attach-central-a 作为连接名称。此名称显示在控制台中,gcloud 命令行工具会使用此名称引用该连接。
  8. 指定第二个 VLAN 连接的详细信息。
    • Cloud Router 路由器 - 选择 router-centreal-b Cloud Router 路由器。
    • VLAN 连接名称 - 指定 attach-central-b 作为连接名称。
  9. 选择创建以创建连接,此过程需要一些时间才能完成。
  10. 选择确定,返回 VLAN 连接的列表。
  11. 选择添加 VLAN 连接,然后为 us-east4 地区创建另一对冗余的连接。

gcloud

  1. 创建四个连接。

    gcloud compute interconnects attachments partner create attach-central-a \
      --router router-central-a \
      --region us-central1 \
      --edge-availability-domain availability-domain-1
    
    gcloud compute interconnects attachments partner create attach-central-b \
      --router router-central-b \
      --region us-central1 \
      --edge-availability-domain availability-domain-2
    
    gcloud compute interconnects attachments partner create attach-east-a \
      --router router-east-a \
      --region us-east4 \
      --edge-availability-domain availability-domain-1
    
    gcloud compute interconnects attachments partner create attach-east-b \
      --router router-east-b \
      --region us-east4 \
      --edge-availability-domain availability-domain-2
    

检索配对密钥

在您创建了 VLAN 连接后,GCP 会为每个连接生成配对密钥。通过配对密钥,服务提供商可识别您的 VLAN 连接,而无需知道关于您的项目或资源名称的信息。

控制台

  1. 转到 Google Cloud Console 中的 Cloud Interconnect “VLAN 连接”标签页。
    转到“VLAN 连接”标签页
  2. 找到 attach-central-a VLAN 连接,然后选择查看说明

    控制台会显示连接的配对密钥。复制并记录密钥。请求与服务提供商建立连接时,您需要将这些密钥告知他们。

  3. 选择确定,返回 VLAN 连接列表。

  4. 检索 attach-central-battach-east-aattach-east-b VLAN 连接的配对密钥。

gcloud

  1. 对每个 VLAN 连接运行描述命令,以检索其配对密钥。使用这些密钥请求与服务提供商建立连接。

    gcloud compute interconnects attachments describe attach-central-a \
      --region us-central1
    

    以上命令输出以下信息:

    adminEnabled: false
    edgeAvailabilityDomain: AVAILABILITY_DOMAIN_1
    creationTimestamp: '2017-12-01T08:29:09.886-08:00'
    id: '7976913826166357434'
    kind: compute#interconnectAttachment
    labelFingerprint: 42WmSpB8rSM=
    name: attach-central-a
    pairingKey: 7e51371e-72a3-40b5-b844-2e3efefaee59/us-central1/1
    region: https://www.googleapis.com/compute/v1/projects/customer-project/regions/us-central1
    router: https://www.googleapis.com/compute/v1/projects/customer-project/regions/us-central1/routers/router-central-a
    selfLink: https://www.googleapis.com/compute/v1/projects/customer-project/regions/us-central1/interconnectAttachments/attach-central-a
    state: PENDING_PARTNER
    type: PARTNER
    
  2. 记录每个 VLAN 连接的 pairingKey 值。

向服务提供商请求连接

联系您的服务提供商并请求建立四个连接,每个 VLAN 连接一个。服务提供商将要求您提供每个连接的配对密钥、容量和位置。

一个 GCP 区域中的连接必须连接到同一个位置(城市)。在本示例中,attach-central-aattach-central-b 连接到达拉斯,而 attach-east-aattach-east-b 连接到阿什本。

配置完成后,您会收到一封电子邮件通知,告知您可以激活连接。

激活 VLAN 连接

在服务提供商配置了您的 VLAN 连接后,您必须先将其激活,然后连接才能开始传输流量。如果您已预先激活连接,可跳过此部分。

控制台

  1. 转到 Google Cloud Console 中的“VLAN 连接”标签页。
    转到“VLAN 连接”标签页
  2. 选择 attach-central-a VLAN 连接即可查看其详细信息页面。
  3. 如果连接状态为 Waiting for service provider,请等待您的服务提供商完成 VLAN 配置。
  4. 查看互连信息,以检查是否由预期的服务提供商配置了该 VLAN 连接。
  5. 点击激活以将其激活。
  6. 返回 VLAN 连接页面,激活其他连接。

gcloud

  1. 描述每个 VLAN 连接,以验证您的服务提供商是否已完成配置,如以下示例所示:

    gcloud compute interconnects attachments describe attach-central-a \
      --region us-central1 \
      --format '(name,state,partnerMetadata)'
    
    gcloud compute interconnects attachments describe attach-central-b \
      --region us-central1 \
      --format '(name,state,partnerMetadata)'
    
    gcloud compute interconnects attachments describe attach-east-a \
      --region us-east4 \
      --format '(name,state,partnerMetadata)'
    
     gcloud compute interconnects attachments describe attach-east-b \
      --region us-east4 \
      --format '(name,state,partnerMetadata)'
    

    在服务提供商配置好 VLAN 连接后,连接状态从 PENDING_PARTNER 变成 PENDING_CUSTOMER。如果状态仍为 PENDING_PARTNER,请等待服务提供商完成 VLAN 配置。

  2. 检查 partnerMetadata 字段,验证配置您的 VLAN 连接的是正确的服务提供商。

    如果某个非预期的第三方配置了您的 VLAN 连接,请删除连接,然后创建新连接。新连接将生成新的配对密钥。使用新的配对密钥再次向您的服务提供商请求建立连接。

  3. 如果正确的服务提供商已配置您的 VLAN 连接,请使用 --admin-enabled 标志将其激活,如以下示例所示:

    gcloud compute interconnects attachments partner update attach-central-a \
    --region us-central1 \
    --admin-enabled
    
    gcloud compute interconnects attachments partner update attach-central-b \
    --region us-central1 \
    --admin-enabled
    
    gcloud compute interconnects attachments partner update attach-east-a \
    --region us-east4 \
    --admin-enabled
    
    gcloud compute interconnects attachments partner update attach-east-b \
    --region us-east4 \
    --admin-enabled
    

配置路由器

Google 会在每个 Cloud Router 路由器上自动添加对等 BGP。对于第 2 层连接,您必须将本地 ASN 添加到每个对等 BGP。对于第 3 层连接,您无需执行任何操作;Google 会使用服务提供商的 ASN 自动配置您的 Cloud Router 路由器。

控制台

  1. 转到 Google Cloud Console 中的“VLAN 连接”标签页。
    转到“VLAN 连接”标签页
  2. 选择 attach-central-a VLAN 连接即可查看其详细信息页面。
  3. 点击配置 BGP,以配置与此 VLAN 连接关联的 Cloud Router 路由器。
  4. 对等 ASN 字段中,添加本地路由器的 ASN。
  5. 点击保存并继续
  6. 返回 VLAN 连接页面,为其他 Cloud Router 路由器添加本地 ASN。

gcloud

  1. 为与 attach-central-a VLAN 连接关联的 Cloud Router 路由器运行描述命令。在输出中,找到与 VLAN 连接关联的自动创建对等 BGP 的名称。对等 BGP 的 ipAddresspeerIpAddress 值必须与您的连接的 cloudRouterIpAddresscustomerRouterIpAddress 值匹配。

      gcloud compute routers describe router-central-a \
        --region us-central1
    
    bgp:
      advertiseMode: DEFAULT
      asn: 16550
    bgpPeers:
    — interfaceName: auto-ia-if-attachment-central-a-c2c53a710bd6c2e
      ipAddress: 169.254.67.201
      managementType: MANAGED_BY_ATTACHMENT
      name: auto-ia-bgp-attachment-central-a-c2c53a710bd6c2e
      peerIpAddress: 169.254.67.202
    creationTimestamp: '2018-01-25T07:14:43.068-08:00'
    description: 'test'
    id: '4370996577373014668'
    interfaces:
    — ipRange: 169.254.67.201/29
      linkedInterconnectAttachment: https://www.googleapis.com/compute/alpha/projects/customer-project/regions/us-central1/interconnectAttachments/customer-attachment1-partner
      managementType: MANAGED_BY_ATTACHMENT
      name: auto-ia-if-attachment-central-a-c2c53a710bd6c2e
    kind: compute#router
    name: partner
    network: https://www.googleapis.com/compute/v1/projects/customer-project/global/networks/vpc1
    region: https://www.googleapis.com/compute/v1/projects/customer-project/regions/us-central1
    selfLink: https://www.googleapis.com/compute/v1/projects/customer-project/regions/us-central1/routers/router-central-a
    
  2. 使用本地路由器的 ASN 更新对等 BGP。

      gcloud compute routers update-bgp-peer router-central-a \
        --peer-name auto-ia-bgp-attachment-central-a-c2c53a710bd6c2e \
        --peer-asn [ON-PREM ASN] \
        --region us-central1
    

BGP 会话建立后,您就可以通过服务提供商的网络在 VPC 网络与本地网络之间传输流量了。

后续步骤

  • 如需详细了解每个步骤,请参阅相关的合作伙伴互连方法指南