Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > OCI DRGの構成要素について解説してみる

OCI DRGの構成要素について解説してみる

ブログ
Oracle Cloud
2024.12.25

皆さま、メリークリスマス!y.takanashiです。

本記事はOracle Cloud Infrastructure Advent Calendar 2024 カレンダー1のラストを飾るDay25として執筆しています。

OCIのアドベントカレンダーには、これで3年連続の参戦となります!🎉

過去記事は以下からご覧いただけます。

Cloudii ブログ - 「GitHub リポジトリをOCI DevOpsと連携」(2023年)

Cloudiiブログ - 「【Oracle Cloud】オブジェクト・ストレージ対応のストレージ管理サービスについて」(2022年)

ちなみに今年(2024年)はこの記事も含めて4本投稿することができました!👇

Cloudiiブログ - 「OCI ロギングでカスタム・ログを収集する」

Cloudiiブログ - 「OCI アイデンティティ・ドメインを使用してAWSにログインする」

Cloudiiブログ - 「OCI セキュリティ・ゾーン + クラウド・ガードで可用性を高める」

昨年(2023年)は 16本の記事を投稿していましたが、今年は忙しさに追われ、投稿数が減ってしまいました…。

来年(2025年)は 10本を目標に、より充実した内容を皆様お届けしたいと思います💪✨

さて今回は 動的ルーティング・ゲートウェイ(以下DRG) の構成する要素と役割について、簡単にですが紹介していきたいと思います。

※注意
本記事はあくまで個人の検証に基づく内容です。

詳細情報については、以下のドキュメントをご参照ください。

OCI公式ドキュメント - 「動的ルーティング・ゲートウェイ」

Speaker Deck - 「外部接続詳細 - 動的ルーティング・ゲートウェイ(DRG)」

特にSpeaker Deckの記事は、ポイントを押さえたわかりやすい構成で、私自身も日頃から参考にさせていただいています。

この場を借りて、執筆者の皆さまに感謝を申し上げます!🙇


DRGとは?

DRGは、OCIネットワークの中核を担う仮想ネットワーキング用ルータ機能を提供するサービスです。

DRGは、以下のような場面で使用されます。

  • 同一テナンシ内や異なるテナンシ間でVCNを接続する場合
  • サイト間VPNやFastConnectを利用した専用線接続時
  • オンプレミス環境や他クラウドとの接続時

DRGはOCIネットワークの中核的役割を果たし、多様なネットワーキング要件に対応可能な柔軟性と高い機能性を提供します。

ちなみに名前に「ゲートウェイ」と付いていますが、DRGはOCIの他のゲートウェイ系サービス(例:インターネット・ゲートウェイなど)とは異なり、VCNと同じカテゴリに属する独立したネットワークサービスです。

実際、OCIのネットワーク・ビジュアライザ※を使用してトポロジを確認すると、DRGがVCNと同じ階層で構成されていることが確認できます(画面の丸部分のサービス)。

一方、他のゲートウェイサービスはVCN内に含まれる形で表示されます。

※ネットワーク・ビジュアライザ:OCI内のネットワーク構成を視覚的に表示するツール。

構成要素

DRGは以下のリソースから構成されます。

  • VCNアタッチメント
  • 仮想回線アタッチメント
  • IPSecトンネル・アタッチメント
  • リモート・ピアリング接続アタッチメント
  • ループバック・アタッチメント
  • クロステナンシ・アタッチメント
  • DRGルート表
  • ルートディストリビューションのインポート
  • ルートディストリビューションのエクスポート

以降はそれぞれのリソースについて説明します。


アタッチメント

アタッチメントは、DRGが他のネットワークリソースと接続するための構成要素であり、具体的な接続リソースを指します。

アタッチメントを作成することで、DRGを中心に構築されたハブ型のカスタムネットワークを実現できます。

これにより、オンプレミス環境や他クラウド、異なるテナンシやリージョンにまたがる多様なネットワークを効率的に統合・管理することが可能です。

以下は、アタッチメントの種類とユースケースの対応表です。

アタッチメントユースケース
VCNアタッチメント同一テナンシ内でのVCN接続
仮想回線アタッチメントFastConnectによるオンプレミスや他クラウドとの接続
IPSec トンネル・アタッチメントサイト間VPNでオンプレミスや他クラウドと接続
リモート・ピアリング接続アタッチメント別リージョンのVCNと接続
ループバック・アタッチメントDRG内で、仮想回線アタッチメントからIPSecトンネル・アタッチメントへのトラフィック転送
クロステナンシ・アタッチメント異なるテナンシ間でのVCN接続

