IBM Cloud Docs
ルーティング・テーブルおよび経路について

ルーティング・テーブルおよび経路について

IBM Cloud® Virtual Private Cloud (VPC) では、ゾーン内のトラフィックを管理するために、VPC のデフォルトのルーティング・テーブルが自動的に生成されます。 デフォルトでは、このルーティング・テーブルは空です。 デフォルト・ルーティング・テーブルに経路を追加するか、1 つ以上のカスタム・ルーティング・テーブルを作成してそこに経路を追加することができます。 例えば、特定のサブネットに特別なルーティング・ポリシーが必要な場合は、ルーティング・テーブルを作成し、それを 1 つ以上のサブネットに関連付けることができます。 しかし、デフォルトルーティングテーブルを使うすべてのサブネットに影響するデフォルトルーティングポリシーを変更したい場合は、デフォルトルーティングテーブルにルートを追加する必要があります。

デフォルトのルーティング・テーブルは、自動的に作成される点を除き、他のルーティング・テーブルと同じように機能します。これは、ルーティング・テーブルを指定せずにサブネットを作成した場合に使用されます。

任意のルーティング・テーブル内に経路を定義して、自由にトラフィックを形作ることができます。 各サブネットには 1 つのルーティング テーブルが割り当てられ、そのルーティング テーブルがサブネットのトラフィックの管理を担当します。 サブネットが発信トラフィックを管理するために使用するルーティング・テーブルは、いつでも変更できます。

このサービスでは、サード・パーティー・ルーティング、ファイアウォール、ローカル/グローバルのロード・バランシング、Web アプリケーション・ファイアウォール、その他多数の高度なネットワーキング・サービスのために Network Functions Virtualization (NFV) を使用することもできます。 カスタム・ルーティング・テーブルは、現在 IBM Cloud サービスにも統合されています。

発信と着信のルーティング

  • Egressルートは、サブネット内で発生し、パブリック・インターネットに向かうトラフィックや、同じゾーンまたは異なるゾーンの別のVMに向かうトラフィックを制御する。

  • イングレス・ルートでは、VPCのアベイラビリティ・ゾーン( IBM Cloud Direct Link、 IBM Cloud Transit Gateway、同じVPC内の別のアベイラビリティ・ゾーン、またはパブリック・インターネット)の外部からのVPCへの受信トラフィックのルートをカスタマイズできます。

    特定の着信トラフィック送信元に関連付けることができるカスタム・ルーティング・テーブルは 1 つのみです。 ただし、異なるトラフィック送信元には異なるルーティング・テーブルを使用できます。 例えば、ルーティング・テーブル A は Transit Gateway と VPC Zone を使用し、ルーティング・テーブル B は Direct Link を使用する。

システム暗黙ルーティング・テーブルの定義

システムインプリシットルーティングテーブルを使うようにルーティングテーブルを設定することはできません。 システムインプリシットルーティングテーブルは、トラフィックがイグジットするサブネットに関連付けられているカスタムルーティングテーブルにマッチするルートが見つからない場合に使用される。 対応するものが見つからなければ、パケットはドロップされます。

システムインプリシットルーティングテーブルは、VPCごとに保持される。 VPCは複数のゾーンに存在することができ、VPCのシステム・インプリシット・ルーティング・テーブルはゾーンごとに異なります。 イングレスルーティングでは、システムインプリシットルーティングテーブルには、VPCのゾーン内の各ネットワークインターフェースへの経路のみが含まれます。

この動作は、 drop のアクションを持つカスタムルーティングテーブルのデフォルトルートで回避できます。

