この機能は招待制のプレビュー版です。アクセスをリクエストするには、Alibaba Cloud のアカウントマネージャーにお問い合わせください。
ポリシーベースのルーティング (PBR) を使用すると、ソース IP、宛先 IP、プロトコル、ポート、または DSCP などの条件に基づいて、アタッチメントに入るトラフィックに対して、特定の転送パスを定義できます。パケットがルールに一致する場合、そのルールで指定されたルートテーブルに転送されます。
ユースケース
PBR は、同じ宛先へのトラフィックが送信元に基づいて異なるパスをたどる必要がある場合や、セキュリティまたはコンプライアンス検査のために特定のトラフィックをリダイレクトする必要がある場合に使用します。
シナリオA:送信元 IP アドレスに基づくトラフィックルーティング
-
前提条件: 同じ vSwitch 内の 2 つのサブネットから、同じ宛先 IDC (
10.1.0.0/16) へのトラフィックを、異なる Virtual Border Router (VBR) (VBR-A と VBR-B) を経由して送信する必要があります。 -
設定:2 つの PBR ルールを作成します。各ルールは 1 つのサブネットの送信元 CIDR に一致し、そのトラフィックを対応する VBR に関連付けられたルートテーブルに転送します。
-
高度: デュアルプライベート接続で ECMP を使用する場合、Cloud Enterprise Network (CEN) ルートポリシー (RouteMap) で
AsPathPrepend属性を使用して、対称的なリターンパスを確保します。
シナリオB:サブネットレベルのアクティブ/スタンバイパス
-
前提条件:単一の VPC に 2 つのサブネットが含まれています。2 つのプライベート接続 A と B がトランジットルーター (TR) に接続されています。サブネット A はプライベート接続 A をプライマリパス、B をスタンバイとして使用し、一方、サブネット B は B をプライマリ、A をスタンバイとして使用する必要があります。
-
設定: 2 つのルートテーブル
vtb-a-primaryとvtb-b-primaryを作成し、各ルートテーブルでルートマップを使用して対向の VBR を指すルートの優先度を下げます。次に、PBR を使用して、各サブネットからのトラフィックをそれぞれのプライマリルートテーブルに誘導します。 -
応用:プライマリリンクに障害が発生した場合、BGP は自動的にスタンバイパスに収束します。対称的な戻りトラフィックは、双方向の RouteMap に依存します。
シナリオC:VPC 間トラフィックのサービス挿入
-
前提条件: Cloud Firewall はアタッチメントとして TR に接続され、専用のルートテーブル
vtb-firewallを持ちます。 -
設定: ソース VPC のアタッチメントで、ポリシールートテーブルをバインドします。一致条件
SourceCidr=10.0.1.0/24, DestinationCidr=10.0.0.0/8を持つルールを作成し、ターゲットをvtb-firewallに設定します。このルールに一致しないトラフィックは、デフォルトルートテーブルに従います。 -
注意:ファイアウォールはステートフルであるため、戻りトラフィックもファイアウォールを通過する必要があります。これは、ピアアタッチメントに同様のポリシールートテーブルをバインドするか、ピアアタッチメントをファイアウォール経由でトラフィックを転送するルートテーブルに関連付けることで実現できます。
シナリオD:複数テナントのパス分離
-
前提条件:複数のテナントが同じ VPC と vSwitch を共有しています。各テナントは、専用の IPsec トンネルを介して独自の IDC にアクセスする必要があります。
-
設定:各テナントの IPsec アタッチメントを個別のルートテーブルに関連付けます。PBR を使用して、各テナントの送信元ネットワークセグメントからのトラフィックを対応するルートテーブルにマッピングします。
シナリオE:アクティブ/アクティブアーキテクチャのゾーン別エグレス
-
前提条件: 異なるアベイラビリティーゾーン (AZ) のサブネットと、それに対応するローカルプライベート接続の送信ポイントは、たとえば
10.1.1.0/24 → att-vbr-az1や10.1.2.0/24 → att-vbr-az2のように、個別のアタッチメントとして設定されている必要があります。 -
設定:各 AZ のエグレスポイントに個別のルートテーブルを割り当てます。PBR を使用して、各 AZ のサブネットからのトラフィックを対応するエグレスルートテーブルにマッピングします。これにより、ECMP が異なる AZ 間でトラフィックを負荷分散することを防ぎます。
-
応用:フェイルオーバーの場合、スタンバイルートテーブルに AZ 間のフォールバックルートを事前に構成できます。これにより、障害時でもサービスの可用性が維持されますが、パフォーマンスが低下する可能性があります。
シナリオF:コンプライアンス監査専用チャネル
-
前提条件: DMZ サブネット
10.2.0.0/24からのアウトバウンドトラフィックは、監査チャネルを経由してルーティングされる必要があります。監査アプライアンスはアタッチメントとして接続され、ルートテーブルvtb-auditに関連付けられています。 -
設定: DMZ の送信元ネットワークセグメントに一致する PBR ルールを作成し、そのトラフィックを
vtb-auditルートテーブルに転送します。ポリシーがバインドされていない、または一致するルールがない他のサブネットからのトラフィックは、デフォルトのルートテーブルに従って転送されます。 -
注意:インライン監査はステートフルなファイアウォールに似ており、対称的なルーティングが必要です。ミラーリング (帯域外) 監査は、戻りトラフィックへの影響が最小限です。
シナリオG:カナリアリリースのためのトラフィック分類
-
前提条件: カナリアサブネット (
10.3.100.0/24) と本番サブネットは同じ VPC を共有します。 カナリア環境のバックエンドクラスターは、ルートテーブルvtb-grayに関連付けられている個別のアタッチメントを介して接続します。 -
設定: PBR ルールとして
SourceCidr=10.3.100.0/24 → vtb-grayを作成します。 その優先度を、セキュリティルールまたはコンプライアンスルールより低く設定します。 -
注意:ネットワーク層はトラフィックパスのみを決定します。アプリケーションレベルのロジックは、引き続きバージョンの切り替えとロールバックを管理する必要があります。
仕組み
トラフィックの照合プロセス
トラフィックがアタッチメントに入ると、システムは転送用のルートテーブルを検索する前に、ポリシールートテーブルに照らしてトラフィックを評価します。
-
パケットがアタッチメントに入ります。
-
システムは、ポリシールートテーブルがアタッチメントにバインドされているかどうかを確認します。
-
はいの場合、ステップ 3 に進みます。
-
いいえの場合、ステップ 6 にスキップします。
-
-
システムは、ポリシールートテーブル内のルールを優先度順に評価します。
-
システムは、パケットがルールに一致するかどうかを確認します。
-
はいの場合、ステップ 5 に進みます。
-
いいえの場合、ステップ 6 にスキップします。
-
-
システムは、ルールで指定されたターゲット TR ルートテーブルで宛先を検索し、ステップ 7 にスキップします。
-
システムは、関連付け転送によってバインドされた TR ルートテーブルで宛先を検索します。
-
パケットはネクストホップに転送されます。
主な原則:
-
優先度ベースの評価:ルールは優先度順に評価されます (値が小さいほど優先度が高い)。最初に一致したルールが適用され、評価は停止します。
-
照合と転送の分離:ポリシールートテーブルは、使用するルートテーブルのみを決定します。選択されたルートテーブルがネクストホップを決定します。
-
イングレス制御:ポリシールートテーブルはアタッチメントにバインドされ、その特定のアタッチメントを介して TR に入るトラフィックにのみ影響します。
ルール照合フィールド
各ルールには、次のフィールドが含まれています。
|
フィールド |
必須 |
説明 |
|
[IP アドレスタイプ] |
いいえ |
有効な値は |
|
[送信元 CIDR] |
いいえ |
CIDR 形式の送信元ネットワークセグメントです。 |
|
[宛先 CIDR] |
いいえ |
CIDR 形式の宛先ネットワークセグメントです。 |
|
[プロトコル] |
いいえ |
有効な値は |
|
[送信元ポート範囲] |
いいえ |
例: |
|
[宛先ポート範囲] |
いいえ |
上記と同じです。 |
|
[DSCP] |
いいえ |
[IP パケットが TR に到達した時点で既に存在する DSCP 値と照合します。設定しない場合は、すべての DSCP 値と照合されます。ECS オペレーティングシステムまたはオンプレミス IDC で DSCP を設定していない場合は、この項目を設定しないことを推奨します。] |
|
[優先度] |
はい |
1〜100 です。値が小さいほど優先度が高くなります。 |
|
[転送先ルートテーブル] |
はい |
トラフィックがルールに一致した場合に使用するルートテーブルです。 |
ポリシーベースのルーティングの使用
次の 3 つのステップに従います。
-
ポリシーベースルーティングテーブル を作成します。
TR の ID をクリックして、その詳細ページに移動します。ポリシーベースルーティングテーブル タブに切り替え、ポリシーベースルーティングテーブルの作成 をクリックします。
-
ポリシールーティングルールを追加します。
-
先ほど作成したポリシールーティングテーブルのアクション列で、ルールを表示をクリックします。
-
ポリシーベースルーティングテーブルの詳細 パネルのポリシールーティングルール タブで、ポリシールーティングルールの追加 をクリックします。
-
ポリシールーティングルールの追加 ダイアログボックスで、以下の設定を行います。
-
[一致条件]: ルールの一致フィールドに記載されているとおりに設定します。
-
[優先度]: 1~100。 値が小さいほど優先度が高くなります。
-
[転送先ルートテーブル]: トラフィックがルールに一致する場合に使用するルートテーブルです。
-
1 つのテーブルに複数のルールを追加できます。
-
-
ポリシーベースルーティングテーブル を ネットワークインスタンス: に関連付けます。
-
ポリシールートテーブルの アクション 列で、関連付け管理 をクリックします。
-
ポリシーベースルーティングテーブルの詳細 パネルの ネットワークインスタンス接続の関連付け タブで、バインドを完了します。
-
テーブルをバインドすると、システムはまずアタッチメントに入るトラフィックをポリシールーティングルールに照らして評価します:
-
トラフィックがルールに一致する場合、システムは指定されたターゲットルートテーブルに基づいて転送します。
-
トラフィックがどのルールにも一致しない場合、システムは関連付け転送用に構成されたルートテーブルに基づいて転送します。
ポリシーベースのルーティングの管理
-
ポリシールーティングテーブルのバインド解除:目的のポリシールーティングテーブルの 関連付け管理 列で、関連付け管理 をクリックします。次に、削除するバインドの アクション 列で、関連付け解除 をクリックします。
-
ポリシー ルート テーブルの削除: ポリシー ルート テーブルを削除する前に、すべてのアタッチメントからバインド解除する必要があります。次に、対象のポリシー ルート テーブルの アクション 列で、削除 をクリックします。
-
ポリシーベースルーティングルールの編集: 対象のルールの右上隅にある編集をクリックします。
編集できるのは名前と説明のみです。一致条件、優先度、転送先ルートテーブル などの他のフィールドを編集するには、ルールを削除して新しいルールを作成する必要があります。
-
ポリシーベースのルーティングルールの削除:対象のルールの右上隅で、削除 をクリックします。
詳細情報
クォータと制限
クォータ:
|
項目 |
デフォルト |
増加可能 |
|
TR インスタンスあたりのポリシー ルート テーブルの数 ( |
20 |
はい。アカウントマネージャーにお問い合わせください。 |
|
TR インスタンスあたりのポリシーベースルーティングルールの合計数 ( |
100 |
はい。アカウントマネージャーにお問い合わせください。 |
|
単一のアタッチメントに関連付けられるポリシールートテーブルの数 ( |
1 |
いいえ |
監視メトリクス
以下の CloudMonitor メトリクスは、ディメンション PolicyBasedRouteId を使用します:
|
メトリクス |
単位 |
説明 |
|
|
パケット |
ルールに一致したパケット数です。 |
|
|
bps |
ルールに一致したトラフィックの平均帯域幅です。 |
|
|
GB |
ルールに一致したトラフィックの総量です。 |
よくある質問
ルールが有効にならないのはなぜですか?
次の項目を順番に確認してください。
① ポリシールーティングテーブルがイングレスアタッチメントにバインドされていることを、TR 詳細ページの リージョン内接続数 タブにある、対象のアタッチメントの Associate with Route Table 列で確認します。
② ルールが正しく構成されており、アクティブなトラフィックがその条件に一致することを確認します。
③ より優先度の高いルール (優先度の値が小さいルール) が、先にトラフィックと一致していないか確認します。
④ トラフィックの方向を確認します。ポリシーベースルーティングは、TR に 流入する トラフィックにのみ適用されます。CloudMonitor の PolicyBasedRouteHitCount 監視メトリックを使用して、パケットがルールに一致しているかどうかを確認できます。