アタッチメントの作成方法はリソースごとに異なります。

以下のアタッチメントは、「xxアタッチメントの作成」から手動で作成可能です。

  1. VCNアタッチメント
  2. リモート・ピアリング接続アタッチメント
  3. クロステナンシ・アタッチメント

以下のアタッチメントは、関連リソースをDRGとアタッチした時に自動作成されます。

そのため、DRGの詳細画面からの手動で作成することはできません。

  1. 仮想回線アタッチメント
  2. IPSecトンネル・アタッチメント
  3. ループバック・アタッチメント

ルート・ディストリビューション

ルート・ディストリビューションは、各アタッチメントからルートを動的にインポートまたはエクスポートする機能を提供します。

ルート・ディストリビューションでは、以下の要素をステートメントとして定義します。

  • 一致条件:アタッチメントの種類や特定のアタッチメントを指定
  • 優先度:ステートメントの適用順序
  • アクション:現時点ではルーティングを許可する"ACCEPT"のみサポート

DRGを作成すると、以下の2つのディストリビューションが自動的に作成されます。

  • Autogenerated Import Route Distribution for VCN Routes:VCNアタッチメント用ルート・ディストリビューション
  • Autogenerated Import Route Distribution for ALL Routes:その他のルート・ディストリビューション

ルート・ディストリビューションには「インポート」と「エクスポート」 の2種類があります。

インポート

インポートは、DRGに関連付けられたアタッチメントのうち、ステートメント条件に一致するルートを動的に関連付けられたDRGルート表に割り当てる機能です。

例えば以下のようなネットワーク構成を考えます。

  1. AWSとOCI間:動的にルートを管理
  2. OCI内:静的にルート・ルールを設定

デフォルトでは、インポートの設定は「Match All(すべてのアタッチメントからのルートを許可)」となっており、全てのアタッチメントのルートが動的にインポートされます。

動的管理を特定の範囲(この例ではAWS-OCI間)に絞る場合、以下の手順でステートメントを定義します。

  • ルート・ディストリビューション文の追加」を選択
  • 以下の内容でステートメントを作成
    • 一致タイプ:アタッチメント
    • アタッチメント・タイプ・フィルタ:IPSecトンネル
    • アタッチメント:任意のアタッチメントを選択(ここでは「」)
    • アクション:ACCEPT(変更不可)
上記はVCNアタッチメントのみにルールを適用するため、Autogenerated Import Route Distribution for VCN Routesにステートメントを定義します。

さらに、DRGルート表の「インポートの有効化」を無効化することで、関連アタッチメントのルート・ルールを静的に管理することも可能です。

エクスポート

エクスポートでは、各アタッチメントに割り当てられたDRGルート表のルートを該当アタッチメントに提供する機能です。

DRGの作成時に「Default Export Route Distribution for DRG: DRG」という名前で作成されます。

すべてのルートを許可する「Match All」のみがサポートされており、新規ルールの作成はできません。

エクスポートの設定は特段のカスタマイズが不要なため、通常あまり気にする必要はありません。


DRGルート表

DRGルート表は、各アタッチメントからDRGに入ってくるパケットのルーティングを制御するためのルート表です。

DRGの作成時に以下のルート表が自動生成され、それぞれ特定のリソースにアタッチされます。

  • Autogenerated Drg Route Table for RPC, VC, and IPSec attachments...サイト間VPNやFastConnect、リモート・ピアリング接続を作成時に自動でアタッチされるルート表
  • Autogenerated Drg Route Table for VCN attachments...VCNアタッチメントを作成した時に自動的にアタッチされるルート表

DRGルート表に記載するルート・ルールはルート・ディストリビューションの定義に従い自動生成される「動的ルート・ルール」とユーザーが手動で作成する「静的ルート・ルール」の2種類が存在します。

動的ルート・ルールは「すべてのルート・ルールの取得」から確認可能です。

静的ルート・ルールは「静的ルート・ルールの追加」から以下の内容を設定して作成します。

  • 宛先CIDRブロック
  • 次のホップ・アタッチメント・タイプ(仮想クラウド・ネットワーク、リモート・ピアリング接続、クロステナンシ)
  • 次のホップ・アタッチメント(選択したアタッチメント・タイプの具体的なアタッチメントを指定)