システム暗黙ルーティング・テーブルには、以下のものが含まれます。

  • VPC 内の各サブネットの CIDR への経路

  • ゾーン内のサブネットへの経路 (静的に維持)

  • BGP を介して確認される他のゾーン内のサブネットへの経路

  • BGPを通じて学習した動的ルート(例えば、 Direct Link や Transit Gateway )

  • インターネット・トラフィックのデフォルト経路 (パブリック・ゲートウェイまたは浮動 IP が VPC に関連付けられている場合に使用されます)

  • クラシック・インフラストラクチャー・サービス・ネットワーク CIDR への経路 (サービス・ゲートウェイが VPC に関連付けられている場合に使用されます)。以下に例を示します。

    10.0.0.0/1410.200.0.0/1410.198.0.0/15、および10.254.0.0/16 は、クラシック・インフラストラクチャー・サービス・ネットワーク CIDR です。

経路設定の決定

ルートの優先度を指定できます(0-4 ) を使用して、特定の宛先に複数のルートが存在する場合に、どのルートの優先度が高いかを決定します。 既存のルートと優先度値なしで作成された新しいルートは、自動的にデフォルトの優先度に設定されます(2 )。

経路優先順位は、同一の宛先でのみ考慮され、動的に確認される経路と類似しています。

経路優先順位の設定の例

  • /32 接頭部と優先順位が 1 の経路、および宛先が /31 と優先順位が 0 の経路がある場合、 /32 が最初に使用されます (最長の接頭部一致)。 つまり、同じ接頭部を持つ経路が複数ある場合にのみ、優先順位が重要になります。
  • 0.0.0.0/0 (デフォルト経路) を持つ経路が 3 つある場合は、最も高い優先順位を持つ経路のみが使用されます。 選択した経路が (例えば、自動化によって) 除去されると、残りの 2 つの経路から最も高い優先順位が選択されます。
  • カスタム ルーティング テーブルに特定のプレフィックスを持つルートが 1 つだけある場合、そのルートは優先度に関係なく常に使用されます。 特定のプレフィックスごとに最適なルート選択が実行され、優先度が最も高いルートが選択されます。

等価コスト・マルチパス (ECMP) ルーティングは、2 つの経路の宛先と優先順位が同じ場合に使用されます (同じ宛先を持つ 2 つの経路に対して ECMP が使用される現在の動作を拡張します)。 1 つのルーティング・テーブル内の 2 つの経路は、最大で同じ宛先と優先順位を持つことができます。 例えば、カスタム・ルーティング・テーブルに同じ宛先を持つ 3 つの経路、優先順位 1 を持つ 1 つの経路、および優先順位 4 (ECMP) を持つ他の 2 つの経路がある場合、優先順位 1 を持つ経路が選択され、ECMP 経路は無視されます (ECMP なし)。 ここで、同じ宛先と優先順位を持つ 2 つの経路が最高の優先順位を持つ場合、システムはこれらの 2 つの経路を選択し、ECMP を実行します。 その後、これらの経路の 1 つが削除されると、まだ存在する経路が選択され、ECMP は実行されません。

経路優先順位の制限については、 制限とガイドライン を参照してください。

広告ルート

以前は、VPC のルート・アドレス接頭部内のアドレス接頭部は、 Direct Link および Transit Gatewayにアドバタイズされていました。 しかし、VPC のルート・アドレス接頭部の外側にアドレス接頭部を公示することはできませんでした。 経路公示は、この機能を追加します。 例えば、図 1 は、すべてのゾーンの経路 0.0.0.0/0 をゾーン固有のネクスト・ホップに公示します。

エッジ・プロキシ・ファイアウォールの使用例*
ルート
について

詳細については、ルーティングテーブルの作成 そして ルーティングテーブルの更新

広告経路の考慮事項

