使用 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 也會對其進行通告。

相關內容