ルーティングオプションの例 - Amazon Virtual Private Cloud

ルーティングオプションの例

以下のトピックでは、VPC の特定のゲートウェイまたは接続のルーティングについて説明します。

インターネットゲートウェイへのルーティング

サブネットルートテーブル内のルートをインターネットゲートウェイに追加することで、サブネットをパブリックサブネットにすることができます。そのためには、インターネットゲートウェイを作成して VPC にアタッチ後、IPv4 トラフィックの場合は 0.0.0.0/0、IPv6 トラフィックの場合は ::/0 を送信先に指定し、インターネットゲートウェイ ID (igw-xxxxxxxxxxxxxxxxx) のターゲットを指定してルートを追加します。

送信先 ターゲット
0.0.0.0/0 igw-id
::/0 igw-id

詳細については、「インターネットゲートウェイ」を参照してください。

NAT デバイスへのルーティング

プライベートサブネットのインスタンスがインターネットに接続できるようにするには、パブリックサブネットで NAT ゲートウェイを作成するか、NAT インスタンスを起動します。次に、IPv4 インターネットトラフィック (0.0.0.0/0) を NAT デバイスにルーティングするプライベートサブネットのルートテーブルのルートを追加します。

送信先 ターゲット
0.0.0.0/0 nat-gateway-id

また、NAT ゲートウェイを使用するための不要なデータ処理料金を回避したり、特定のトラフィックをプライベートにルーティングしたりするために、他のターゲットへのより具体的なルートを作成することもできます。次の例では、Amazon S3 トラフィック(pl-xxxxxxxx。Amazon S3 の具体的な IP アドレス範囲)はゲートウェイ VPC エンドポイントにルーティングされ、10.25.0.0/16 トラフィックは VPC ピア接続にルーティングされます。pl-xxxxxxxx および 10.25.0.0/16 IP アドレスの範囲は、0.0.0.0/0 よりも具体的です。インスタンスが Amazon S3 またはピア VPC にトラフィックを送信すると、トラフィックはゲートウェイ VPC エンドポイントまたは VPC ピア接続に送信されます。その他のトラフィックはすべて NAT ゲートウェイに送信されます。

送信先 ターゲット
0.0.0.0/0 nat-gateway-id
pl-xxxxxxxx vpce-id
10.25.0.0/16 pcx-id

詳細については、「NAT ゲートウェイ」および「NAT インスタンス」を参照してください。NAT デバイスは IPv6 トラフィックに使用することはできません。

仮想プライベートゲートウェイへのルーティング

AWS Site-to-Site VPN 接続を使用して、VPC 内のインスタンスが自ネットワークと通信できるようにできます。これを行うには、仮想プライベートゲートウェイを作成し、VPC にアタッチします。次に、ネットワークの送信先と仮想プライベートゲートウェイ (vgw-xxxxxxxxxxxxxxxxx) のターゲットを含むルートをサブネットルートテーブルに追加します。

送信先 ターゲット
10.0.0.0/16 vgw-id

その後、Site-to-Site VPN 接続を作成および設定できます。詳細については、AWS Site-to-Site VPN ユーザーガイドの「AWS Site-to-Site VPN とは」および「ルートテーブルと VPN ルートの優先度」を参照してください。

仮想プライベートゲートウェイ上の Site-to-Site VPN 接続は、IPv6 トラフィックをサポートしません。ただし、仮想プライベートゲートウェイを介した AWS Direct Connect 接続への IPv6 トラフィックのルーティングはサポートされています。詳細については、AWS Direct Connect ユーザーガイド を参照してください。

AWS Outposts ローカルゲートウェイへのルーティング

AWS Outposts に関連付けられた VPC 内のサブネットには、ローカルゲートウェイの追加ターゲットタイプを設定できます。宛先アドレス 192.168.10.0/24 のトラフィックをローカルゲートウェイでカスタマーネットワークにルーティングする場合を考えます。これを行うには、宛先ネットワークとローカルゲートウェイ (lgw-xxxx) のターゲットで次のルートを追加します。