ルートをアドバタイズするときは、次の点に注意してください。

  • VPCに割り当てられたルートアドレスプレフィックスの外側にルートをアドバタイズできるので、外部ネットワークやVPCの外側にあるネットワークをVPCにアドバタイズすることができます。Direct LinkまたはTransit Gateway。

  • 複数のトランジットゲートウェイまたはダイレクトリンクがVPCに接続されている場合は、個別にルートフィルタリングを使用できます。Transit GatewayまたはDirect Linkどのルートをどの接続にアドバタイズするかを微調整するための接続。

  • 複数のルートが異なる優先度で宛先プレフィックスにアドバタイズされる場合、優先度の高いルート (優先度の値が小さい) がプライマリとして使用され、優先度の低いルート (優先度の値が大きい) がバックアップとして使用されます。

  • 2つの異なるルートを宣伝する場合、例えば 172.16.0.0/31 を通して 10.1.1.0 そして 172.16.0.0/32 を通して 10.1.2.0、ルートは /32 プレフィックスは常にルートよりも優先されます /31 接頭辞。 これは、「最も長いプレフィックスの一致」ルール・セットと整合性があります。 ホストの宛先へのプレフィックスが長い方が、常に狭いプレフィックスよりも優先されます。

  • 現在、 Transit Gateway または Direct Linkからの重複経路にフラグを立てるメカニズムはありません。 のTransit Gateway最も具体的なプレフィックスと最短の AS パスを使用して、最適なパスを選択します。 そうでなければ、Transit Gateway最初に受信したルートを選択します。 このルートはVPC側で最も古いルートではない可能性があり、Transit Gateway内部的に更新されます。

ユース・ケース

以下のユース・ケースは、さまざまなルーティング・シナリオを示しています。

ユース・ケース 1: エッジ・プロキシー・ファイアウォール

エッジプロキシファイアウォールの使用例*
の使用例
エッジプロキシファイアウォールの使用例

エッジプロキシファイアウォールのイグレスルーティングテーブル
接続先 アクション ネクスト・ホップ Location
10.10.0.0/16 代行 ダラス DC 1
10.11.0.0/16 代行 ダラス DC 1
0.0.0.0/0 送信 10.10.1.5 ダラス DC 1

目標: エッジ・プロキシー・ファイアウォール

クライアント定義のゲートウェイ、プロキシー、またはファイアウォール・アプライアンスの背後からパブリック・インターネットへのフローを保護するとともに、他のサブネット上のリソースが VPC 管理のパブリック・ゲートウェイを通過できるようにします。

サブネットごとのイグレスルーティングでVPCカスタムルートを使用すると、VPCネットワーク内のシステムインプリシットルーティングをオーバーライドするテーブルを作成できます。 この例では、システムによって作成されたデフォルト・テーブル(作成時にすべてのサブネットが割り当てられる)は変更されていない。 サブネット 10.10.1.0/24 からのトラフィックをエッジプロキシ(NFV Proxy)を経由させるためのテーブルも作成される。

プロキシされたフローの宛先はパブリック・インターネットであり、通常はデフォルト・ルート(0.0.0.0/0 )に従うため、まずカスタム・ルートのDelegate機能を使って、内部的に到達可能なプライベート・ネットワークに向かうフローを除外する必要がある。 サブネット内のリソースは、 10.10.3.0/24 、そのサブネットに接続されているパブリック・ゲートウェイを使用し続ける。

この例では、プロキシーを使用するインスタンスは共通のサブネットをプロキシーと共有しますが、そうする必要はありません。 カスタムルートを使用すると、別のサブネットに接続されているインスタンスのネクストホップ IP を指定できます。 こうすることで、Edgeサービスのサブネットのサイズを気にすることなく、水平方向に拡張することができます。 例えば、プロキシルーティングテーブルをサブネット( 10.10.3.0/24 )にアタッチし、すべてのパブリックフローをNFVプロキシに向けることができる。

エッジ・プロキシー・ファイアウォールで使用される機能

このユース・ケースでは、エッジ・プロキシー・ファイアウォールの以下の機能を使用します。

  • 10.10.0.5 インターフェースおよび 10.10.1.5 インターフェースで IP スプーフィング・チェックを無効にして、ソース・アドレスの保持を有効にします。 このアクションには、インスタンスに対する昇格された IAM 許可が必要です。
  • NFV プロキシーを経由しないリソースを使用するアウトバウンド・フローのパブリック・ゲートウェイ。
  • 10.10.0.5 インターフェースに接続された浮動 IPで、インバウンドおよびアウトバウンドのパブリック・フローを NFV プロキシーに直接使用可能にします。
  • インスタンス・インターフェースと VPC サブネットにそれぞれステートフル・セキュリティー・グループとネットワーク・アクセス制御リスト (ACL) を追加して、VPC 内の分離リソースを追加します。

