10.A.0.0/16
CIDR の 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/16
VPC 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/16
IP にアクセスできないため)。
VPC B に使用されるルート テーブルに追加し192.168.0.0/16
、ピア接続のターゲットを設定しようとしました。これは機能しません。VPC 192.168.0.0/16
A の 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/16
A の 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