Oracle Cloud Infrastructureドキュメント

ルート表

このトピックでは、仮想クラウド・ネットワーク(VCN)のルート表を管理する方法について説明します。

警告

Oracle Cloud Infrastructureコンソール、APIまたはCLIを使用してクラウド・リソースに説明、タグまたはわかりやすい名前を割り当てるときは、機密情報を入力しないでください。

VCNのルーティングの概要

VCNは、仮想ルート表を使用して、VCNから(たとえば、インターネット、オンプレミス・ネットワーク、ピアリング済VCNへの)トラフィックをVCNに送信します。 これらの仮想ルート表には、既によく知られている従来のネットワーク・ルート・ルールと同じように見えるルールがあります。 各ルールは、宛先CIDRブロックと、そのCIDRと一致するトラフィックのターゲット(次のホップ)を指定します。

VCNでのルーティングに関する基本情報を次に示します。

  • プライマリ・ルーティングのシナリオは、VCN外部の宛先にサブネット・トラフィックを送信することです。 サブネットには、関連付けられた選択項目の単一ルート表があります。 そのサブネット内のすべてのVNICは、ルート表内のルールの対象となります。 サブネットを保持するトラフィックのルーティング方法は、ルールによって制御されます。
  • トラフィックをルーティングするとき、宛先IPアドレスがVCN CIDRブロック内にない場合、Oracleはサブネット・ルート表onlyを使用します。 VCN内でトラフィックを有効にするためのルート・ルールは必要ありません。
  • ルート表に重複するルールがある場合、Oracleは表内の最も特定のルールを使用してトラフィックをルーティングします(つまり、「最長接頭辞マッチ」を使用したルール)。
  • VCNの外部にルーティングするネットワーク・トラフィックと一致するルート・ルールがない場合、トラフィックはドロップ(ブラック・ホールド)されます。

ルート表およびルート・ルールの操作

各VCNにはルールがないデフォルト・ルート表が自動的に用意されています。 特に指定しない場合、すべてのサブネットでVCNデフォルト・ルート表が使用されます。 VCNにルート・ルールを追加すると、必要に応じてルート表をデフォルト表に追加できます。 ただし、パブリック・サブネットとプライベート・サブネットの両方が必要な場合(たとえば、「シナリオC: VPNを使用したパブリック・サブネットとプライベート・サブネット」を参照)、サブネットごとに個別の(カスタムの)ルート表を作成します。

VCNの各サブネットは単一のルート表を使用します。 サブネットを作成するときは、使用するサブネットを指定します。 「サブネットが使用するルート表を変更する」はいつでも利用できます。 ルート表ルールを編集したり、表からすべてのルールを削除することもできます。

作成中にオプションでカスタム・ルート表に説明的な名前を割り当てることができます。 ユニークである必要はなく、後で変更することもできます。 Oracleは自動的にルート表にOracle Cloud ID (OCID)という一意の識別子を割り当てます。 詳細は、「リソース識別子」を参照してください。

ルート・ルールでは、宛先CIDRブロックおよびそのCIDRに一致するすべてのトラフィックのターゲット(次のホップ)を指定します。 以下に、ルート・ルールのターゲットの許可されるタイプを示します:

ノート

特定のリソースがルート・ルールのターゲットである場合、そのリソースを削除できません。
たとえば、トラフィックがルーティングされているインターネット・ゲートウェイは削除できません。 最初に、そのインターネット・ゲートウェイをターゲットとして使用しているすべてのルール(すべてのルート表内)を削除する必要があります。

ルート・ルールをルート表に追加する際、宛先のCIDRブロックおよびターゲット(ターゲットが存在するコンパートメント)を指定します。 例外: ターゲットがサービス・ゲートウェイである場合、宛先CIDRブロックではなく、Oracleで指定される文字列を指定して、対象となるサービスのパブリック・エンドポイントを表します。 そうすれば、サービスのCIDRブロックをすべて知る必要がなくなります。これは時間とともに変化する可能性があります。