ユース・ケース 2: パブリック・ロード・バランサー

公開ロードバランサーの使用例*
ロードバランサーの使用例
公開ロードバランサーの使用例

パブリックロードバランサーWebイグレスルーティングテーブル
接続先 アクション ネクスト・ホップ Location
10.10.0.0/16 代行 ダラス DC 1
10.11.0.0/16 代行 ダラス DC 1
161.26.0.0/16 * 代行 ダラス DC 1
166.8.0.0/14 * 代行 ダラス DC 1
0.0.0.0/0 送信 10.10.1.5 ダラス DC 1

目標: パブリック・ロード・バランサー

クライアント定義のアプリケーションまたはネットワークロードバランサーを使用するウェブアプリケーションのホスティング。

サブネットごとのイグレスルーティングでVPCカスタムルートを利用することで、各インスタンスでルーティング情報を更新することなく、VPCネットワークでシステムインプリシットルーティングをオーバーライドするテーブルを作成できます。 この例では、インターネット・ユーザーから Web レイヤーへのソース IP が保持されます。 ウェブからアプリ、アプリからデータベースへのレイヤーは、暗黙のVPCルーティングを使用して通信し、インターネットへのイグジットには引き続きパブリックゲートウェイを使用する。

経路代行は、プライベート・バックボーンを介した VPC および IBM サービス・ネットワーク内の内部/プライベート・ネットワークに必要です。 委任の必要性を回避するために、Web レイヤー・サーバーをアプリ・レイヤー・サブネットに接続し、内部 VPC およびクラウド・サービス・ネットワークのネクスト・ホップとしてアプリ・サブネット・ゲートウェイを使用するように Web インスタンス上でルーティングを変更することができます。

パブリック・ロード・バランサーで使用される機能

このユース・ケースでは、パブリック・ロード・バランサーの以下の機能を使用します。

  • 10.10.0.5 インターフェースおよび 10.10.1.5 インターフェースで IP スプーフィング・チェックを無効にして、ソース・アドレスの保持を有効にします。 このアクションには、インスタンスに対する昇格された IAM 許可が必要です。
  • NFV プロキシーを経由しないリソースのアウトバウンド・フロー用のパブリック・ゲートウェイ。
  • 10.10.0.5 インターフェースに接続された浮動 IPは、インバウンドおよびアウトバウンドのパブリック・フローを NFV ロード・バランサーに直接使用可能にします。
  • インスタンス・インターフェースと VPC サブネットにそれぞれステートフル・セキュリティー・グループとネットワーク・アクセス制御リスト (ACL) を追加して、VPC 内の分離リソースを追加します。

ユース・ケース 3: VPN

VPN ゲートウェイを VPC ルーティング・テーブルのネクスト・ホップとして使用するために、ゲートウェイは専用サブネット内に作成されます。 このサブネットは VPN ゲートウェイにのみ使用され、経路 0.0.0.0/0 があり、ネクスト・ホップが VPN 接続である場合は、異なるルーティング・テーブルを持つ VPN ゲートウェイ・サブネットに関連付けられます。

以下に例を示します。

  • サブネット A は、仮想サーバーをホストするために使用され、デフォルトのルーティング・テーブルに関連付けられます。 経路 0.0.0.0/0があり、ネクスト・ホップは VPN 接続です。
  • サブネット B は、VPN ゲートウェイをホストするために使用され、新しいルーティング・テーブル (ルーティング・テーブル B) を作成します。 これは、サブネット B をルーティング・テーブル B に関連付けます。 デフォルトでは、ルーティング・テーブル B に経路は必要ありません。

上記のように、経路 0.0.0.0/0 があり、ネクスト・ホップが VPN 接続である場合にサブネット間の接続を確立するには、以下の代行経路を追加します。

destination CIDR==zone3 VPC prefix, action==delegate, location==zone1
destination CIDR==zone1 VPC prefix, action==delegate, location==zone3

制限とガイドライン

IBM Cloud Custom Routes for VPC には、以下の制限およびガイドラインが適用されます。

一般的な制限

  • 現時点では、1 つのカスタム・ルーティング・テーブルを着信トラフィック用 (関連付けの対象はトラフィック送信元) と発信トラフィック用 (関連付けの対象はサブネット) の両方として使用することはできません。 また、デフォルトのカスタム・ルーティング・テーブルに着信トラフィック送信元を関連付けることはできません。
  • 現在、非対称ルーティングが原因でリターン・トラフィックが失敗する可能性があります。 この問題は、ECMP 静的経路に依存するすべてのサービスに影響します。 例えば、宛先が 10.134.39.64/26 で、ネクスト・ホップがそれぞれ 192.168.2.4192.168.2.5 の 2 つの ECMP 経路を VPC A に作成するとします。 これらのネクスト・ホップは、NFV デバイスの IP アドレスです。 VPC 内のインスタンス A からトラフィックを送信すると、パケットは次のホップの 1 つにランダムにルーティングされ、反対側の ECMP ハッシュ アルゴリズムにより、戻りトラフィックが転送トラフィックと同じパスをたどるという保証はありません。 この現象は、 _非対称ルーティング_と呼ばれます。 非対称ルーティングが発生した場合、問題はルーティング自体にあるのではなく、セキュリティ グループはトラフィックを 1 つのパスでのみ認識するため、セキュリティ グループのルールでこのトラフィックが許可されていても、セキュリティ グループはトラフィックをドロップします。 一般的に、ECMP ルートの使用は避けることをお勧めします。
  • カスタム経路でネクスト・ホップ IP アドレスに到達できるかどうかは、その経路が転送トラフィックに使用されるかどうかを決定する要因ではありません。 そのため、接頭部が同じ (ただしネクスト・ホップの IP アドレスが異なる) 複数の経路を使用すると、問題が発生する場合があります。到達不可のネクスト・ホップの IP アドレスに転送されたトラフィックが送達されない可能性があるからです。
  • IBM Cloud VPC では、RFC-1918 および IANA に登録された IPv4 アドレス・スペースを VPC 内でプライベートに使用できます。ただし、IANA の特殊目的の範囲は例外で、IBM Cloud サービスに割り当てられた範囲を選択できます。 企業内、およびIBM Cloud Transit Gateway または IBM Cloud Direct Linkとともに VPC 内で IANA 登録範囲を使用する場合は、各ゾーンにカスタム経路をインストールする必要があります。 詳しくは、Routing considerations for IANA-registered IP assignments を参照してください。
  • 同じ宛先に 2 つの異なるアドバタイズされたルートが存在する場合、次の制限が適用されます。
    • 両方のルートのネクストホップが同じゾーンにある場合、優先度の高いルート(つまり、priority )がプライマリパスとして使用され、優先度の低いルート(つまり、priority ) がバックアップ パスとして使用されます。 両方の経路の優先順位が同じである場合は、ECMP を使用して、2 つの経路にわたってトラフィックを均等に経路指定します。
    • 両方の経路のネクスト・ホップが異なるゾーンにある場合、 Transit Gateway または Direct Link ルーターが最適な経路を選択します。 この場合、これは最も古い公示された経路です。

経路優先順位

同じ宛先 CID/ 接頭部を持つ複数の経路が存在する場合は、優先順位の値が最も高い経路が使用されます。 同じ宛先 CIDR/prefix および優先順位を持つ経路は、ECMP ルーティングを使用します。

出口経路

発信のカスタム経路については、宛先経路を追加するときにゾーンを選択する必要があります。 ただし、その同じゾーン内にネクスト・ホップがある必要はありません。 着信のカスタム経路については、ネクスト・ホップは同じゾーン内になければなりません。

等コスト・マルチパス (ECMP)