送信先 ターゲット
192.168.10.0/24 lgw-id
2002:bc9:1234:1a00::/56 igw-id

Wavelength Zone キャリアゲートウェイへのルーティング

Wavelength Zone にあるサブネットには、キャリアゲートウェイの追加のターゲットタイプを設定できます。すべての非 VPC トラフィックをキャリアネットワークにルーティングするために、キャリアゲートウェイでトラフィックをルーティングする場合を考えてみます。これを行うには、VPC へのキャリアゲートウェイを作成し、アタッチしてから、次のルートを追加します。

送信先 ターゲット
0.0.0.0/0 cagw-id
::/0 cagw-id

VPC ピア接続へのルーティング

VPC ピアリング接続は、プライベート IPv4 アドレスを使用して 2 つの VPC 間でトラフィックをルーティングすることを可能にするネットワーク接続です。どちらの VPC のインスタンスも、同じネットワーク内に存在しているかのように、相互に通信できます。

VPC ピア接続にある VPC 間のトラフィックのルーティングを有効にするには、VPC ピア接続を指す 1 つ以上のサブネットルートテーブルにルートを追加する必要があります。これにより、ピア接続で他の VPC の CIDR ブロックのすべてまたは一部にアクセスできます。同様に、他の VPC の所有者は、自分のサブネットのルートテーブルにルートを追加して、ルーティング対象の VPC にトラフィックを送り返す必要があります。

たとえば、次の情報を持つ 2 つの VPC 間に VPC ピアリング接続 (pcx-11223344556677889) があるとします。

  • VPC A: CIDR ブロックは 10.0.0.0/16 です

  • VPC B: CIDR ブロックは 172.31.0.0/16 です

VPC 間のトラフィックを有効にし、両方の VPC の IPv4 CIDR ブロック全体にアクセスできるようにするには、VPC A のルートテーブルを次のように設定します。

送信先 ターゲット
10.0.0.0/16 ローカル
172.31.0.0/16 pcx-11223344556677889

VPC B のルートテーブルは次のように設定します。

送信先 Target
172.31.0.0/16 ローカル
10.0.0.0/16 pcx-11223344556677889

VPC ピアリング接続では、VPC とインスタンスで IPv6 通信が有効な場合、VPC のインスタンス間で IPv6 通信をサポートできます。詳細については、「VPC とサブネット」を参照してください。VPC 間の IPv6 トラフィックのルーティングを有効にするには、VPC ピアリング接続をポイントするルートテーブルにルートを追加して、ピア VPC の IPv6 CIDR ブロックのすべての部分にアクセスできるようにする必要があります。

たとえば、同じ VPC ピアリング接続 (pcx-11223344556677889) を使用して、VPC に次の情報を含めるとします。

  • VPC A: IPv6 CIDR ブロックは 2001:db8:1234:1a00::/56

  • VPC B: IPv6 CIDR ブロックは 2001:db8:5678:2b00::/56

VPC ピアリング接続で IPv6 通信を有効にするには、VPC A のサブネットルートテーブルに次のルートを追加します。

送信先 ターゲット
10.0.0.0/16 ローカル
172.31.0.0/16 pcx-11223344556677889
2001:db8:5678:2b00::/56 pcx-11223344556677889

VPC B のルートテーブルに次のルートを追加します。

送信先 Target
172.31.0.0/16 ローカル
10.0.0.0/16 pcx-11223344556677889
2001:db8:1234:1a00::/56 pcx-11223344556677889

VPC ピア接続の詳細については、「Amazon VPC Peering Guide」を参照してください

ClassicLink は、VPC に EC2 Classic インスタンスをリンクし、プライベート IPv4 アドレスを使用して EC2-Classic インスタンスと VPC のインスタンス間の通信を可能にする機能です。ClassicLink の詳細については、「ClassicLink」を参照してください。

