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