補足でルート・ルールの宛先CIDRが競合した時、静的ルート・ルール > 動的ルート・ルールの順で評価され、動的ルート・ルールは「競合」の状態となり、パケットはドロップされます。

 

ちなみに、DRGルート表は「DRGルート表の作成」から手動で作成することも可能です。

  • DRGルート表名
  • 静的ルート・ルール
    ※最大15個まで静的ルート・ルールを追加可能です。
    • 宛先CIDRブロック
    • 次のホップ・アタッチメント・タイプ
    • 次のホップ・アタッチメント
  • ルート・ディストリビューションのインポートの有効化
  • ECMP(等コスト・マルチパス・ルーティング)の有効化
    ※ECMPが有効の場合:複数の仮想回線やIPSecトンネルから同一ルートがインポートされると、DRGルート表に追加され、ECMPルーティングが適用されます。
    ECMPが無効の場合:競合は静的優先度に従って解決されます。

作成後、対象のアタッチメントで「編集」を選択、作成したDRGルート表を割り当てて「変更の保存」を実施します。

変更後、作成したルート表がアタッチされていることがわかります。

このように、DRGルート表は各アタッチメントからDRGに向かうパケットのルーティングを制御します。

一方でDRGからVCNに向かうパケットのルーティングを制御するVCNルート表で制御されます。

これら2つのルート表の関係を示した図は以下の通りです。

VCNルート表については本内容の範囲外となり、詳細は以下のドキュメントをご覧ください。

OCI公式ドキュメント - 「VCNルート表」


ネットワーキング・シナリオ

ここでは以下の構成を例に、DRGを経由したルーティングの設定方法を解説します。

以下が要件です。

  1. AWSとOCI間:既にサイト間VPNは設定済
  2. 通信経路:AWSからの通信はNetwork Firewall(10.0.0.2)を経由
  3. サーバ到達:Network Firewall(以下NFW)を経由後、DRGアタッチメントを使用してサーバ(192.168.32.2)に到達
  4. VCN1とVCN2:ローカル・ピアリングは未設定

通常、ルート・ディストリビューションのインポートのステートメントを用いれば動的ルート・ルールで制御可能です。

しかし、このシナリオではサイト間VPN用の接続ルールでネクスト・ホップがVCN1を経由せずVCN2にパケットが直接到達してしまい、NFWを通過しない問題が発生します。

実際、IPSecトンネル・アタッチメントに関連付けられたルート表(「Autogenerated Drg Route Table for RPC, VC, and IPSec attachments」)はデフォルト設定で以下の動的ルート・ルールをインポートしています。

要件を満たすため、以下のような設定を行います。

  1. AWSとOCI間:動的にルートを管理
  2. OCI内:静的にルート・ルールを設定

これにより、AWSからの通信はすべてNFWを経由してサーバに到達する構成を実現できます。

最初にAWS-OCI間のみを動的にルート・ルールを生成するよう、ルート・ディストリビューションの変更を実施します。

「2.2.1 インポート」で説明した内容と一部重複しますが、以下の手順でルート・ディストリビューションを変更します。

  • 対象:Autogenerated Import Route Distribution for ALL routes(IPSecトンネル・アタッチメント用)
  • 変更内容
    • 一致タイプ:アタッチメント・タイプ
    • アタッチメント・タイプ:IPSecトンネル

この設定により、IPSecトンネルのみが動的にルート・ルールを広報するようになり、AWSとOCI間のみが動的に管理されます。

続いてAWS→OCIに通る通信を全てNFWに向けるよう、IPSecトンネル・アタッチメント用ルート表(ここでは「Autogenerated Drg Route Table for RPC, VC, and IPSec attachments」)の設定を行います。

DRGルート表の詳細画面から「静的ルート・ルールの追加」を選択、以下の手順でルート・ルールを追加します。

  • 宛先:10.0.0.0/16
  • 次のホップアタッチメント・タイプ:仮想クラウド・ネットワーク
  • 次のホップアタッチメント:Hub
  • 宛先:192.168.0.0/16
  • 次のホップアタッチメント・タイプ:仮想クラウド・ネットワーク
  • 次のホップアタッチメント:Hub

次にOCI内を静的にルート・ルールを管理する設定を実施します。

最初にVCN1のVCNアタッチメント(「Hub」)の設定を実施します。

転送ルーティング」という方式を使用して、DRGからVCN1に入るすべての通信をNFWに送る設定を行います。

転送ルーティングについての詳細は以下のドキュメントをご覧ください。

OCI公式ドキュメント - 「ハブVCN内の転送ルーティング」

