Oracle Cloud：VCN Transit Routing で Hub and Spoke構成をしてみてみた

##・VCN Transit Routing
VCN Transit Routing はFastConnectまたはIPSec VPN経由でHub & Spokeによる複数VCN間の通信を可能にします。
Hub VCNにあるRote Tableの設定で、Spoke VCNの特定のサブネットとオンプレミスネットワークの経路を制御できます。

<img width="965" alt="構成01.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/3b5978cc-4dff-caed-958b-46768e7713df.png">

##・構成図
<img width="1257" alt="構成02.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/af470c64-18be-63e5-67fa-48a976ba0f97.png">
VCN Transit Routing は名前の通り、Routingの設定がメインとなります
構成図のようにDRGとLPGへ個別に専用のRoute Tableを作成し設定することでTransit Routing構成ができます

※Route表の注意点
・Default Route Table はSubnet用のため、DRGやLPGに付与しない
・Subnet,DRG,LPGのRoute Tableは共有せず個別に用意

##・手順概要
	Task 1: VCN作成
	Task 2: Hub VCNとOn-Premises NetworkをIPsec VPNで接続
	Task 3: Spoke VCNを作成
	Task 4: Hub VCN と Spoke VCNをLocal Peeringで接続
	Task 5: Spoke VCNのSubnetにRoute Ruleを設定
	Task 6: Hub VCN上のDRGにRoute Ruleを設定
	Task 7: Hub VCN上のLPGにRoute Ruleを設定
	Task 8: 疎通確認

##・Task 1 ～ Task 4
構成図にあるNetworkを構築し,
On-PremisesとHub VCN間が双方向でping sshで疎通できていることと、
HubとSpoke VCN間のLocal Peeringが双方向でping sshで疎通できていることを確認しておきます

##・Task 5：Spoke VCNのSubnet設定
 Spoke VCNのSubnetにRoute Tablesに設定します

・Route Rules
On-PremisesとHub VCN のSubnetに通信が通るようにします

|Destination CIDER |Route Target |
|---|---|
|172.24.0.0/16  |LPG-1|
|10.0.0.0/16  |LPG-1|


<img width="566" alt="Spoke_Subnet01.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/0429f119-5f8b-8a2f-7403-5c2368a9cf67.png">

##・Task 6：Hub VCN上のDRG設定
Hub VCN上のDRGにRoute Tablesを設定します

①Route Table作成
DRGからLPG-H-1を通して Spoke VCN のSubnet-1に通信が通るようにします

|Destination CIDER |Route Target |
|---|---|
|192.168.0.0/16  |LPG-H-1|

<img width="677" alt="DRG02.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/ce20e984-88a2-62a3-ca7b-3799f94e8ca8.png">


②作成したRoute TableをDRGに設定
DRGのメニューから、[Associate Different Route Table]をクリック
<img width="550" alt="DRG01.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/b9cf0acf-e0df-27b7-6115-6fdbde305c51.png">

作成したRoute Tableを設定して[Associate]をクリックして完了

<img width="545" alt="DRG02.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/ad7fbad4-b26c-44c7-4780-6bae3b194419.png">


##・Task 7: Hub VCN上のLPG設定
Hub VCN上のLPGにRoute Ruleを設定

①Route Table作成
Spoke VCのSubnetがLocal Peering からDRGを通して On-PremeseのNWに通信が通るようにします

|Destination CIDER |Route Target |
|---|---|
|172.24.0.0/16|DRG|

<img width="414" alt="LPG00.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/6cec2f92-087e-86b2-dd2a-7124d0ac0882.png">


②作成したRoute TableをHub VCNのLPGに設定
Hub VCNのLPGのメニューから、[Associate Different Route Table]をクリック

<img width="727" alt="LPG0２.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/1b5bd2a2-d89b-01d3-bb97-03a0fb53ced8.png">


作成したRoute Tableを設定して[Associate]をクリックして完了

<img width="404" alt="LPG01.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/e17d4bf5-60cd-3bd0-a77e-725f1a73bbbc.png">



##・Task 8：疎通確認

OnP -> Spoke-inst01 へssh確認

```shell-session
[oracle@OnP-Inst01 ~]$ ssh -i id_rsa opc@192.168.0.2 hostname
 Spoke-inst01
```
Spoke-inst01 -> OnP へssh確認

```shell-session
[opc@Spoke-inst01 ~]$ ssh -i id_rsa oracle@172.24.1.2 hostname
 OnP-Inst01
```


#■応用編
Transit Routing(伝送ルーティング)は、Oracle Services Network(OSN)内のObject StorageやAutonomous Databaseへのアクセスもできるので、OSN含めたHub-and-Spoke構成が可能です。
<img width="1038" alt="NW構成応用2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/db2fe851-ca2e-dd2a-9517-511f74556e05.png">
このHub-and-Spoke構成は同様 各Route Tableの設定で可能になります。
手順は次の記事を参考ください
・参考: [Transit Routing + IPSec VPN / FastConnectで Object Storage, Autonomous Databaseへ接続してみてみた](https://qiita.com/shirok/items/ec0e5a09346422346fd4)

#■参考
　●マニュアル：
　　　・[Transit Routing: Private Access to Oracle Services](https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitroutingoracleservices.htm#options)
 　　　・[Supported Cloud Services in Oracle Services Network](https://cloud.oracle.com/networking/service-gateway/supported-services)
 　　　・[Public IP Address Ranges](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/addressranges.htm#osn-ranges)
 　　　・[To manage the access control list of an Autonomous Database](https://docs.cloud.oracle.com/iaas/Content/Database/Tasks/adbmanaging.htm)
 　　　・[Oracle Services Network(OSN)](https://cloud.oracle.com/networking/service-gateway/supported-services)
　　　・[伝送ルーティング : Oracle Servicesへのプライベート・アクセス](https://docs.oracle.com/cd/E97706_01/Content/Network/Tasks/transitroutingoracleservices.htm)
　　　・[伝送ルーティング : 同じリージョン内の複数のVCNへのアクセス](https://docs.oracle.com/cd/E97706_01/Content/Network/Tasks/transitrouting.htm)