IPv4 または IPv6 ゲートウェイとゲートウェイルートテーブルを使用して、インターネットからのインバウンドトラフィックをセキュリティデバイスに転送し、検査とフィルタリングを行います。 これにより、悪意のある攻撃や不正アクセスを防ぎ、セキュリティ保護を確保できます。 このトピックでは、IPv4 ゲートウェイとゲートウェイルートテーブルを使用して、仮想プライベートクラウド (VPC) に入るトラフィックを管理する方法について説明します。
シナリオ
一部の企業は、トラフィックスクラビングのために VPC にサードパーティのセキュリティデバイスをデプロイしています。 これらのデバイスには、ファイアウォールや侵入検知システムなど、独立系ベンダーのサイバーセキュリティハードウェアまたはソフトウェアが含まれます。 ゲートウェイルートテーブルのシステムルートエントリを変更し、IPv4 ゲートウェイに関連付けることで、インターネットからのインバウンドトラフィックはこれらのセキュリティデバイスにリダイレクトされ、VPC へのアクセスを管理できます。
前提条件
中国 (上海) リージョンに VPC が作成されており、その中に ECS-A と ECS-B という名前の 2 つの Elastic Compute Service (ECS) インスタンスがあります。
2 つのカスタムルートテーブルが作成され、それぞれ vSwitch 1 と vSwitch 2 にアタッチされています。
手順
手順 1: IPv4 ゲートウェイを作成し、ゲートウェイルートテーブルをバインドするおよびゲートウェイルートテーブルをバインドする
IPv4 ゲートウェイを作成してアクティブ化します。
IPv4 ゲートウェイコンソールにログオンします。 上部のメニューバーから、VPC が配置されているリージョンを選択します。 この例では、中国 (上海) を選択しています。
[ipv4 ゲートウェイの作成] をクリックし、VPC を選択して、[作成] をクリックします。

ECS-A に関連付けられた vSwitch にアタッチされているルートテーブルを選択し、[アクティブ化] をクリックします。
説明アクティブ化すると、宛先 CIDR ブロック
0.0.0.0/0を持つデフォルトルートが、vSwitch のルートテーブルの IPv4 ゲートウェイを指すように追加されます。 これにより、ルートテーブルにリンクされた vSwitch がインターネットにアクセスできるようになります。0.0.0.0/0を指すデフォルトルートが既に存在する場合は、IPv4 ゲートウェイ用に別のルートを追加することはできません。IPv4 ゲートウェイがアクティブ化されるまでは、VPC トラフィックは影響を受けません。 ただし、アクティブ化により、トラフィックパスが変更されるため、ネットワークが一時的に中断される場合があります。

ゲートウェイをアクティブ化し、vSwitch ルートテーブルを構成します。

ゲートウェイルートテーブルを作成します。
ルートテーブルコンソールにログオンします。 上部のメニューバーから中国 (上海) リージョンを選択します。
[ルートテーブルの作成] をクリックし、VPC を選択し、[関連リソースタイプ] を [ボーダーゲートウェイ] として選択し、ルートテーブルの名前を入力して、[OK] をクリックします。

ゲートウェイルートテーブルを関連付けます。
ゲートウェイルートテーブルの詳細ページで、ボーダーゲートウェイを関連付けます。

ボーダーゲートウェイのステータスが [アクティブ] であることを確認します。

手順 2: セキュリティデバイスを構成する
この例では、ECS-A インスタンスはセキュリティデバイスとして扱われ、IP トラフィック転送の構成が必要です。 サードパーティのセキュリティデバイスを使用している場合は、デバイスプロバイダーに連絡してデプロイメントを支援してもらってください。
この例では、オペレーティングシステムは Alibaba Cloud Linux 3.2104 64 ビットです。
ECS-A にログオンし、次のコマンドを実行して IP トラフィック転送を有効にします。
永続的に有効
# IP 転送を永続的に有効にする (構成ファイルに書き込む)
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# すぐに有効にする
sysctl -pインスタンスの再起動後に無効
# IP 転送を一時的に有効にする (再起動後無効)
sysctl -w net.ipv4.ip_forward=1手順 3: ルーティングを構成する
アウトバウンドトラフィックのカスタムルートテーブルを構成します。
[ルートテーブル] ページで、ECS-B が存在する vSwitch に関連付けられたカスタムルートテーブルを見つけ、その ID をクリックします。
タブに移動し、宛先 CIDR ブロック
0.0.0.0/0を持つルートエントリを作成し、ネクストホップとして ECS-A (セキュリティデバイス) を指定します。
インバウンドトラフィックのゲートウェイルートテーブルを構成します。
[ルートテーブル] ページで、作成したゲートウェイルートテーブルを見つけ、その ID をクリックします。
タブに移動して、システムルートエントリを表示します。 宛先として vSwitch CIDR ブロックを持つシステムルートが自動的に追加されます。
[宛先 CIDR ブロック] を編集して vSwitch 2 を指すようにし、ネクストホップを ECS-A (セキュリティデバイス) として設定します。

構成が完了すると、システムルートエントリはカスタムエントリになります。 ルートエントリのステータスが [アクティブ] であることを確認します。