ClassicLink 用に VPC を有効にすると、すべてのサブネットルートテーブルに、送信先が 10.0.0.0/8 で、ターゲットが local であるルートが追加されます。これによって、VPC 内のインスタンスと、VPC にリンクされている EC2-Classic インスタンスとの間で通信が可能になります。ClassicLink が有効な VPC に別のルートテーブルを追加する場合、送信先が 10.0.0.0/8 で、ターゲットが local であるルートが自動的に追加されます。VPC の ClassicLink を無効にすると、このルートはサブネットのすべてのルートテーブルから自動的に削除されます。

サブネットのいずれかのルートテーブルに、10.0.0.0/8 CIDR 内のアドレス範囲で既存のルートが存在する場合、ClassicLink 用に VPC を有効にすることができません。これには、10.0.0.0/16 および 10.1.0.0/16 の IP アドレス範囲を持つ、VPC のローカルルートは含まれません。

既に ClassicLink 用に VPC を有効にしている場合、10.0.0.0/8 IP アドレス範囲のルートテーブルに、より詳細なルートを追加できない場合があります。

VPC ピアリング接続を変更して、VPC のインスタンスとピア VPC にリンクされた EC2-Classic インスタンス間の通信を有効にするため、送信先を 10.0.0.0/8、ターゲットを local として、静的ルートが自動的にルートテーブルに追加されます。VPC ピアリング接続を変更して、VPC にリンクされたローカルの EC2-Classic インスタンスと、ピア VPC のインスタンス間で通信を有効にする場合、送信先をピア VPC CIDR ブロック、ターゲットを VPC ピアリング接続として、メインルートテーブルにルートを手動で追加する必要があります。EC2-Classic インスタンスは、ピア VPC へのルーティングについてメインルートテーブルに依存します。詳細については、『Amazon VPC Peering Guide』の「ClassicLink を使用した設定」を参照してください。

ゲートウェイ VPC エンドポイントへのルーティング

ゲートウェイ VPC エンドポイントにより、VPC と他の AWS のサービスとをプライベートに接続できます。ゲートウェイエンドポイントを作成するときは、ゲートウェイエンドポイントによって使用されるサブネットルートテーブルを VPC で指定します。ルートは自動的に各ルートテーブル追加されて、送信先としてサービス (pl-xxxxxxxx) のプレフィックスリスト ID、ターゲットとしてエンドポイント ID (vpce-xxxxxxxxxxxxxxxxx) が登録されます。エンドポイントルートを明示的に削除または変更することはできませんが、エンドポイントで使用されるルートテーブルは変更できます。

エンドポイントのルーティングの詳細について、また AWS サービスへのルートに対する影響については、「ゲートウェイエンドポイントのルーティング」を参照してください。

Egress-Only インターネットゲートウェイへのルーティング

VPC で Egress-Only インターネットゲートウェイを作成して、プライベートサブネットのインスタンスを有効にしてインターネットへのアウトバウンド通信を開始することができますが、インターネットはインスタンスとの接続を開始することはできません。Egress-Only インターネットゲートウェイは、IPv6 トラフィックでのみ使用されます。Egress-Only インターネットゲートウェイのルーティングを設定するには、Egress-Only インターネットゲートウェイに IPv6 インターネットトラフィック (::/0) をルーティングするプライベートサブネットのルートテーブルにルートを追加します。

送信先 ターゲット
::/0 eigw-id

詳細については、「Egress-Only インターネットゲートウェイ」を参照してください。

トランジットゲートウェイのルーティング

VPC を transit gateway にアタッチするときは、トラフィックが transit gateway を通過してルーティングするように、サブネットルートテーブルにルートを追加する必要があります。

transit gateway に 3 つの VPC が接続されている次のシナリオを検討します。このシナリオでは、すべてのアタッチメントが transit gateway ルートテーブルに関連付けられ、また同じ transit gateway ルートテーブルに経路を伝播します。したがって、すべての添付ファイルは、単純なレイヤー 3 IP ハブとして transit gateway を提供しながら、パケットを相互にルーティングできます。

