IPv4 ゲートウェイまたは IPv6 ゲートウェイとゲートウェイルートテーブルを組み合わせて使用することで、インターネットからのインバウンドトラフィックをセキュリティアプライアンスに転送し、詳細な検査とフィルタリングを実施できます。これにより、悪意のある攻撃や不正アクセスを防止し、セキュリティを強化できます。本トピックでは、IPv4 ゲートウェイとゲートウェイルートテーブルを使用して、VPC へのインバウンドトラフィックを制御する方法について説明します。
シナリオ
一部の組織では、インターネットからのインバウンドトラフィックを検査するために、VPC 内にサードパーティのセキュリティアプライアンスをデプロイしています。これらのアプライアンスは、独立ベンダーが提供するネットワークセキュリティハードウェアまたはソフトウェアソリューション (ファイアウォールや侵入検知システムなど) です。ゲートウェイルートテーブルのシステムルートエントリを変更し、そのテーブルを IPv4 ゲートウェイに関連付けることで、インターネットからのインバウンドトラフィックをセキュリティアプライアンスにリダイレクトし、VPC へのインバウンドトラフィックを検査および制御できます。
前提条件
-
中国 (上海) リージョンに VPC を作成し、その VPC 内に ECS-A と ECS-B という 2 つの ECS インスタンスを作成済みであること。
-
2 つの カスタムルートテーブル を作成し、それぞれを vSwitch 1 と vSwitch 2 に関連付け済みであること。
操作手順
ステップ 1:IPv4 ゲートウェイの作成とルートテーブルの関連付け
-
IPv4 ゲートウェイを作成して有効化します。
-
IPv4 ゲートウェイコンソールにログインします。上部メニューで、VPC があるリージョンを選択します。この例では、中国 (上海) リージョンを使用します。
-
IPv4 ゲートウェイの作成 をクリックします。「IPv4 ゲートウェイの作成」ページで、リソースグループを選択し、必要に応じて タグ を設定します。次に、VPC ドロップダウンリストからターゲット VPC を選択し、作成 をクリックします。
-
ECS-A を含む vSwitch のルートテーブルを選択し、アクティブ化 をクリックします。
-
ゲートウェイを有効化すると、送信先 CIDR ブロックが
0.0.0.0/0で、IPv4 ゲートウェイを指すデフォルトルートエントリがシステムによって追加されます。このルートエントリにより、vSwitch のインターネットアクセスが有効になります。送信先 CIDR ブロックが0.0.0.0/0のデフォルトルートエントリがすでに存在する場合、システムは IPv4 ゲートウェイ用の別のデフォルトルートエントリを追加できません。 -
IPv4 ゲートウェイを有効化する前は、VPC 内のネットワークトラフィックは影響を受けません。ただし、有効化中のトラフィックパス切り替えにより、短時間のネットワーク中断が発生する可能性があります。
[ルートテーブルの選択] セクションで、関連付けるカスタムルートテーブルを選択します。メインルートテーブルではなく、カスタムルートテーブルを選択することを推奨します。次に、[有効化] をクリックします。
-
-
IPv4 ゲートウェイが有効化され、vSwitch ルートテーブルが設定されます。
IPv4 ゲートウェイの作成後、その [ステータス] が [利用可能] であることを確認します。このステータスは、ゲートウェイがアクティブで、ルートテーブルが設定されていることを示します。
-
-
ゲートウェイルートテーブルを作成します。
-
ルートテーブルコンソールにログインします。上部メニューで、IPv4 ゲートウェイがあるリージョンを選択します。この例では、中国 (上海) リージョンを使用します。
-
作成 をクリックし、VPC を選択し、リソータイプ を ボーダーゲートウェイ に設定し、ルートテーブルの名前を指定してから、OK をクリックします。
-
-
ゲートウェイルートテーブルをボーダーゲートウェイに関連付けます。
-
ゲートウェイルートテーブルの詳細ページで、ボーダーゲートウェイを関連付けます。
表示されるダイアログボックスで、ステータスが [バインド可能] の対象 IPv4 ゲートウェイを選択し、[OK] をクリックします。
-
バインディングが完了したら、ボーダーゲートウェイのステータスが 使用可能 であることを確認します。 [バインディング済みボーダーゲートウェイ] タブでは、[利用可能] のステータスはバインディングが成功したことを示します。
-
ステップ 2:セキュリティアプライアンスの設定
このシナリオでは、ECS-A インスタンスがセキュリティアプライアンスとして機能するため、そのインスタンスで IP フォワーディングを有効にする必要があります。サードパーティのセキュリティアプライアンス を使用する場合は、ビジネス要件に基づくデプロイについては、アプライアンスプロバイダーにお問い合わせください。
この例では、Alibaba Cloud Linux 3.2104 64 ビットを実行する ECS インスタンスを使用します。
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 インスタンス] に設定し、[ECS インスタンス] ドロップダウンリストから ECS-A を選択します。
-
-
インバウンドトラフィック用のゲートウェイルートテーブルを設定します。
-
ルートテーブル ページで、作成したゲートウェイルートテーブルを見つけ、その ID をクリックします。
-
ルートエントリ > システムルート タブに移動して、システムルートエントリを表示します。デフォルトでは、システムは各 vSwitch の宛先 CIDR ブロックを持つシステムルートエントリを追加します。
-
CIDR が vSwitch 2 に対応するルートエントリを編集し、ネクストホップをセキュリティアプライアンスとして機能する ECS-A インスタンスに設定します。 システムルートエントリの場合、[編集] をクリックします。 [ルートエントリの編集] ダイアログボックスで、[ネクストホップタイプ] を [ECS インスタンス] に設定し、[ECS インスタンス] ドロップダウンリストから ECS-A を選択します。
-
設定を完了すると、システムによってシステムルートエントリがカスタムルートエントリに変換されます。ルートエントリのステータスが使用可能であることを確認してください。
ルートエントリリストページで、[カスタムルート] タブをクリックして、送信先 CIDR ブロック (例:
10.0.1.0/24) やネクストホップ (ECS インスタンス) などのルートエントリの詳細を確認します。
-
結果の検証
VPC 内の ECS インスタンスをテストするために接続が許可されるよう、ネットワーク ACL と セキュリティグループ の設定を確認してください。
インバウンドインターネットトラフィックの検証
ブラウザを開き、http://<ECS-B の EIP> を入力します。
ページに This is ECS-B! が返されます。これは、リクエストが ECS-B インスタンスに到達したことを示します。
ECS-A 経由のトラフィックフローの検証
ECS-A インスタンスにログインし、tcpdump dst host <ECS-B のプライベート IP アドレス> コマンドを実行して、ECS-B インスタンス宛てのトラフィックをキャプチャします。
ブラウザを開き、ECS-B インスタンスの EIP を入力します。次に、ECS-A インスタンスでパケットキャプチャの結果を確認します。
[root@ECS-A ~]# tcpdump dst host 10.0.1.221
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:33:36.662426 IP 140.2xxx.xxx.19404 > 10.0.1.221.http: Flags [S], seq 884222365, w
17:33:36.662445 IP 140.2xxx.xxx.19404 > 10.0.1.221.http: Flags [S], seq 884222365, w
17:33:36.662818 IP 140.2xxx.xxx.37526 > 10.0.1.221.http: Flags [S], seq 3020843667,
17:33:36.662823 IP 140.2xxx.xxx.37526 > 10.0.1.221.http: Flags [S], seq 3020843667,
17:33:36.676731 IP 140.2xxx.xxx.19404 > 10.0.1.221.http: Flags [.], ack 1519927262,
17:33:36.676737 IP 140.2xxx.xxx.19404 > 10.0.1.221.http: Flags [.], ack 1, win 2058
関連操作
IPv6 トラフィックの管理
IPv4 ゲートウェイは、VPC の境界でパブリック IPv4 トラフィックを制御します。VPC への IPv6 トラフィックを制御するには、IPv6 ゲートウェイ を使用し、それをゲートウェイルートテーブルに関連付ける必要があります。
IPv6 CIDR ブロックを持つ VPC には、システムによって自動的に IPv6 ゲートウェイが作成されます。ECS インスタンスの IPv6 アドレスに対して IPv6 パブリック帯域幅を有効にし、VPC 内の ECS インスタンスと IPv6 インターネット間の通信を有効化 できるようにしてください。
-
ゲートウェイルートテーブルを作成し、IPv6 ゲートウェイに関連付けます。
-
ルートテーブルコンソールにログインします。上部メニューで、IPv6 ゲートウェイがあるリージョンを選択します。
-
作成 をクリックし、VPC を選択し、リソータイプ を ボーダーゲートウェイ に設定し、ルートテーブルの名前を指定してから、OK をクリックします。
-
ゲートウェイルートテーブルの詳細ページで、をクリックし、関連付ける IPv6 ゲートウェイを選択します。
-
-
インバウンドトラフィックをルーティングするようにゲートウェイルートテーブルを設定します。
-
ルートエントリ > システムルート タブに移動して、システムルートエントリを表示します。デフォルトでは、システムによって、各 vSwitch の宛先 CIDR ブロックが設定されたシステムルートエントリが追加されます。
-
CIDR が vSwitch 2 に対応する IPv6 ルートエントリを編集し、ネクストホップをセキュリティアプライアンスとして機能する ECS-A インスタンスに設定します。
-
インバウンドインターネットルートの調整
ゲートウェイルートテーブルのシステムルートエントリを変更することで、インバウンドインターネットルートを調整できます。
IPv4 または IPv6 ルートのネクストホップは、ECS インスタンス、ENI、GWLB エンドポイント、または ルートターゲットグループ のいずれかです。
-
ゲートウェイルートテーブルでは、システムルートエントリのみを変更できます。カスタムルートエントリを作成することはできません。
-
システムルートエントリを編集して保存すると、システムはそれをカスタムルートエントリに変換します。カスタムルートエントリを削除すると、システムルートエントリに戻ります。
-
ゲートウェイルートテーブルのシステムルートエントリを編集する際は、ネクストホップタイプについて以下の点に注意してください。
-
ECS インスタンス / Elastic Network Interface (ENI) : vSwitch 内の指定されたインスタンスまたは ENI へのアクセスを許可します。これは、パブリックトラフィックを特定の ECS インスタンスまたは ENI に安全にリダイレクトするためによく使用されます。ECS インスタンスまたは ENI を変更する必要がある場合は、ルートエントリを削除してから、システムルートエントリを再度編集する必要があります。インスタンスまたは ENI を直接置き換えることはできません。
-
GWLB エンドポイント : vSwitch 内の指定されたエンドポイントへのアクセスを許可します。これは、Gateway Load Balancer (GWLB) シナリオで、パブリックトラフィックをサードパーティのセキュリティアプライアンスにリダイレクトするために使用されます。
ネクストホップを GWLB エンドポイント に変更できるリージョンについては、「GWLB をサポートするリージョン」をご参照ください。
-
ルートターゲットグループ : アクティブ / スタンバイモードで 2 つのネクストホップインスタンスを設定できます。システムは、インスタンスに対して自動的にヘルスチェックを実行します。インスタンスが異常になった場合、システムは自動的にトラフィックを切り替えて、ゾーンレベルのディザスタリカバリを実現し、目標復旧時間 (RTO) を短縮します。
-
ゲートウェイルートテーブルの関連付け解除
ゲートウェイルートテーブルを IPv4 または IPv6 ゲートウェイから関連付け解除できます。関連付けを解除すると、ボーダーゲートウェイはゲートウェイルーティング機能を提供しなくなります。
-
ルートテーブル ページで、目的のゲートウェイルートテーブルを見つけ、その ID をクリックします。
-
関連付けられたボーダーゲートウェイ タブをクリックし、目的のボーダーゲートウェイを見つけ、操作 列の バインド解除 をクリックします。
-
表示されたダイアログボックスで、OK をクリックします。
ゲートウェイルートテーブルの削除
ゲートウェイルートテーブルを削除する前に、ボーダーゲートウェイから関連付けを解除する必要があります。
-
ルートテーブル ページで、対象のゲートウェイルートテーブルを見つけ、操作 列の 削除 をクリックします。
-
ルーティングテーブルの削除 ダイアログボックスで、OK をクリックします。
関連ドキュメント
-
IPv4 ゲートウェイの使用方法と制限事項の詳細については、「IPv4 ゲートウェイ」をご参照ください。
-
以下の API を呼び出して、ゲートウェイルートテーブルを管理することもできます。