2 つの VPN 接続、4 つのトンネル、BGP ダイナミック ルーティングを使用して、AWS と GCP 間の冗長サイト間 VPN を構成しました。すべてがうまく機能し、トンネルの両側のサーバーは相互にアクセスできます。
私は 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
}
ここに
- https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNRoutingTypes.html
- https://docs.aws.amazon.com/vpn/latest/s2svpn/SetUpVPNConnections.html#vpn-configure-route-tables
ドキュメントには次のように記載されています:
ルート テーブルのルート伝播を有効にすると、ネットワーク ルートがテーブルに自動的に伝播されます。BGP へのローカル ルートのアドバタイズについては何も説明されていません。
AWS からのルートがどのようにして GCP 側に到達するのか理解できません。どのように機能するのでしょうか? :)
どうもありがとう!
答え1
仮想プライベートゲートウェイ (VGW) を VPC に接続し、動的 VPN (BGP を使用するもの) がある場合、AWS はすべての VPC CIDR をカスタマーゲートウェイ (CGW) にアドバタイズします。
AWS は、個々のルートテーブルからのルートではなく、VPC CIDR をアドバタイズします。
VPC の CIDR が 10.10.0.0/16 の場合、CGW はこの CIDR をアドバタイズされたルートとして取得します。
VPC には最大 5 つの CIDR を設定できるため、新しい CIDR を追加するたびに AWS もそれをアドバタイズします。