CIDR ブロックが重複する Virtual Private Cloud (VPC) を接続するには、セカンダリ CIDR ブロックを追加し、VPC NAT Gateway を作成します。ゲートウェイはアドレス変換を使用して IP アドレスの競合を解決します。
仕組み
IP アドレス競合の原因
IP アドレスの競合は、CIDR ブロックが重複する VPC 内の Elastic Compute Service (ECS) インスタンスが相互に通信しようとするときに発生します。
宛先 CIDR ブロックをピア VPC の CIDR ブロックに設定すると、トラフィックはまずシステムルートと照合されます。その後、トラフィックはローカル VPC 内で転送され、ピア VPC に到達できません。
宛先 CIDR ブロックをピア vSwitch の CIDR ブロックに設定した場合、既存のシステムルートと同じか、それより具体的なカスタムルートを作成することはできません。
NAT ソリューション
セカンダリ IPv4 CIDR ブロックの追加:重複しないセカンダリ CIDR ブロックを 2 つの VPC それぞれに追加し、競合しないプライベート IP アドレスを提供します。
アドレス変換:VPC NAT Gateway を使用して ECS インスタンスのプライベート IP アドレスを変換し、IP アドレスの競合を解決します。
VPC 間通信の有効化:VPC を Transit Router (TR) にアタッチし、カスタムルートエントリを設定して、トラフィックが正しく転送されるようにします。
トラフィックパスの例
ある企業が、中国 (杭州) リージョンにある既存の 2 つの VPC の接続を計画していますが、それらの CIDR ブロックは重複しています。この問題を解決するため、同社は VPC NAT Gateway を使用してアドレス変換を行い、ゲートウェイにトラフィックを転送するためのルートを設定します。その後、Cloud Enterprise Network (CEN) またはピアリング接続をデプロイして、プライベートネットワークのピアリングを有効にできます。
この例では、ECS_A (プライベート IP アドレス:192.168.0.86) が VPC_NATGW_B (プライベート IP アドレス:10.0.0.53) にアクセスする方法を示します。
ECS_A の vSwitch にアタッチされたカスタムルートテーブルのルートに基づき、パケットは VPC NAT Gateway に転送されます。
VPC_NAT_A に設定された SNAT ルールに基づき、パケットの送信元 IP アドレスは NAT IP アドレス (172.16.0.89) に変換されます。
VPC_A のシステムルートテーブルのルートに基づき、パケットは TR に転送されます。TR はパケットを VPC_B に転送し、そこで VPC NAT Gateway に到達します。
VPC_NAT_B に設定された DNAT ルールに基づき、パケットの宛先アドレスは ECS_B の IP アドレスに変換されます。その後、パケットは ECS_B に転送され、ECS インスタンス間の通信が可能になります。
ECS_B が応答パケットを送信すると、セッションマッピングテーブルに基づいてアドレス変換が逆に行われ、パケットはルーティングされて ECS_A に配信されます。
操作手順
このトピックでは、トラフィックパスの例で説明したシナリオを使用します。
ステップ 1:セカンダリ CIDR ブロックの設定
セカンダリ CIDR ブロックの追加:
[VPC コンソール] に移動します。上部メニューバーで、VPC のリージョンを選択します。
対象の VPC の ID をクリックし、[CIDR ブロック管理] タブをクリックしてから、[セカンダリ IPv4 CIDR ブロックの追加] をクリックして、VPC_A と VPC_B にセカンダリ CIDR ブロックを追加します。
vSwitch の作成: vSwitch 作成ページに移動します。
Virtual Private Cloud:VPC を選択します。VPC_A 用と VPC_B 用にそれぞれ 1 つずつ vSwitch を作成する必要があります。
IPv4 CIDR ブロック:追加したセカンダリ IPv4 CIDR ブロックを選択します。
ステップ 2:VPC NAT Gateway の設定
VPC NAT Gateway を作成し、SNAT エントリと DNAT エントリを設定します。これにより、各 VPC 内の ECS インスタンスのプライベート IP アドレスが NAT IP アドレスに変換され、アドレスの競合が解決されます。
VPC NAT Gateway を作成します:「」および「VPC NAT Gateway 購入ページ」にアクセスします。
リージョン:VPC がデプロイされているリージョンを選択します。
ネットワークとゾーン:VPC_A 用と VPC_B 用にそれぞれ 1 つずつ VPC NAT Gateway を作成します。各ゲートウェイについて、セカンダリ CIDR ブロックから作成した vSwitch を選択します。
SNAT エントリの設定:VPC NAT Gateway は、設定された SNAT ルールに基づいて、パケットの送信元 IP アドレスを NAT IP アドレスに変換します。
VPC NAT Gateway リストページに移動します。VPC NAT Gateway リストページ。上部のメニューバーで、VPC NAT Gateway のリージョンを選択します。
対象の VPC NAT Gateway インスタンスの [アクション] 列で、[SNAT] 管理をクリックします。[SNAT エントリの作成] をクリックします。
SNAT エントリの粒度:このトピックでは [VPC 粒度] を使用します。必要に応じて変更できます。
NAT IP アドレスの選択:VPC NAT Gateway のプライベート IP アドレスを選択します。
DNAT エントリの設定:VPC NAT Gateway は、DNAT ルールを使用して、データパケットの宛先 IP アドレスを NAT IP アドレスに変換します。
VPC NAT Gateway リストページに移動します。上部のメニューバーで、VPC NAT Gateway のリージョンを選択します。
対象の VPC NAT Gateway インスタンスの [アクション] 列で、[DNAT] 管理をクリックします。[DNAT エントリの作成] をクリックします。
NAT IP アドレスの選択:VPC NAT Gateway のプライベート IP アドレスを選択します。
プライベート IP アドレスの選択:通信を有効にする VPC 内の ECS インスタンスを選択します。
ポート設定:このトピックでは、Secure Shell (SSH) サービスを使用してサービスの相互接続を検証します。SSH サービスは、コネクション型の TCP プロトコルとポート 22 を使用します。したがって、[特定のポート] のフロントエンドポートとバックエンドポートの両方を 22 に設定し、プロトコルタイプを TCP に設定します。
必要に応じて DNAT エントリを作成します。
ステップ 3:VPC の接続
VPC 接続の作成:
トランジットルーターをサポートするリージョンおよびゾーン。
この例では、同一リージョンにあり、同一アカウントに属する VPC を接続する方法を示します。その他のシナリオについて詳しくは、「リージョン間の VPC 間接続」または「アカウント間の VPC 間接続」をご参照ください。
Cloud Enterprise Network コンソールに移動し、[CEN インスタンスの作成] をクリックします。[CEN インスタンスのみ作成] を選択し、[OK] をクリックします。
インスタンスが作成されたら、 をクリックします。
この例では、CIDR ブロックが競合する VPC は同じリージョンにあります。したがって、同一リージョン内接続を作成する必要があります。異なるリージョンの VPC を接続するには、リージョン間接続を作成します。
既存の CEN ID をクリックし、[基本情報] タブの VPC の下にある
をクリックして、同一リージョン内接続を作成することもできます。インスタンスタイプ:Virtual Private Cloud (VPC) を選択します。
リージョン:VPC がデプロイされているリージョンを選択します。
リソース所有者 UID:VPC の所有者を選択します。このトピックでは [マイアカウント] を使用します。
ネットワークインスタンス:VPC_A を選択します。
vSwitch:マルチゾーンのディザスタリカバリを実装するには、少なくとも 2 つのゾーンを選択します。VPC NAT Gateway が配置されている vSwitch を含める必要があります。
詳細設定:すべてのオプションを選択します。
接続が作成されたら、[接続の作成を続行] をクリックして、VPC_B の VPC 接続を作成します。
ルートの設定:
NAT Gateway は IP アドレスを変換するだけで、トラフィックパスを決定するものではありません。VPC のルートテーブルが、トラフィックを NAT Gateway に送信するかどうか、およびアドレス変換後にトラフィックをどこに転送するかを制御します。
カスタムルートテーブルの作成と vSwitch のアタッチ:
ルートテーブルページに移動します。トップメニューバーで、VPC のリージョンを選択します。
[VSwitch の作成] をクリックします。
Virtual Private Cloud:VPC_A 用と VPC_B 用にそれぞれ 1 つずつルートテーブルを作成します。
バインドオブジェクトタイプ:vSwitch を選択します。
[ルートテーブル] ページで、作成したカスタムルートテーブルを見つけます。[リソースのバインド] 列で、[今すぐバインド] をクリックして、ECS インスタンスが配置されている vSwitch をアタッチします。
ルートエントリの設定:対象のルートテーブルの ID をクリックします。[カスタムルートエントリ] タブで、[ルートエントリの作成] をクリックします。宛先 CIDR ブロックとネクストホップを設定します。
トラフィックが正しく転送されるように、次の表の説明に従ってルートを設定します。
Virtual Private Cloud
ルートテーブル
宛先 CIDR ブロック
ネクストホップ
VPC_A
システムルートテーブル
10.0.0.0/24
Transit Router
カスタムルートテーブル
10.0.0.0/24
VPC_NATGW_A
VPC_B
システムルートテーブル
172.16.0.0/24
Transit Router
カスタムルートテーブル
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 アドレスを表示します。
ifconfigECS_A インスタンスが VPC_NATGW_A の NAT IP アドレス (172.16.0.89) を使用して VPC_NATGW_B の NAT IP アドレス (10.0.0.53) にアクセスし、ECS_B インスタンスにリモートログインできることがわかります。

課金
VPC NAT Gateway: インスタンス料金および容量単位 (CU) 料金が課金されます。
Cloud Enterprise Network (CEN):リージョン内接続の場合、接続料金とトラフィック処理料金が課金されます。リージョン間接続の場合、クロスリージョン帯域幅料金も課金されます。