結果を確認する
ネットワーク ACL および セキュリティグループ の構成が ECS 接続テストに干渉しないことを確認します。
インバウンドトラフィックアクセスを確認する
ブラウザで http://<ECS-B Elastic IP アドレス> に移動して、ECS-B のパブリック IP アドレスにアクセスします。

インバウンドトラフィックが ECS-A を通過することを確認する
ECS-A にログオンし、tcpdump dst host <ECS-B プライベート IP> を実行して、ECS-B へのトラフィックをキャプチャします。
ブラウザで ECS-B のパブリック IP アドレスにアクセスし、ECS-A でパケットキャプチャの結果を確認します。

追加操作
IPv6 トラフィックを管理する
IPv4 ゲートウェイは、VPC ボーダーでパブリック IPv4 トラフィックを管理します。 VPC に入る IPv6 トラフィックを管理するには、IPv6 ゲートウェイを作成し、ゲートウェイルートテーブルに関連付ける必要があります。
IPv6 が有効になっている VPC の場合は、システムによって IPv6 ゲートウェイが自動的に作成されます。 ECS インスタンスの IPv6 アドレスで IPv6 インターネット帯域幅が有効になっていることを確認して、ECS と IPv6 インターネットを接続できるようにします。
ゲートウェイルートテーブルを作成し、IPv6 ゲートウェイに関連付けます。
ルートテーブルコンソールにログオンします。 上部のメニューバーで、IPv6 ゲートウェイが配置されているリージョンを選択します。
[ルートテーブルの作成] をクリックし、VPC を選択し、[関連リソースタイプ] を [ボーダーゲートウェイ] として選択し、名前を入力して、[OK] をクリックします。
ゲートウェイルートテーブルの製品ページで、 をクリックし、IPv6 ゲートウェイを選択して関連付けます。
インバウンド IPv6 トラフィックのゲートウェイルートテーブルを構成します。
タブに移動して、システムルートエントリを表示します。 vSwitch CIDR ブロックを宛先として指定したシステムルートが自動的に作成されます。
[宛先 CIDR ブロック] が vSwitch 2 である IPv6 ルートエントリを変更し、ネクストホップを ECS-A (セキュリティデバイス) として設定します。
インターネット経由のインバウンドルーティングを変更する
ゲートウェイルートテーブルのシステムルートエントリを変更して、パブリックインバウンドルーティングを調整します。
IPv4 または IPv6 ルートのネクストホップは、[ECS インスタンス]、[ENI]、および [GWLB エンドポイント] に変更できます。
ゲートウェイルートテーブルのシステムルートエントリのみを変更できます。 カスタムエントリを作成することはできません。
システムルートエントリを編集して保存すると、カスタムエントリになります。 削除すると、システムルートエントリに戻ります。
ゲートウェイルートテーブルのシステムルートエントリを編集する場合は、次の点に注意してください。
ECS インスタンス/Elastic Network Interface (ENI): vSwitch 内の指定された ECS インスタンスまたは ENI にアクセスします。 これは通常、インターネットトラフィックを特定のインスタンスに安全にリダイレクトするために使用されます。 インスタンスを変更するには、既存のルートエントリを削除してシステムルート情報を再入力する必要があります。直接の置き換えはサポートされていないためです。
ゲートウェイロードバランサー (GWLB) エンドポイント: vSwitch 内の指定されたエンドポイントにアクセスします。 これは通常、インターネットトラフィックを GWLB のサードパーティセキュリティアプライアンスに再ルーティングするために使用されます。
リージョンによっては、ネクストホップを [GWLB エンドポイント] に変更できます。 サポートされているリージョンの詳細については、「GWLB エンドポイントをサポートするリージョン」をご参照ください。
ゲートウェイルートテーブルをデタッチする
IPv4 または IPv6 ゲートウェイからゲートウェイルートテーブルのバインドを解除して、ゲートウェイルーティング機能を削除します。
[ルートテーブル] ページで、ゲートウェイルートテーブルを見つけ、その ID をクリックします。
[関連付けられたボーダーゲートウェイ] タブをクリックし、ゲートウェイを見つけて、[アクション] 列の [バインド解除] をクリックします。
ポップアップ ダイアログボックス で、[OK] をクリックします。
ゲートウェイルートテーブルを削除する
現在関連付けられている場合は、ゲートウェイルートテーブルを削除する前に、ボーダーゲートウェイをデタッチします。
[ルートテーブル] ページで、ゲートウェイルートテーブルを見つけ、削除[アクション] 列の をクリックします。
[ルートテーブルの削除] ダイアログボックスで、[OK] をクリックします。
関連情報
IPv4 ゲートウェイ、その使用方法ガイド、および制限事項の詳細については、「IPv4 ゲートウェイ」をご参照ください。
次の API を呼び出すことによっても、ゲートウェイルートテーブルを管理できます。
AssociateRouteTableWithGateway: ルートテーブルをゲートウェイに関連付けます。
DissociateRouteTableFromGateway: ゲートウェイから関連付けを解除します。
UpdateGatewayRouteTableEntryAttribute: ゲートウェイルートテーブルのネクストホップを変更します。
ListGatewayRouteTableEntries: ゲートウェイルートテーブルのリストをクエリします。