こんにちは、k.katoです。
今回は、同じリージョン、異なるテナンシの VCN同士を1つのDRGで接続する方法をご紹介したいと思います!
※ローカル・ピアリング接続を用いた接続も可能ですが、今回はDRGアタッチメントのみによる接続の検証を行います!
異なるリージョン、異なるテナンシの接続方法を知りたい場合はこちらの記事をご確認ください!
【Oracle Cloud】DRGで、異なるリージョン、異なるテナンシのVCN同士を繋いでみた!
構成
こちらが今回説明する構成になります。
今回の構成では、テナンシA(リクエスタ)とテナンシB(アクセプタ)を接続します。
テナンシA、テナンシBともに大阪リージョンを使用します。
同じリージョンの場合は、DRGはどちらかのテナンシに一つ存在すれば接続可能です。
異なるリージョンを接続する場合は2つのDRGが必要です。異なるリージョン同士で接続する場合は、冒頭のURLをご覧ください!
DRGがあるテナンシ側が、アクセプタ(受け入れ側)であると思っていただければOKです。
この検証では、それぞれのサブネットにあるVMから、pingが通ることを以て成功としたいと思います!
2つのVCNでCIDRが重複しないようにしてください。
グループの作成
【グループの作成:テナンシA】
テナンシAのDefaultドメインにグループ「R-Group」を作成します。
ここに私のアカウントを所属させます。前提として、私はAdministoratorグループにも所属しているので、2つのグループに所属させていることになります。
後で使用するので、作成した「R-Group」のOCIDを控えておきます。
【グループの作成:テナンシB】
テナンシBのDefaultドメインにグループ「A-Group」を作成します。
ここに私のアカウントを所属させます。テナンシBでも、私はAdministoratorグループに所属しているので、先ほどと同様に2つのグループに所属させていることになります。
後で使用するので、作成した「A-Group」のOCIDを控えておきます。
ポリシーの作成
ここが今回の1番の肝ですね!
ここからの内容は、VCN間のルーティングに関するIAMポリシーのドキュメントの、[他のテナンシのVCNsへのアタッチ]という内容をもとにしています。
※実際に適用しているリソースタイプがドキュメントと異なっており、本検証では広範なリソースタイプであるdrgsを用いています。
【ポリシーの作成:テナンシA】
まず先に、テナンシB側のテナンシOCIDを控えておく必要があります。テナンシB側にログインし、右上のユーザ画面に表示されるテナンシからテナンシOCIDを調べるのが早いです。
以下の準備が必要です!
用意するもの
ocid1.tenancy.oc1..aaaaaaaaa...ocid1.group.oc1..aaaaaaaa...ocid1.group.oc1..aaaaaaaa...これらが用意できましたら、ルートコンパートメントに、以下のポリシー「R-Policy」を作成します。
Define group A-Group as <テナンシBのグループOCID>
Define group R-Group as <テナンシAのグループOCID>
Endorse group R-Group to manage drgs in tenancy Acceptor
Admit group A-Group of tenancy Acceptor to manage drgs in tenancy
【ポリシーの作成:テナンシB側(テナンシB)】
こちらをまずは準備してください。
用意するもの
ocid1.tenancy.oc1..aaaaaaaaa...ocid1.group.oc1..aaaaaaaa...ocid1.tenancy.oc1..aaaaaaaa...ocid1.group.oc1..aaaaaaaa...これらが用意できましたら、ルートコンパートメントに、以下のポリシー「A-Policy」を作成します。
Define group R-Group as <テナンシAのグループOCID>
Define group A-Group as <テナンシBのグループOCID>
Admit group R-Group of tenancy Requestor to manage drgs in tenancy
Endorse group A-Group to manage drgs in tenancy Requestor
テナンシ間接続
1.テナンシA側のVCNの詳細画面を開き、「DRGアタッチメントの作成」を選択します。
2.DRGの場所は「別のテナンシ」を選択し、テナンシB側にあるDRGのOCIDをここに入力してください。
3.テナンシB側にログインし、接続するDRGの詳細画面を開き、DRGのOCIDをコピーしてください。
4.コピーしたOCIDを、先ほどテナンシAの DRGの画面に貼り付けます。
5.成功すると、テナンシAにDRGアタッチメントが作成されます。
6.テナンシBのDRGに、先ほど作成したものが、クロステナンシ・アタッチメントにて確認できます。
VCN、VM、セキュリティリストの設定
本来、本番環境などではセキュリティの観点からプライベート・サブネットの利用が推奨されます。本検証では、簡単に検証を行うため、パブリック・サブネットを使用して構成しています。
【テナンシA】
1.ネットワーク(VCN / サブネット)
| 項目 | 設定値 |
|---|---|
| VCN | 10.0.0.0/16 |
| パブリックサブネット | 10.0.0.0/24 |
2.セキュリティ・リスト
イングレス・ルール(受信)
| プロトコル | ポート範囲 | 接続元 | 説明 |
|---|---|---|---|
| ICMP | Type: 0, Code: 8 | 192.168.0.0/16 | テナンシBからのPing応答用 |
| TCP | 22 | (接続元のIPアドレス) | SSH接続用 |
エグレス・ルール(送信)
| プロトコル | ポート範囲 | 送信先 | 説明 |
|---|---|---|---|
| すべてのプロトコル | All | 0.0.0.0/0 | アウトバウンド通信は全て許可 |
3.ゲートウェイ
- DRGアタッチメント
- インターネット・ゲートウェイ(ssh接続のため)
4.ルート表
| 宛先 CIDR | ターゲット | 説明 |
|---|---|---|
| 192.168.0.0/16 | テナンシBのDRG | テナンシB向け用 |
| 0.0.0.0/0 | インターネット・ゲートウェイ | インターネット宛 |
ここでは、テナンシBのDRGをテナンシAのルート表でターゲットとして設定します。
5.コンピュート・インスタンス(VM)
| 項目 | 設定値 |
|---|---|
| 用途 | Ping送信・検証用 |
| シェイプ | VM.Standard.A1.Flex |
| スペック | 1 OCPU / 6 GB メモリ |
| 配置 | パブリックサブネット |
【テナンシB】
1.ネットワーク(VCN / サブネット)
| 項目 | 設定値 |
|---|---|
| VCN | 192.168.0.0/16 |
| パブリックサブネット | 192.168.0.0/24 |
2.セキュリティ・リスト
イングレス・ルール(受信)
| プロトコル | ポート範囲 | 接続元 | 説明 |
|---|---|---|---|
| ICMP | Type: 0, Code: 8 | 10.0.0.0/16 | テナンシAからのPing受信用 |
| TCP | 22 | (接続元のIPアドレス) | SSH接続用 |
エグレス・ルール(送信)
| プロトコル | ポート範囲 | 送信先 | 説明 |
|---|---|---|---|
| すべてのプロトコル | All | 0.0.0.0/0 | 全方向へのアウトバウンド許可 |
3.ゲートウェイ
- 動的ルーティング・ゲートウェイ(DRG)
- DRGアタッチメント
4.ルート表
| 宛先 CIDR | ターゲット | 説明 |
|---|---|---|
| 10.0.0.0/16 | テナンシBのDRG | テナンシA向け用 |
5.コンピュート・インスタンス(VM)
| 項目 | 設定値 |
|---|---|
| 用途 | Ping受信・検証用 |
| シェイプ | VM.Standard.A1.Flex |
| スペック | 1 OCPU / 6 GB メモリ |
| 配置 | パブリックサブネット |
検証
では、検証してみましょう。
テナンシA(10.0.0.0/16)のVMから、テナンシB(192.168.0.0/16)のVMに向かって、pingを飛ばしてみます。
成功です!!
終わりに
最後までお読みいただき、ありがとうございました!
この記事の内容が、皆様の運用や設計の一助となれば幸いです。