転送ルーティングを実現するために、VCNルート表の作成し、VCNアタッチメントへの関連付けを行います。

NFW用のVCN(「ここでは「VCN1」)のルート表作成画面から「ルート表の作成」を選択、以下のルート・ルールを設定します。

  • ターゲット・タイプ:プライベートIP
  • 宛先タイプ:CIDRブロック
  • 宛先CIDRブロック:192.168.0.0/16
  • ターゲット選択:10.0.0.2(NFWのプライベートIP)

設定後、VCNアタッチメントに関連付けます。

対象アタッチメントの「編集」からVCNルート表の関連付けを「なし」→「既存の選択」に変更、作成したVCNルート表を選択、「変更の保存」を行います。

※ルート表関連付け後にリージョン名(例: Japan East(Tokyo))が表示されることがありますが、これはOCI側の仕様であり、設定は正常に反映されています。

NFWを通過後、仮想マシンがあるVCN2に通信を送るために、NFW用サブネットのルート表(ここでは「RT-Sub1」を設定します。

NFW用サブネットに関連付けられているルート表に以下の設定を追加します。

  • ターゲット・タイプ:動的ルーティング・ゲートウェイ
  • 宛先タイプ:CIDRブロック
  • 宛先CIDRブロック:192.168.0.0/16
    ターゲット動的ルーティング・ゲートウェイ:DRG

これで、VCN2への通信がすべてDRG経由で送信されるようになります。

VCN2のアタッチメント(ここでは「Spoke」)に通信を転送するために、DRGルート表を作成し、Hubに関連付けます。

ここではDRGルート表を新規作成する方法で設定します。

DRGルート表の詳細画面から「DRGルート表の作成」を選択、以下のルート・ルールを追加します。

  • 名前:任意(ここでは「RT-VCN1-to-DRG」)
  • 宛先CIDRブロック:192.168.0.0/16
  • 次のホップ・アタッチメント・タイプ:仮想クラウド・ネットワーク
  • 次のホップ・アタッチメント:Spoke
    ルート・ディストリビューションのインポートの有効化:無効
  • ECMPの有効化:無効

作成後、VCNアタッチメントの詳細画面の「編集」からDRGルート表を変更、「変更の保存」を選択して関連付けます。

最後にVCN2用サブネット・ルート表とDRGルート表を以下のルート・ルールで設定します。

  • サブネット・ルート表
    • ターゲット・タイプ:動的ルーティング・ゲートウェイ
    • 宛先タイプ:CIDRブロック
    • 宛先CIDRブロック:10.0.0.0/16,172.16.0.0/16
    • ターゲット動的ルーティング・ゲートウェイ:DRG
  • DRGルート表
    • 宛先CIDRブロック:0.0.0.0/0
    • 次のホップ・アタッチメント・タイプ:仮想クラウド・ネットワーク
    • 次のホップ・アタッチメント:Hub

これで、すべてのルート・ルールの設定が完了しました。

今回のシナリオを一枚にまとめると、以下のようになります。


まとめ

DRGは、OCIネットワークの中核を担う仮想ネットワーキング用ルータ機能を提供するサービスです。

以下のような場面で活用されます。

  • 同一テナンシ内や異なるテナンシ間でVCNを接続する場合
  • サイト間VPNやFastConnectを利用した専用線接続時
  • オンプレミス環境や他クラウドとの接続時

DRGは主に以下の要素から構成されます。

  • アタッチメント
    • DRGが他のネットワークリソースと接続するための構成要素。アタッチメントを作成することで、DRGを中心に構築されたハブ型のカスタムネットワークを実現
    • アタッチメントは以下の2種類がある
      • 手動で作成するリソースと
      • DRGと関連付けた時に自動作成されるリソース
  • ルート・ディストリビューション
    • 各アタッチメントからルートを動的にインポートまたはエクスポートする機能を提供
      • インポート:ルート・ルールの管理範囲を制限可能
      • エクスポート:DRGルート表のルートを該当アタッチメントに提供(デフォルトは「Match All」でカスタマイズ不可)
  • DRGルート表
    • DRGに入ってくるパケットのルーティングを制御
    • 最大15個まで静的ルート・ルールを追加可能
    • ルート・ルールの宛先が競合した場合、静的 > 動的の順で評価され、動的ルート・ルールは無効化される

以上となります。

この記事を通じて読者の皆様の問題解決の一助となれば幸いです。

どうぞ良い年末年始をお過ごしください~!


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。