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

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

如需了解本页面中使用的 Cloud Interconnect 术语,请参阅关键术语

如需了解如何在故障转移方案中创建具有足够容量的冗余互连连接,请参阅最佳做法

要求

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

  • 至少四个 VLAN 连接,每个 Google Cloud 地区两个。即使您的虚拟机 (VM) 实例都在一个地区内,您也必须使用两个地区。如果发生地区范围问题,Google Cloud 可以通过另一个地区将流量重新路由到您的虚拟机。每对 VLAN 连接必须具备各自的 Cloud Router 路由器(两个不同的 Cloud Router 路由器)。

  • 一个区域中的 VLAN 连接必须连接到一个都市区(都市圈)中的一个互连连接,另一个区域的连接必须连接到另一个都市圈中的一个连接。

    如需详细了解如何选择互连连接,请参阅请求连接

  • Virtual Private Cloud (VPC) 网络的动态路由模式必须为全局。通过全局动态路由,Cloud Router 路由器可以通告所有子网,并将学到的路由传播至所有子网(无论子网在哪个地区)。

  • 根据您的硬件和可用性要求,您的本地网络中可能有一个或多个路由器。

示例拓扑

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

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

下图显示了两个不同的都市圈中的四个第 2 层连接。在每个都市圈,每个连接位于不同的边缘可用性网域:Dallas - domain 1Dallas - domain 2Ashburn - domain 1Ashburn - domain 2

Cloud Router 路由器(每个区域一个)位于 us-central1us-east4 区域的 vpc1 网络中。对于第 2 层连接,用户在其本地路由器上配置与每个 Cloud Router 路由器的边界网关协议 (BGP) 会话。

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

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

使用第 3 层实现 99.99% 可用性的冗余连接(点击可放大)。
使用第 3 层实现 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

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

创建 99.99% 拓扑

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

创建 VPC 网络

对于 vpc1 网络,创建一个带有自定义子网的网络,并将其动态路由模式设置为全局。如需了解详情,请参阅 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 路由器,每个区域各一个。对于合作伙伴互连,所有 Cloud Router 路由器的本地 ASN 必须为 16550

控制台

  1. 在 Cloud Console 中,转到创建 Cloud Router 路由器页面。

    转到“创建 Cloud Router 路由器”

  2. 指定 Cloud Router 路由器详细信息:

    • 名称:输入 router-central1 作为第一个 Cloud Router 路由器的名称。
    • 网络:选择 vpc1,这是本地网络扩展到的目标网络的名称。
    • 区域:选择 us-central1,这是配置了 Cloud Router 路由器的区域,如示例拓扑所示。
    • Google ASN:输入 16550,合作伙伴互连需要此设置。
  3. 路由下,选择通告向 Cloud Router 公开的所有子网(默认),然后点击创建

  4. us-east4 区域中再创建一个具有相同特性的 Cloud Router 路由器,名称为 router-east4

gcloud

  1. us-central1 区域的 vpc1 网络中创建 Cloud Router 路由器;使用 ASN 16550

    gcloud compute routers create router-central1 \
      --asn 16550 \
      --network vpc1 \
      --region us-central1
    
  2. us-east4 区域的 vpc1 网络中创建 Cloud Router 路由器;使用 ASN 16550

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

创建 VLAN 连接

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

  • router-central1attach-central-aattach-central-b 相关联
  • router-east4attach-east-aattach-east-b 相关联

控制台

  1. 在 Cloud Console 中,转到互连混合连接页面。

    转到“互连混合连接”

  2. 点击开始使用

  3. 选择合作伙伴互连,然后点击继续

  4. 选择我已经有服务提供方

  5. 选择创建 VLAN 连接冗余对(推荐)

  6. 对于网络区域字段,分别选择 vpc1 网络和 us-central1 区域,用于指定要连接的 VPC 网络和区域。

  7. 指定第一个 VLAN 连接 (VLAN A) 的详细信息:

    • Cloud Router 路由器:选择 router-central1
    • VLAN 连接名称:输入 attach-central-a。此名称显示在 Cloud Console 中,gcloud 命令行工具会使用此名称引用该连接。
  8. 指定第二个 VLAN 连接 (VLAN B) 的详细信息:

    • Cloud Router 路由器:选择 router-central1
    • VLAN 连接名称:输入 attach-central-b
  9. 点击创建以创建连接,此过程需要一些时间才能完成。

  10. 点击确定以查看 VLAN 连接的列表。

  11. 重复上述步骤,再为 us-east4 区域创建一个冗余连接对。

gcloud

  • 创建四个连接:

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

检索配对密钥

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

控制台

  1. 在 Cloud Console 中,转到 VLAN 连接标签页。

    转到“VLAN 连接”

  2. 找到 attach-central-a VLAN 连接,然后点击查看说明

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

  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-central1
    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 连接一个。服务提供商需要每个连接的配对密钥、容量和位置。

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

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

激活 VLAN 连接

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

控制台

  1. 在 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. 在 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-central1 \
         --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-central1
    
  2. 使用本地路由器的 ASN 更新对等 BGP:

      gcloud compute routers update-bgp-peer router-central1 \
         --peer-name auto-ia-bgp-attachment-central-a-c2c53a710bd6c2e \
         --peer-asn ON_PREM_ASN \
         --region us-central1
    

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

后续步骤