暗黙ルーターは、ECMP ルーティング (宛先は同じであるがネクスト・ホップ・アドレスが異なる複数の経路) を実行しますが、以下の制限があります。

  • これは、アクションが deliverの経路にのみ適用されます。
  • 宛先が同じ経路はゾーンごとに 2 つのみ許可されます。ただし、ネクスト・ホップのアドレスが異なっている必要があります。
  • ECMP を使用する場合は、戻りのパスに同じパスが使用されない可能性があります。
  • ECMP は、IP アドレスのネクスト・ホップ・タイプのみをサポートします。

Ingress 経路

  • 現在、パブリック・イングレス・ルーティング(public internet トラフィックの選択)はコンソールでのみ利用可能です。 CLI と API が予定されています。
  • 各 Ingress 送信元タイプは、VPC ごとに最大 1 つの Ingress ルーティング・テーブルに関連付けることができますが、VPC は複数の Ingress ルーティング・テーブルを持つことができ、各 Ingress ルーティング・テーブルには 1 つ以上の Ingress タイプを関連付けることができます。
  • 特定のトラフィック送信元からの着信トラフィックは、そのトラフィック送信元に関連付けられているカスタム・ルーティング・テーブルの経路を使用して転送されます。
  • Ingress トラフィック送信元に関連付けられていて、アクションが deliverであるカスタム・ルーティング・テーブル内のカスタム経路には、経路が追加されるアベイラビリティー・ゾーン内の VPC のアドレス接頭部の 1 つに含まれているネクスト・ホップ IP が必要です。 さらに、そのネクスト・ホップ IP は、経路のターゲットとなる VPC およびアベイラビリティー・ゾーンの仮想サーバー・インターフェースに構成されたものでなければなりません。
  • 特定のトラフィック送信元からの着信トラフィックは、そのトラフィック送信元に関連付けられているカスタム・ルーティング・テーブルの経路を使用して転送されます。 対応する経路がカスタム・ルーティング・テーブルで見つからなければ、VPC のシステム・ルーティング・テーブルを使用してルーティングが続行されます。 この動作は、カスタム・ルーティング・テーブルのデフォルト経路にドロップのアクションを指定することで回避できます。
  • 宛先 IP (FIP) を持つカスタム経路を含む Ingress カスタム・ルーティング・テーブルは、FIP が関連付けられている仮想サーバー・インスタンスと同じゾーンに定義する必要があります。
  • IBM Cloud VPNゲートウェイにバインドされているフローティング IP は、パブリック・インターネット route_internet_ingress ソース・タイプが有効な場合、イングレス・ルーティング・テーブルのカスタム・ルートの宛先として使用できません。

固有の接頭部の長さ

カスタム・ルーティング・テーブルごとに、接頭部の長さとして最大 14 個の固有の長さを使用できます。 同じ接頭部を持つ複数の経路を、1 つの固有の接頭部としてのみカウントすることができます。 例えば、接頭部が /28 である経路が複数あるとします。 これは固有の接頭部としては 1 つとカウントされます。

VPN

  • スタティックなルートベースVPN接続のルートを作成する場合、ネクストホップのVPN接続IDを入力する必要があります。 VPN ゲートウェイは、ルーティング・テーブルが関連付けられているサブネットと同じゾーン内になければなりません。 ルーティング・テーブルに関連付けられているサブネットとは異なるゾーンで、VPN ゲートウェイをネクスト・ホップとして定義することは推奨されません。
  • ネクスト・ホップとして VPN 接続を使用する経路は、VPN 接続がアクティブな場合にのみ有効になります。 VPN 接続がダウンしている場合、ルーティング・ルックアップ中にこの経路はスキップされます。
  • ネクスト・ホップに VPN 接続を関連付けたカスタム経路が含まれているカスタム・ルーティング・テーブルに、着信トラフィック送信元を関連付けることはできません。
  • カスタム経路は、経路ベースの VPN でのみサポートされます。 ポリシー・ベース VPN を使用している場合、経路は、デフォルトのルーティング・テーブル内の VPN サービスによって自動的に作成されます。