たとえば、次の情報を持つ 2 つの VPC があるとします。

  • VPC A: 10.1.0.0/16, attachment ID tgw-attach-11111111111111111

  • VPC B: 10.2.0.0/16, attachment ID tgw-attach-22222222222222222

VPC 間のトラフィックを有効にし、transit gateway にアクセスできるようにするには、VPC A のルートテーブルを次のように設定します。

送信先 ターゲット

10.1.0.0/16

ローカル

10.0.0.0/8

tgw-id

以下は、VPC アタッチメントの transit gateway ルートテーブルエントリの例です。

送信先 ターゲット

10.1.0.0/16

tgw-attach-11111111111111111

10.2.0.0/16

tgw-attach-22222222222222222

transit gateway ルートテーブルに関する詳細については、Amazon VPC トランジットゲートウェイ の「ルーティング」を参照してください。

VPC でのミドルボックスアプライアンスのルーティング

インターネットゲートウェイまたは仮想プライベートゲートウェイを介して VPC に入るトラフィックは、VPC 内のミドルボックスアプライアンスにルーティングして、インターセプトできます。ニーズに合わせてアプライアンスを設定できます。たとえば、すべてのトラフィックをスクリーニングするセキュリティアプライアンス、または WAN アクセラレーションアプライアンスを設定できます。アプライアンスは VPC のサブネットで Amazon EC2 インスタンスとしてデプロイされ、サブネット内の Elastic Network Interface(ネットワークインターフェイス)で表されます。

インバウンド VPC トラフィックをアプライアンスにルーティングするには、ルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付け、アプライアンスのネットワークインターフェイスを VPC トラフィックのターゲットとして指定します。詳細については、「ゲートウェイルートテーブル」を参照してください。また、サブネットから別のサブネットのミドルボックスアプライアンスにアウトバウンドトラフィックをルーティングすることもできます。

注記

目的のサブネットのルートテーブルでルート伝達を有効にしている場合は、ルートの優先順位に注意してください。最も具体的なルートが優先され、ルートが一致する場合は、伝達されたルートよりも静的ルートが優先されます。ルートを確認して、トラフィックが正しくルーティングされていること、およびルート伝達を有効または無効にした場合に (ジャンボフレームをサポートする AWS Direct Connect 接続にはルート伝達が必要など)、意図しない結果がないことを確認します。

アプライアンスに関する考慮事項

AWS Marketplace からサードパーティー製アプライアンスを選択することも、独自のアプライアンスを設定することもできます。アプライアンスを作成または設定するときは、次の点に注意してください。

  • アプライアンスは、送信元トラフィックまたは宛先トラフィックとは別のサブネットに設定する必要があります。

  • アプライアンスでの送信元/送信先のチェックを無効にする必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「送信元または宛先のチェックの変更」を参照してください。

  • サービスの連鎖はサポートされていません。

  • アプライアンスを経由して、同じサブネットのホスト間でトラフィックをルーティングすることはできません。

  • アプライアンス経由でサブネット間でトラフィックをルーティングすることはできません。

  • アプライアンスは、ネットワークアドレス変換 (NAT) を実行する必要はありません。

  • IPv6 トラフィックをインターセプトするには、必ず IPv6 に VPC、サブネット、アプライアンスを設定します。詳細については、「VPC とサブネットの使用」を参照してください。仮想プライベートゲートウェイは IPv6 トラフィックをサポートしません。

アプライアンスのルーティング設定

インバウンドトラフィックをアプライアンスにルーティングするには、ルートテーブルを作成し、サブネット宛てのトラフィックをアプライアンスのネットワークインターフェイスに向けるルートを追加します。このルートは、ルートテーブルのローカルルートよりも具体的です。このルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付けます。次のルートテーブルは、サブネット宛ての IPv4 トラフィックをアプライアンスのネットワークインターフェイスにルーティングします。

