異なるテナンシ(異なる契約)どうしをLocal VCN Peeringすることができ、これを Cross-tenancy Peeringと言います。
今回は、ABC社とXYZ社のVCNを Cross-tenancy Peeringし、On-PremisesからABC社へVPN接続を行い、Transit RoutingでOn-PremisesからXYZ社へ直接疎通できるように構成設定します。
#■ 構成図
お互いのテナンシへ権限を付与してPeeringを確立できるように、必要なIAMポリシーを実装するには、それぞれの2箇所のテナンシのVCN管理者の内、片側の管理者をRequestor、もう一方をAcceptorとして指定します。
Requestorは、お互い2つのLPG(Local Peering Gateway)の接続リクエスト許可を行います。
Acceptorは Acceptorのコンパートメント内のLPGに接続するリクエスタ権限を付与する特定のIAMポリシーを作成します。
このポリシーがないと、Requestorの接続リクエストは失敗します。
#■ 手順概要
1. LPG作成:
各VCN管理者は、それぞれのVCNのLPGを作成します。
2. 情報共有:
各テナンシーの管理者はお互いの必要情報を共有します。
3. 接続必須IAMポリシー設定:
各管理者は、IAMポリシーを設定して、接続を確立できるようにします。
4. 接続確立:
リクエスタの管理者が、2つのLPGを接続します。
5. ルート表設定:
各管理者は、VCNルート表を設定して、VCN間接続トラフィックを必要に応じて有効にします。
6. セキュリティ・リスト設定:
各管理者は、VCNセキュリティ・リストを設定して、VCN間接続トラフィックを必要に応じて有効にします。
##● 注意点
・IAMポリシーは、rootコンパートメントへ作成
・LPGのPeeringは、リクエスタ側テナントのIAMポリシーGroup権限があるユーザーで実施
・
#■ 環境作成(事前準備)
概要図にある以下内容で各テナンシーを設定
今回Oracle Identity Cloud Service(IDCS)のOCIログイン・ユーザーでCross-Tenancy接続許可をするので、接続許可のポリシーを付与したIAMのGroupをIDCSのユーザーへマッピングを行います。
##● RequestorテナンシーUser/Group設定
・テナンシー名:ABC
・Tenancy OCID:ocid1.tenancy.oc1..aaaaaaarequestorComp
・Compartment名:RequestorComp
・VCN名:VCN-1
・LPG名:LPG-1
・OCIのGourp名:RequestorGrp
・OCIのGourp OCID : ocid1.group.oc1..aaaarequestorgrp
・IDCSのGroup:OCI-RequestorGrp
・IDCSのLPG接続許可管理者User: oci@mail.com
##● Acceptorテナンシー
・テナンシー名:XYZ
・Tenancy OCID:ocid1.tenancy.oc1..aaaaaacceptorcomp
・Compartment名:AcceptorComp
・VCN名:VCN-2
・LPG名:LPG-2
・LPG OCID:ocid1.localpeeringgateway.oc1.iad.aaaaaaaalpg2
#■ Requestorテナンシー:LPG接続許可管理者User設定
LPG接続許可するためのRequestorGrpを作成し、VCN管理ユーザーへ権限付与します
今回IDCSユーザーで設定するので、IDCSユーザーで実行できるように権限設定します
##● 管理ユーザーでログイン
管理権限あるIDCSユーザーでログイン
##● RequestorGrpグループ作成
-
Create Group画面
NAMEを設定して[Submit]をクリックNAME: RequestorGrp
##● IDCSユーザー用 OCI-RequestorGrpグループ作成
Oracle Identity Cloud Service(IDCS)フェデレーションからユーザー設定
-
Federation画面
Oracle Identity Cloud Serviceアイデンティティ・フェデレーションを表示
Nameにある「OracleIdentityCloudService」をクリック
-
OracleIdentityCloudService画面
左ペインにある[Groups]をクリックし、[Create IDCS Group]をクリック
-
Create IDCS Group画面
NAMEを設定して[Create]をクリックNAME: OCI-RequestorGrp
##● IDCSユーザーへOCI-RequestorGrpグループ権限付与
-
OracleIdentityCloudService画面
左ペインにある[Groups]をクリックし、権限付与するユーザーをクリック
-
Add User to IDCS Group画面
GROUPSから作成した「OCI-RequestorGrp」を選択し、[Add]をクリック
##● Group Mapping
作成したOCIグループ(RequestorGrp)とIDCSグループ(OCI-RequestorGrp)をマッピング
-
OracleIdentityCloudService画面
Identitiy > Federation から「OracleIdentityCloudService」をクリック
左ペインから、[Group Mappings]をクリックし、[Add Mappings]をクリック
-
Add Mappings画面
作成したIDCSグループとOCIグループをマッピング・IDENTITY PROVIDER GROUP: OCI-RequestorGrp
・OCI GROUP: RequestorGrp
#■ 1. LPG作成:
各VCN管理者は、それぞれのVCNにLPGを作成
#■ 2. 情報共有:
各テナンシーの管理者はお互いの以下必要情報を共有します。
##● Requestorテナンシ
・テナンシのOCID
・RequestorGrpのOCID
・VCN CIDR とSubnet
##● Acceptorテナンシ
・テナンシのOCID
・VCN CIDR と Subnet
#■ 3. 接続必須IAMポリシー設定:
各管理者は、以下IAMポリシーを設定して、接続を確立できるようにします。
##● リクエスタ側: IAMポリシー設定
-
Create Policy画面
以下情報を設定し[Create]ボタンをクリック・NAME:ポリシー名を設定、ここではPolicy-R
・DISCRIPTION: 任意の説明を記入
・COMPARTMENT: rootコンパートメントを選択
・Poilicy Builder: 以下4行入力
Define tenancy Acceptor as ocid1.tenancy.oc1..aaaaaacceptorcomp
Allow group RequestorGrp to manage local-peering-from in compartment RequestorComp
Endorse group RequestorGrp to manage local-peering-to in tenancy Acceptor
Endorse group RequestorGrp to associate local-peering-gateways in compartment RequestorComp with local-peering-gateways in tenancy Acceptor
##● アクセプタ側: IAMポリシー設定
-
ポリシー作成
Identityにある「Policies」画面にて、「root」COMPARTMENTを選択し、
[Create Policy]ボタンをクリックして以下情報を設定し[Create]ボタンをクリック・NAME:ポリシー名を設定、ここではPolicy-A
・DISCRIPTION: 任意の説明を記入
・COMPARTMENT: rootコンパートメントを選択
・Poilicy Builder: 以下4行入力
Define tenancy Requestor as ocid1.tenancy.oc1..aaaaaaarequestorComp
Define group RequestorGrp as ocid1.group.oc1..aaaarequestorgrp
Admit group RequestorGrp of tenancy Requestor to manage local-peering-to in compartment AcceptorComp
Admit group RequestorGrp of tenancy Requestor to associate local-peering-gateways in tenancy Requestor with local-peering-gateways in compartment AcceptorComp
#■ 4. LPG接続確立
リクエスタは、リクエスタのLPG(LPG-1)画面でアクセプタLPG(LPG-2)のOCIDを使用してPeering
##● アクセプタ側: LPG(LPG-2)
作成したLPGのOCIDをリクエスタ側へ通知します
- LPG(LPG-2)画面
LPGの右端にあるドットをクリックし、[Copy OCID]をクリック
このIDをリクエスタ側へ通知します
##● リクエスタ側: LPG(LPG-1)
-
LPG(LPG-1)画面
LPGの右端にあるドットをクリックし、[Establish Connection]ボタンをクリック -
Establish Peering Connection画面
以下項目を設定し、[Establish Peering Connection]をクリック・Specify THE LOCAL PEERING GATEWAY: [ENTER LOCAL PEERING GATWAY OCID]を選択
・PEERING GATEWAY OCID: アクセプタ側: LPG(LPG-2)のOCIDを設定 -
接続確認
以下ステータスを確認・Peering Status: 「Peerd」,
・Peer Advertised CIDR: アクセプタ側: LPG(LPG-2)のVCN CIDR(172.16.0.0/16)
・Cross-Tenancy: Yes
#■ 5. ルート表設定
ここでは、VCN-1をHubとして、On-PremisesからVCN-2へアクセスできるように以下図面のように、①〜④個別に作成したRoute Tableを設定してVCN Transit Routingを行います。
VCN Transit Routingの設定は、次を参考に設定できます。
- Oracle Cloud:VCN Transit Routing で Hub and Spoke構成をしてみてみた
- Transit Routing + IPSec VPN / FastConnectで Object Storage, Autonomous Databaseへ接続してみてみた
#■ 6. セキュリティ・リスト設定
各管理者は、VCNセキュリティ・リストを更新して、VCN間接続トラフィックを必要に応じて有効にします。
今回は、3箇所のSIDRすべてのプロトコル(All Protocols)を許可していますが、セキュリティ要件に合わせて設定してください。
##● VCN-1
###・Ingress Rule 1
- SOURCE CIDR:10.0.0.0/16
- IP PROTOCOL:All Protocols
###・Ingress Rule 2
- SOURCE CIDR:172.16.0.0/16
- IP PROTOCOL:All Protocols
###・Ingress Rule 3
- SOURCE CIDR:192.168.0.0/16
- IP PROTOCOL:All Protocols
##● VCN-2
###・Ingress Rule 1
- SOURCE CIDR:10.0.0.0/16
- IP PROTOCOL:All Protocols
###・Ingress Rule 2
- SOURCE CIDR:172.16.0.0/16
- IP PROTOCOL:All Protocols
###・Ingress Rule 3
- SOURCE CIDR:192.168.0.0/16
- IP PROTOCOL:All Protocols04
#■ 疎通テスト
##● On-premises -> VCN-2へ疎通確認
・On-premises -> spoke-inst01 へping確認
[opc@OnP-Inst01 ~]$ ping 172.16.0.2 -c 3
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=63 time=53.0 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=63 time=53.0 ms
64 bytes from 172.16.0.2: icmp_seq=3 ttl=63 time=53.0 ms
--- 172.16.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 53.009/53.024/53.035/0.011 ms
・On-premises -> spoke-inst01 へssh確認
[opc@OnP-Inst01 ~]$ ssh -i id_rsa opc@172.16.0.2 hostname
spoke-inst01
##● VCN-2 -> On-premisesへ疎通確認
・spoke-inst01 -> On-premises へping確認
[opc@spoke-inst01 ~]$ ping 192.168.0.2 -c 3
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=63 time=46.6 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=63 time=46.6 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=63 time=46.5 ms
--- 192.168.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 46.575/46.616/46.669/0.039 ms
・spoke-inst01 -> On-premises へssh確認
[opc@spoke-inst01 ~]$ ssh -i id_rsa opc@192.168.0.2 hostname
OnP-Inst01
#■ 参考
・ローカルVCNピアリング(リージョン内)
・Transit Routing: Private Access to Oracle Services
・Supported Cloud Services in Oracle Services Network
・Public IP Address Ranges
・To manage the access control list of an Autonomous Database
・Oracle Services Network(OSN)
・伝送ルーティング : Oracle Servicesへのプライベート・アクセス
・伝送ルーティング : 同じリージョン内の複数のVCNへのアクセス