重複する CIDR ブロックを持つ VPC を接続するには、セカンダリ CIDR ブロックを追加し、VPC NAT ゲートウェイを作成します。その後、アドレス変換を使用してアドレス競合を解決します。
仕組み
アドレス競合が発生する理由
重複する VPC と vSwitch 内の ECS インスタンスが通信しようとする場合:
ピア VPC の CIDR ブロックを宛先 CIDR ブロックとして設定した場合、トラフィックはまずシステムルートにマッチし、VPC 内で転送されます。ピア VPC には到達しません。
ピア vSwitch の CIDR ブロックを宛先 CIDR ブロックとして設定した場合、既存のシステムルートと同じか、より具体的な宛先 CIDR ブロックを持つカスタムルートを追加することはできません。
NAT ベースのソリューション
セカンダリ IPv4 CIDR ブロックの追加:重複しないセカンダリ CIDR ブロックを両方の VPC に追加し、競合しないプライベート IP アドレスを提供します。
アドレス変換:VPC NAT ゲートウェイを使用して ECS インスタンスのプライベート IP アドレスを変換し、プライベートネットワークのアドレス競合を解決します。
VPC の接続:両方の VPC をトランジットルーターにアタッチし、カスタムルートエントリを設定して、トラフィックが正しく転送されるようにします。
トラフィックパスの例
中国 (杭州) のある企業が、既存の 2 つの VPC を接続しようとしています。しかし、VPC の CIDR ブロックが重複しています。これを解決するため、VPC NAT ゲートウェイを使用してアドレス変換を行います。次に、トラフィックが VPC NAT ゲートウェイに向かうようにルートを設定します。最後に、Cloud Enterprise Network (CEN) インスタンスまたはピアリング接続をデプロイして、プライベートネットワークピアリングを有効にします。
例えば、ECS_A (プライベート IP アドレス:192.168.0.86) が VPC_NATGW_B (プライベート IP アドレス:10.0.0.53) にアクセスする場合を考えます。
ECS_A からのトラフィックは、その vSwitch にバインドされたカスタムルートテーブルのルート設定に従い、VPC NAT ゲートウェイに転送されます。
VPC_NAT_A で設定された SNAT ルールにより、パケットのソース IP が NAT IP アドレス (172.16.0.89) に変換されます。
VPC_A のシステムルートテーブルは、パケットをトランジットルーター TR に転送します。TR はそれを VPC_B に転送し、最終的に VPC_B 内の VPC NAT ゲートウェイに転送します。
VPC_NATGW_B の DNAT ルールにより、宛先 IP アドレスが ECS_B に変換されます。その後、トラフィックはターゲットサーバーに転送され、ECS インスタンス間の通信が可能になります。
ECS_B が応答パケットを送信すると、セッションマッピングテーブルが元のプライベート IP アドレスを復元します。その後、ルーティングによってパケットが ECS_A に配信されます。
操作手順
トラフィックパスのシナリオを例として説明します。
ステップ 1:セカンダリ CIDR ブロックの設定
セカンダリ CIDR ブロックを追加します。
VPC コンソールに移動します。トップメニューバーで、ご利用の VPC が存在するリージョンを選択します。
対象の VPC ID をクリックし、CIDR タブを選択し、IPv4 CIDR の追加 をクリックして、VPC_A と VPC_B にそれぞれセカンダリ CIDR ブロックを追加します。
vSwitch を作成します: vSwitch 作成ページに移動します。
VPC: VPC_A および VPC_B の vSwitch を作成します。
IPv4 CIDR ブロック:追加したセカンダリ IPv4 CIDR ブロックを選択します。
ステップ 2:VPC NAT ゲートウェイの設定
VPC NAT ゲートウェイを作成し、SNAT エントリと DNAT エントリを設定します。これにより、各 VPC 内の ECS インスタンスのプライベート IP アドレスが NAT IP アドレスに変換され、アドレス競合が解決されます。
VPC NAT ゲートウェイを作成します: VPC NAT ゲートウェイ購入ページに移動します。
リージョン:VPC が配置されているリージョンを選択します。
ネットワーク & ゾーン:VPC_A と VPC_B のそれぞれに VPC NAT ゲートウェイを作成し、セカンダリ CIDR ブロックから作成した vSwitch を選択します。
SNAT エントリを設定します:VPC NAT ゲートウェイは、設定された SNAT ルールに基づいて、パケットのソース IP アドレスを NAT IP アドレスに変換します。
VPC NAT ゲートウェイリストページに移動します。トップメニューバーで、ご利用の VPC NAT ゲートウェイが存在するリージョンを選択します。
対象の VPC NAT インスタンスの [SNAT 管理] 列にある 操作 をクリックします。SNAT エントリの作成 をクリックします。
SNAT エントリ:このトピックでは VPC の指定 を選択しますが、必要に応じて調整できます。
NAT IP アドレスの選択:VPC NAT ゲートウェイのプライベート IP を選択します。
DNAT エントリを設定します:VPC NAT ゲートウェイは、設定された DNAT ルールに基づいて、パケットの宛先 IP アドレスを NAT IP アドレスに変換します。
VPC NAT ゲートウェイリストページに移動します。トップメニューバーで、ご利用の VPC NAT ゲートウェイが存在するリージョンを選択します。
目的の VPC NAT ゲートウェイの 操作 列で[DNAT 管理] をクリックします。DNAT エントリの作成 をクリックします。
NAT IP アドレスの選択:VPC NAT ゲートウェイのプライベート IP を選択します。
プライベート IP アドレスの選択:相互に通信する必要がある VPC 内の ECS インスタンスを選択します。
ポート設定:このトピックでは、サービスが相互接続されていることを確認する方法として SSH サービスを使用します。SSH サービスは、接続指向の TCP プロトコルを使用し、ポート 22 で動作します。したがって、特定のポート のフロントエンドポートとバックエンドポートの両方を 22 に設定し、プロトコルの種類として TCP を選択します。
必要に応じてカスタム DNAT エントリを作成してください。
ステップ 3:VPC の接続
VPC 接続を作成します。
サポートされているリージョンとゾーン。
この例では、同じアカウントおよびリージョン内の VPC を接続します。異なるアカウントまたはリージョン内の VPC については、「リージョン間 VPC ピアリング」または「アカウント間 VPC ピアリング」をご参照ください。
およびCloud Enterprise Network (CEN) 管理コンソールに移動し、CEN インスタンスの作成 をクリックします。CEN のみを作成 と OK を選択します。
作成が成功したら、 をクリックします。
この例では、アドレス競合のある VPC は同じリージョン内にあります。そのため、リージョン内接続を作成します。異なるリージョンにある VPC の場合は、リージョン間接続を作成します。
CEN インスタンス ID をクリックすることもできます。その後、[基本情報] タブで、VPC の下にある
をクリックしてリージョン内接続を作成します。ネットワークタイプ:Virtual Private Cloud (VPC) を選択します。
リージョン:VPC が配置されているリージョンを選択します。
リソース所有者 ID:VPC のアカウント所有権に基づいて選択します。このトピックでは 現在のアカウント を選択します。
ネットワーク:VPC_A を選択します。
VSwitch:マルチゾーンでのディザスタリカバリを実現するには、少なくとも 2 つのゾーンを選択します。VPC NAT ゲートウェイが配置されている vSwitch を含める必要があります。
詳細設定:すべて選択します。
作成が完了したら、[接続の作成を続行] をクリックして VPC_B の VPC 接続を作成します。
ルートを設定します。
NAT ゲートウェイはアドレス変換のみを処理し、トラフィックフローは制御しません。VPC 内のルートテーブルが、トラフィックを NAT ゲートウェイに送信するかどうか、および変換後のトラフィックの宛先を決定します。
カスタムルートテーブルを作成し、vSwitch にバインドします。
ルートテーブルページに移動します。トップメニューバーで、ご利用の VPC が存在するリージョンを選択します。
作成 をクリックします。
VPC:VPC_A と VPC_B のルートテーブルをそれぞれ作成します。
リソータイプ:vSwitch を選択します。
「ルートテーブル」ページで、ターゲットカスタムルートテーブルのリソースの関連付け 列の関連付け をクリックして、ECS インスタンスを含む vSwitch を関連付けます。
ルートエントリを設定します:対象のルートテーブル ID をクリックし、カスタムルート タブで ルートエントリの追加 をクリックし、宛先 CIDR ブロックとネクストホップを設定します。
次の表に基づいてルートを設定し、トラフィックが正しく転送されるようにします。
VPC
ルートテーブル
宛先 CIDR ブロック
ネクストホップ
VPC_A
システムルートテーブル
10.0.0.0/24
トランジットルーター
カスタムルートテーブル
10.0.0.0/24
VPC_NATGW_A
VPC_B
システムルートテーブル
172.16.0.0/24
トランジットルーター
カスタムルートテーブル
172.16.0.0/24
VPC_NATGW_B
ステップ 4:結果の確認
ECS_A インスタンスにログインし、次のコマンドを実行します。
# VPC_NATGW_B の NAT IP アドレス (10.0.0.53) にアクセスして ECS_B にリモートログインします
# ECS_B のセキュリティグループがポート 22 へのリクエストを許可していることを確認してください
ssh root@10.0.0.53
# ネットワークインターフェースコントローラー (NIC) の IP アドレスを表示します
ifconfigこれにより、ECS_A が VPC_NATGW_A の NAT IP アドレス (172.16.0.89) を経由して、VPC_NATGW_B の NAT IP アドレス (10.0.0.53) にアクセスしていることが確認できます。これにより、ECS_B へのリモートログインが可能になります。

課金情報
VPC NAT ゲートウェイ:インスタンス料金と容量単位 (CU) 料金が含まれます。
Cloud Enterprise Network (CEN):リージョン内接続の場合、接続料金とトラフィック処理料金が含まれます。リージョン間接続の場合、追加でクロスリージョン帯域幅料金が適用されます。