使用 BGP 的 AWS 站点到站点 VPN - 如何通过 BGP 公布路由?

使用 BGP 的 AWS 站点到站点 VPN - 如何通过 BGP 公布路由?

我在 AWS 和 GCP 之间配置了冗余站点到站点 VPN,其中包含 2 个 VPN 连接、4 个隧道和 BGP 动态路由。一切正常,隧道两侧的服务器可以互相访问。

我使用 Terraform 做到了这一点,并且如果在 GCP 端我确实配置了所有子网的广告:

  name    = "gcp-to-aws-router"
  project = google_project.aws_gcp_test.project_id
  region  = var.gcp_region
  network = google_compute_network.gcp_aws_vpc.name
  bgp {
    asn               = var.gcp_bgp_asn
    advertise_mode    = "CUSTOM"
    advertised_groups = ["ALL_SUBNETS"]
  }

然后在 AWS 上,我没有做任何特定的事情来宣传路由,我只在我的服务器所在的路由表上启用了路由传播。我没有明确添加任何路由,也没有宣布我的服务器在隧道两侧使用的子网。我只在 AWS 端启用了路由传播。

resource "aws_vpn_gateway_route_propagation" "this" {
  vpn_gateway_id = aws_vpn_gateway.aws_vpg.id
  route_table_id = aws_route.internet_gw_route.route_table_id
   
}

在这里

文档指出:

您可以为路由表启用路由传播,以自动将网络路由传播到路由表。没有关于将本地路由通告到 BGP 的内容。

我不明白 AWS 的路由最终是如何到达 GCP 端的?这是怎么回事?:)

多谢!

答案1

当您将虚拟专用网关 (VGW) 连接到您的 VPC 并且您拥有动态 VPN(使用 BGP 的 VPN)时,AWS 会将所有 VPC CIDR 通告给您的客户网关 (CGW)。

AWS 公布的是 VPC CIDR,而不是来自单个路由表的路由。

如果您的 VPC 具有 CIDR 10.10.0.0/16,则您的 CGW 将获取此 CIDR 作为通告路由。

由于您可以在 VPC 上配置最多 5 个 CIDR,因此每次添加新的 CIDR 时,AWS 也会对其进行宣传。

相关内容