ルールを誤って構成した(たとえば、誤った宛先CIDRブロックを入力した)場合は、ルート対象となっているネットワーク・トラフィックが削除され(空白の格納)、意図しないターゲットに送信される可能性があります。

VCNデフォルト・ルート表は削除できません。 カスタム・ルート表を削除するには、まだサブネットに関連付けられていない必要があります。 または、「転送ルーティング」の拡張シナリオでは、VCNのDRGアタッチメントまたはLPGに関連付けないでください。

ルート表とルート・ルールの最大数については、「サービス制限」を参照してください。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者が作成するポリシーで、コンソールまたはSDK、CLIまたはその他のツールを使用したREST APIのどちらを使用しているかにかかわらず、必要なタイプのアクセスを付与する必要があります。 アクションを実行しようとしたときに、権限のないメッセージや権限のないメッセージを取得する場合は、管理者に付与されているアクセスのタイプと作業するコンパートメントを確認してください。

管理者向け: 「ネットワーキングのIAMポリシー」を参照してください。

拡張シナリオ: 転送ルーティング

「転送ルーティング」と呼ばれる拡張ルーティングのシナリオがあり、「単一」 Oracle Cloud Infrastructure FastConnectまたはIPSec VPN上でのオンプレミス・ネットワークと複数のVCN間の通信を可能にします。 このシナリオでは、サブネットのかわりに「DRGアタッチメントまたはVCN上のLPGを使用」を関連付けるルート表を作成します。 ネットワーキング・サービスでは、ルート表の使用方法に対して制限が課されます。

  • ルート表をVCNのDRGアタッチメントに関連付けると、ルート表には、VCN上のLPGをターゲットとして使用しているルールのみを含めることができます。
  • 同様に、ルート表をLPGに関連付けると、ルート表には、ターゲットとしてDRGにアタッチされたVCNを使用するルールのみを含めることができます。

割当表が関連付けられていないDRGアタッチメントまたはLPGが存在できます。 ただし、DRGアタッチメントまたはLPGにルート表を関連付けた後は、ルート表が必ず関連付けられている必要があります。 ただし、「異なる」ルート表を関連付けることができます。 表ルールを編集したり、一部またはすべてのルールを削除することもできます。

プライベートIPをルート・ターゲットとして使用

プライベートIPの定義に精通していない場合は、「プライベートIPアドレス」を参照してください。 要するに: プライベートIPは、プライベートIPアドレスと関連するプロパティを含むオブジェクトで、独自のOCIDを持っています。

一般的な使用例

前述のように、Oracleは、宛先IPアドレスがVCNの外部であるトラフィックに対して、指定されたサブネット・ルート表onlyを使用します。 通常は、1つ以上のルールを設定して、そのトラフィックをVCN上のゲートウェイにルーティングします(たとえば、DRGはオンプレミス・ネットワークに接続したもの、インターネットに接続したインターネット・ゲートウェイ)。 ただし、VCN内のインスタンスを介して(VCN外の宛先に移動)トラフィックをルーティングする必要がある場合があります。 その場合、VCN上のゲートウェイではなく、VCN内のプライベートIPをターゲットとして使用できます。 これを行う理由はいくつかあります:

  • インスタンスからの発信トラフィックをフィルタ処理する仮想ネットワーク機能(ファイアウォールや侵入検知など)を実装します。
  • VCN上のオーバーレイ・ネットワークを管理します。これにより、コンテナ・オーケストレーション・ワークロードを実行できます。
  • VCNにネットワーク・アドレス変換(NAT)を実装するには、次の手順を実行します。 かわりに、Oracleは、VCNとともに「NATゲートウェイ」を使用することをお薦めします。 一般的に、NATは直接インターネット接続がないインスタンスに対して、アウトバウンド・インターネット・アクセスを有効にします。

これらのユースケースを実装するには、トラフィックをインスタンスにルーティングするだけではなりません。 インスタンス自体にも構成が必要です。

ヒント