送信先 ターゲット
10.0.0.0/16 ローカル
10.0.1.0/24 eni-id

または、ローカルルートのターゲットをアプライアンスのネットワークインターフェイスに置き換えることができます。これは、後で VPC に追加するサブネット宛てのトラフィックを含め、すべてのトラフィックがアプライアンスに自動的にルーティングされるようにするためです。

送信先 ターゲット
10.0.0.0/16 eni-id

サブネットから別のサブネットのアプライアンスにトラフィックをルーティングするには、アプライアンスのネットワークインターフェイスにトラフィックをルーティングするルートをサブネットルートテーブルに追加します。この宛先は、ローカルルートの宛先より具体性を低くする必要があります。たとえば、インターネットを宛先とするトラフィックの場合、宛先に 0.0.0.0/0(すべての IPv4 アドレス)を指定します。

送信先 ターゲット
10.0.0.0/16 ローカル
0.0.0.0/0 eni-id

次に、アプライアンスのサブネットに関連付けられたルートテーブルで、トラフィックをインターネットゲートウェイまたは仮想プライベートゲートウェイにルーティングして戻すルートを追加します。

送信先 ターゲット
10.0.0.0/16 ローカル
0.0.0.0/0 igw-id

IPv6 トラフィックに同じルーティング設定を適用できます。たとえば、ゲートウェイルートテーブルで、IPv4 と IPv6 の両方のローカルルートのターゲットをアプライアンスのネットワークインターフェイスに置き換えることができます。

送信先 ターゲット
10.0.0.0/16 eni-id
2001:db8:1234:1a00::/56 eni-id

次の図では、VPC のサブネット A の Amazon EC2 インスタンスにファイアウォールアプライアンスがインストールおよび設定されています。アプライアンスは、インターネットゲートウェイを介して VPC に出入りするすべてのトラフィックを検査します。ルートテーブル A はインターネットゲートウェイに関連付けられています。インターネットゲートウェイを介して VPC に入るサブネット B 宛てのトラフィックは、アプライアンスのネットワークインターフェイス (eni-11223344556677889) にルーティングされます。サブネット B から出るすべてのトラフィックも、アプライアンスのネットワークインターフェイスにルーティングされます。


                        VPC へのインバウンド IPv4 ルーティング

次の例は、前の例と同じ設定ですが、IPv6 トラフィックが含まれています。インターネットゲートウェイを介して VPC に入るサブネット B 宛ての IPv6 トラフィックは、アプライアンスのネットワークインターフェイス (eni-11223344556677889) にルーティングされます。サブネット B から出るすべてのトラフィック(IPv4 および IPv6)も、アプライアンスのネットワークインターフェイスにルーティングされます。


                        VPC へのインバウンド IPv4 および IPv6 ルーティング

プレフィックスリストを使用したルーティング

AWS リソース全体で同じ CIDR ブロックのセットを頻繁に参照する場合は、カスタマーマネージドプレフィックスリストを作成して、それらをグループ化できます。その後、ルートテーブルエントリの送信先としてプレフィックスリストを指定できます。後でプレフィックスリストのエントリを追加または削除でき、ルートテーブルを更新する必要はありません。

たとえば、複数の VPC アタッチメントを持つトランジットゲートウェイがあるとします。VPC は、次の CIDR ブロックを持つ 2 つの特定の VPC アタッチメントと通信できる必要があります。

  • 10.0.0.0/16

  • 10.2.0.0/16

両方のエントリを持つプレフィックスリストを作成します。サブネットルートテーブルで、ルートを作成し、送信先としてプレフィックスリストを指定して、ターゲットとしてトランジットゲートウェイを指定します。

送信先 Target
172.31.0.0/16 ローカル
pl-123abc123abc123ab tgw-id

プレフィックスリストのエントリの最大数は、ルートテーブル内のエントリ数と同じになります。