AWS VPC CIDR は 10.0.0.0/8 と 192.168.0.0/16 の両方にあります

AWS VPC CIDR は 10.0.0.0/8 と 192.168.0.0/16 の両方にあります

10.A.0.0/16CIDR の VPC A と CIDR の VPC Bがあります10.B.0.0/16。VPC A と B をピアリングしてルート テーブルを更新し、あるサーバーからある10.B.0.0/16サーバーに ping を実行でき10.A.0.0/16、その逆も可能です。

VPC A 上のアプリケーションも、192.168.0.0/16範囲内の IP の一部を使用します。簡単に変更できるものではありませんが、192.168.0.0/16VPC B から VPC A にアクセスできる必要があります。VPC A は、project-calico を使用する古い Kubernetes クラスターに使用されます。ワーカーノード (ec2 インスタンス) は VPC CIDR ブロック内の IP を取得します10.A.0.0/16が、calico ネットワークはクラスター CIDR 設定で設定され192.168.0.0/16、それらのワーカーノード上のポッド IP はその範囲内で割り当てられます。新しいクラスターは EKS クラスターであり、ポッド IP は VPC の CIDR 範囲から割り当てられます。10.B.0.0/16移行期間中、2 つのクラスターの VPC をピアリングしました。分散 Elixir アプリケーションが実行されており、ポッドはポッド IP アドレスを介して相互にアクセスすることで Erlang クラスターを形成します。現在のピアリングでは、クラスター A のポッドは A と B の両方のポッドにアクセスできますが、クラスター B のポッドは B にしかアクセスできません ( 192.168.0.0/16IP にアクセスできないため)。

VPC B に使用されるルート テーブルに追加し192.168.0.0/16、ピア接続のターゲットを設定しようとしました。これは機能しません。VPC 192.168.0.0/16A の CIDR ブロックに含まれていないためだと思います。

192.168.0.0/16制限があるため、VPC AにセカンダリCIDRとして追加できません。CIDR ブロックの関連付けの制限そして関連する質問制限されていることは理解していますが、なぜ制限されているのでしょうか? RFC1918 では、複数のプライベート アドレス空間の使用については何も言及されていないようです。

また、トランジット ゲートウェイを作成し、両方の VPC を接続し、VPC A 接続をターゲットとするトランジット ゲートウェイ ルート テーブルに静的ルートを追加してみました192.168.0.0/16。しかし、VPC B 内からその範囲に到達することはできません。

ルートテーブル

VPC Aのプライベートサブネットのルートテーブル

10.A.0.0/16    local
10.B.0.0/16    pcx-[VPC A - VPC B peering connection]
0.0.0.0/0      nat-[gateway for cluster A]

VPC B のプライベートサブネットのルートテーブル

10.B.0.0/16    local
10.A.0.0/16    pcx-[VPC A - VPC B peering connection]
192.168.0.0/16 pcx-[VPC A - VPC B peering connection]
0.0.0.0/0      nat-[gateway for cluster B]

もちろん、これは機能しません。VPC 192.168.0.0/16A の CIDR ブロックに含まれておらず、追加することもできないためです。

Node 上でシェルを実行すると、AI は192.168...ポッドに ping でき、私も10.B.0.0ポッドに ping できます。しかし、Node 上のシェルからは BI は10.B.0.0ポッドに ping することしかできません。

同じ VPC 上の両方10.0.0.0/8のCIDR ブロックにピアリングする別の方法はありますか?192.168.0.0/16

関連情報