プライベートIPルート・ターゲットの高可用性は、「セカンダリ・プライベートIPアドレス」を使用して有効にできます。
障害が発生した場合、セカンダリ・プライベートIPを既存のVNICから同じサブネット内の別のVNICに移動できます。 「セカンダリ・プライベートIPを同じサブネット内の別のVNICに移動するには」 (コンソール命令)およびUpdatePrivateIp (API命令)を参照してください。

プライベートIPをターゲットとして使用するための要件

  • プライベートIPは、ルート表と同じVCNになければなりません。
  • プライベートIP VNICは、VNICがトラフィックを転送できるように送信元/宛先チェックをスキップするように構成する必要があります。 デフォルトでは、VNICはチェックを実行するように構成されています。 詳細は、「ソース/宛先チェック」を参照してください。
  • パケットを転送するようにインスタンス自体を構成する必要があります。 詳細については、「NATインスタンスの構成」を参照してください。
  • ルート・ルールでは、IPアドレス自体ではなく、プライベートIPのOCIDをターゲットとして指定する必要があります。 例外: コンソールを使用する場合は、プライベートIPアドレス自体をターゲットとして指定し、コンソールがルール内の対応するOCIDを判別して使用することができます。

    重要

    プライベートIPターゲットを使用するルート・ルールでは、次の場合にブラック・ホールが発生する可能性があります:

    • プライベートIPが割り当てられているインスタンスが停止または終了しました。
    • プライベートIPが割り当てられているVNICは、送信元/宛先のチェックを有効にするように更新されるか、または削除されます
    • プライベートIPはVNICから割り当てられていません

    ターゲットのプライベートIPが終了すると、コンソールのルート・ルールに、ターゲットOCIDが存在しなくなったというノートが表示されます。

    フェイルオーバーの場合: セカンダリ・プライベートIPをスタンバイに移行する前にターゲット・インスタンスが終了している場合は、スタンバイの新しいターゲット・プライベートIPのOCIDを使用するようにルート・ルールを更新する必要があります。 このルールでは、プライベートIPアドレス自体ではなく、ターゲットOCIDを使用します。

一般的な設定プロセス

  1. どのインスタンスがトラフィックを受信し、転送するかを決定します(たとえば、NATインスタンス)。
  2. インスタンス上でプライベートIPを選択します(プライマリVNICまたはセカンダリVNIC上に存在する可能性があります)。 フェイルオーバーを実装する場合は、インスタンス上のVNICの1つに「セカンダリ・プライベートIP」を設定します。
  3. プライベートIP VNICの送信元/宛先チェックを無効にします。 「ソース/宛先チェック」を参照してください。
  4. プライベートIPのOCIDを取得します。 コンソールを使用している場合は、OCIDまたはプライベートIPアドレス自体と、プライベートIPコンパートメントの名前を取得できます。
  5. トラフィックをプライベートIPにルーティングする必要があるサブネットについては、サブネット・ルート・テーブルを表示します。 表にすでに同じ宛先CIDRで異なるターゲットがあるルールがある場合は、そのルールを削除します。
  6. 「ルート・ルールを追加」に以下を入力します:

    • 宛先CIDRブロック: サブネットから出るすべてのトラフィックがプライベートIPに移動する必要がある場合は、0.0.0.0/0を使用します。
    • ターゲット・タイプ: プライベートIP。
    • コンパートメント: プライベートIPのコンパートメント。
    • ターゲット: プライベートIPのOCID。 コンソールを使用していて、プライベートIPアドレス自体を入力する場合は、コンソールが対応するOCIDを決定し、それをルート・ルールのターゲットとして使用します。

前述のとおり、パケットを転送するようにインスタンス自体を構成する必要があります。 詳細については、「NATインスタンスの構成」を参照してください。

コンソールを使用した場合

VCNデフォルト・ルート表を表示するには
既存のルート表内のルールを更新するには
ルート表を作成するには
サブネットが使用するルート表を変更するには
ルート表を削除するには
ルート表のタグを管理するには

APIの使用

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

VCNルート表を管理するには、次の操作を使用します: