Oracle Cloud: DRGで東京リージョンを経由して、オンプレミスと 大阪リージョンを接続してみてみた

Oracle Cloud Infrastructure(OCI)の [Dynamic Routing Gateway（DRG）](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingDRGs.htm)は Oracleバックボーンを使用して Global Network が構成されています。
これにより、オンプレミス環境から1つの OCIリージョンに接続して、世界中のOCIリージョンに接続できます。
![DRG.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/55867240-48f4-3bad-c660-dd514a06a7b2.jpeg)
ということで、Tokyoリージョンを経由して、On-PremisesとOsakaリージョンへ接続できることを確認してみてみます。

# ■ 構成
オンプレミスとOCI TokyoリージョンをIPSec VPNで接続し、Tokyoと Osakaリージョンを Remote Peering(RPC)で接続し、DRGのルート機能で Tokyoリージョンを経由してオンプレミスと Osakaリージョンを疎通するよう設定します。
![構成図_Route表.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/2bd871f2-e2c9-29bf-8ea6-3b316a5d58a2.jpeg)
VCNアタッチメントには2つのルートテーブルがあります。
　・VCN Route Table: VCN介してDRGへ伝搬するOCNルート情報
　・DRG Route Table: DRGへ伝搬するDRGにアタッチされたリソースのルート(VCN,FastConnect,IPSec,RPC)のルート情報

# ■ 事前準備
以前実施した記事を参考にIPSec VPN と Remote Peering(RPC) そして、Oracle Services Network (OSN)をTransit Routing構成しておきます。
今回は、構成図にある VCN Route Table と DRG Route Table の設定をしてオンプレミスとOCIを疎通できるようにします。
・[リージョン間を Remote VCN Peering してみてみた](https://qiita.com/user/items/192674aa6e903ea6694a)
・[NEC IXルーターを冗長構成でIKEv2 IPSec VPN接続してみてみた](https://qiita.com/user/items/611ffb7cdd96ac95d32b)
・[Transit Routing + IPSec VPN / FastConnectで Object Storage, Autonomous Databaseへ接続してみてみた](https://qiita.com/shirok/items/ec0e5a09346422346fd4)



# ■ 設定前の On-Premises 受信ルート確認
On-Premises側ルーターへ接続して、DRGの IPSec Tunnel (BGP Peer Address:192.168.254.18)から受信されてるルートを確認

## ● 受信 BGP Route確認
オンプレミスのルーターへ接続し、Tokyoリージョンの VCN Subnet 10.1.0.0/24 Route のみ受信していることを確認
OsakaリージョンのVCNとOSNのルートは、以降の設定をすることで追加されます

```shell
Router(config)# show ip bgp neighbors 192.168.254.18 received-routes
	BGP table version is 7, local router ID is 192.168.254.37
	Local AS number 65000
	Status codes: s - suppressed, * - valid, h - history
				> - best, i - internal
	Origin codes: i - IGP, e - EGP, ? - incomplete

	Network            Next Hop            Metric     LocPrf  Path
	*  10.1.0.0/24        192.168.254.18                         31898 i
```




# ■ Osaka: OSN プライベートアクセス設定
オンプレミスネットワークに Oracle Services Network (OSN) へのプライベート アクセスできるよう設定

## ● Serive Gateway用 VCN Route Table設定
**1) Serive Gateway用 VCN Route Table作成**
対象のVCN画面のリソースにある [ルート表] をクリックし、[ルート表の作成]をクリックして新規にSerive Gateway用 VCN Route Tableを作成
次の画面のように Route TalbeへDRGを通してオンプレミスのネットワークへ通じるように設定
![02_RT-SG登録00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/3e553447-538c-982a-def3-a406cd2e2f8d.jpeg)



## ● Serive Gatewayへ作成した VCN Route Tableアタッチ
**1) Service Gateway画面**
対象のVCN画面のリソースにある [サービス・ゲートウェイ]をクリックし、
VCNにアタッチした Service Gatewayの右端にあるドット[・・・] > [ルート表の関連付け]をクリック
![02_RT-SG登録02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/446db483-5609-0cd1-bf60-fe594ff75b9a.jpeg)

**2) ルート表の関連付け画面**
Services Gateway用に新規作成したRoute Talbeを選択し、[関連付け]をクリック
![02_RT-SG登録03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/d6b5e2af-9ff0-9faa-b927-805cd35165e0.jpeg)



## ● DRG Attchment用 VCN Route Table設定

**1) DRG Attchment用 VCN Route Table作成**
対象のVCN画面のリソースにある [ルート表] をクリックし、[ルート表の作成]をクリックして新規にDRG用 VCN Route Tableを作成
次の画面のように Route TalbeへService Gatewayを通してOCNへ通じるように設定
![01_RT-DRG登録00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/59be137c-4ead-3b88-9a96-13705c3f2c7d.jpeg)


## ● DRG Attchment へ作成した VCN Route Tableアタッチ
**1) DRG画面**
対象のVCN画面のリソースにある [動的ルーティング・ゲートウェイのアタッチメント]をクリックし、
DRGにアタッチしたアタッチメント名のリソースをクリック
![01_RT-DRG登録01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e60f5c9c-f286-82ad-0add-476082b7782a.jpeg)


**2) Attachment-VCN画面**
[編集]をクリックし、アタッチメント編集画面にある[VCNルート表]タブを選択し、作成したRoute Tableを選択して、[変更の保存]をクリック
![01_RT-DRG登録03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/064abbd3-bc41-44e1-20c9-537e4b48ee2d.jpeg)



# ■ Osaka: DRG ルート表設定
DRGにアタッチされた Attachment間でトラフィックをルーティングするルート情報を設定


## ● DRG ルート表設定
**1) OCIコンソール**
ネットワーキング > 動的ルーティング・ゲートウェイを選択し対象をDRGをクリック
![21_Osaka_DRGルート表設定00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/dc40368d-9905-8540-4fca-d89db027473c.jpeg)



**2) DRG画面**
左ペインのリソースから [DRGルート表]をクリックし、
ルート・ディストリビューションのインポートにある [Autogenerated Import Route Distribution for VCN Routes]をクリック
![21_Osaka_DRGルート表設定01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c8c486b7-5167-6a4b-d6a3-3e4122213057.png)




**3) ルート・ディストリビューション文 画面**
[文の管理]をクリック
![21_Osaka_DRGルート表設定02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/fc98d22c-961c-e828-ee07-6ff810d2f0c9.jpeg)



**4) ルート・ディストリビューション文の管理画面**
OsakaリージョンのVCNルートとRPCからのルート(Tokyoリーション VCNとOnーPremises IPSecのルート)をDRGへ通知するよう設定します。
Match Type は、"Attachment type"を選択するとリソース全体、"Attachment" を選択するとリソース個別に設定できます。

|Priority  |Match Type  |Match Criteria  |
|---|---|---|
|1  |Attachment type  |VCN  |
|2  |Attachment  |RPC-Tokyo  |

![21_Osaka_DRGルート表設定03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/55eb7324-e1ea-8a3c-fb06-9d2a272cafd4.png)


**5) ルート・ディストリビューショ追加確認**
Tokyoリージョンと接続するRPCが追加されていることを確認
![21_Osaka_DRGルート表設定04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c3092174-bdf8-187a-0f74-2904b93d4958.jpeg)



## ● DRG Route確認
**1) DRG画面**
左ペインのリソースから [DRGルート表]をクリックし、
名前の[Autogenerated Drg Route Table for RPC, VC, and IPSec attachments]をクリック
![22_Osaka_DRGルート表確認01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/1f19e6c9-a133-96ad-2448-4b935f928052.png)




**2) Autogenerated Drg Route Table for RPC, VC, and IPSec attachments画面**
[すべての・ルートルールの取得]をクリック
![22_Osaka_DRGルート表確認02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/35853175-bab6-be2e-3450-47dde2fe6749.png)




**3)  ルートルール確認**
DRG、RPC通じて、VCN CIDRルートが通じていることを確認
![63_Osaka-DRGルート表追加08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/ab23c1ea-1dbd-d25e-7018-47bd478c579f.png)




# ■ Tokyo DRGルート表設定

## ● ECMP設定
複数の VPNもしくは FastConnect接続がされていて、オンプレミスCPEがサポートしている場合、Equal Cost Multipath (ECMP) を有効にできます。
ECMP により、複数のパスにトラフィックを負荷分散することで帯域幅を広げることができます。
ECMPを設定する場合は、次の設定をおこないます。

**1) OCIコンソール**
ネットワーキング > 動的ルーティング・ゲートウェイを選択し対象のDRGをクリック
![30_Tokyo_DRGルート表設定00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/4b61aa9f-0ac8-1099-c44e-635e0a6a23a1.jpeg)



**2) DRG画面**
左ペインのリソースから [DRGルート表]をクリックし、
名前にある[Autogenerated Drg Route Table for RPC, VC, and IPSec attachments]をクリック
![30_Tokyo_DRGルート表設定01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/431fba95-d223-39e1-a38f-754de6f47f8a.png)


**3) Autogenerated Drg Route Table for RPC, VC, and IPSec attachments画面**
[編集]をクリック
![30_Tokyo_DRGルート表設定02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/bc328da9-4696-803f-92a2-a838d42aaa43.png)



**4) DRGルート表の編集画面**
[ECMPの有効化]をチェックし、[変更の保存]をクリック
![30_Tokyo_DRGルート表設定03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/95c15b89-6bbf-c260-ab6f-ce8c71b39468.png)




**5) ECMP有効確認**
ECMP: Enabled で有効になってること確認
![30_Tokyo_DRGルート表設定04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/55d8d1ca-4c1b-f654-b65c-3f517e1708fe.jpeg)





## ● DRGルート・ディストリビューション設定

**1) DRG画面**
左ペインのリソースから [DRGルート表]をクリックし、
ルート・ディストリビューションのインポートにある [Autogenerated Import Route Distribution for VCN Routes]をクリック
![31_Tokyo_DRGルート・ディストリビューション設定01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/dcbbb505-7f1e-204c-0fc5-aeae8f9dac70.png)



**2) ルート・ディストリビューション文 画面**
[文の管理]をクリック
![31_Tokyo_DRGルート・ディストリビューション設定02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/3f76c3c3-4736-3784-2322-95fe9f2e2a52.png)



**4) ルート・ディストリビューション文の管理**
TokyoリージョンのVCNルートとRPCからのルート(Osakaリーション VCN), オンプレミスからのIPSecルートをDRGへ通知するよう設定します。
Match Type は、"Attachment type"を選択するとリソース全体、"Attachment" を選択するとリソース個別に設定できます。

|Priority  |Match Type  |Match Criteria  |
|---|---|---|
|1  |Attachment type |VCN  |
|2  |Attachment type |IPSec Tunnel |
|2  |Attachment  |RPC-Osaka  |

![31_Tokyo_DRGルート・ディストリビューション設定03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9bbd2cfa-1e65-beab-c0d8-0b69f78e991e.png)

**5) ルート・ディストリビューション追加確認**
RPC、IPSecのルート・ディストリビューションが追加されていることを確認
![31_Tokyo_DRGルート・ディストリビューション設定04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/0a773643-df23-f71a-5167-d0a341083cce.png)


## ● ルート確認
**1) DRG画面**
左ペインのリソースから [DRGルート表]をクリックし、
ルート・ディストリビューションのインポートにある [Autogenerated Import Route Distribution for VCN Routes]をクリック
![32_Tokyo_DRGルート表確認11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c4ad463b-89bf-957e-3382-73498b58a086.png)



**2) Autogenerated Drg Route Table for RPC, VC, and IPSec attachments画面**
[すべてのルート・ルールの取得]をクリック
![32_Tokyo_DRGルート表確認12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9996fc84-cf6e-e4b2-479f-f3a785f30e5b.png)



**3)ルート・ルール画面**
Tokyo,OsakaリージョンのVCN、OsakaリージョンのOSN、オンプレミスのNetwaorkのルート・ルールがあることを確認
![65_Tokyo-DRG_ServiceGWルート表ルート確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/ba6206f1-b8f4-dfeb-8e20-c407073282b6.png)








# ■ 設定確認


## ● 受信Route確認
On-Premises側ルーターで、OCIから受信されてるRouteを確認します。
Tokyo VCN, Osaka VCN, Osaka OSN(Oracle Services Network) のRouteが受信されてることを確認
Osaka OSNの Addressesは[ここ](https://docs.oracle.com/en-us/iaas/tools/public_ip_ranges.json)から確認
・参考: [Public IP Addresses for VCNs and the Oracle Services Network](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/addressranges.htm#osn-ranges)

 ```shell
Router(config)# show ip bgp neighbors 192.168.254.18 received-routes
	BGP table version is 44, local router ID is 192.168.254.37
	Local AS number 65000
	Status codes: s - suppressed, * - valid, h - history
				> - best, i - internal
	Origin codes: i - IGP, e - EGP, ? - incomplete

	Network            Next Hop            Metric     LocPrf  Path
	*  10.1.0.0/24        192.168.254.18                         31898 i
	*  10.2.0.0/24        192.168.254.18                         31898 i
	*  134.70.112.0/22    192.168.254.18                         31898 i
	*  140.91.48.0/23     192.168.254.18                         31898 i
	*  140.204.30.128/25  192.168.254.18                         31898 i
	*  192.29.240.0/22    192.168.254.18                         31898 i
	*  192.29.248.0/25    192.168.254.18                         31898 i
	*  192.29.248.128/25  192.168.254.18                         31898 i
	*  192.29.249.0/24    192.168.254.18                         31898 i

	Total number of prefixes 9
```





# ■ 疎通確認
## ● On-Premises --> Osaka: インスタンス

### ・ Trace Route確認 

```shell
[user@onpre-inst ~]$ traceroute -I 10.2.0.2
	traceroute to 10.2.0.2 (10.2.0.2), 64 hops max, 72 byte packets
	1  * * *
	2  * * *
	3  * * *
	4  10.2.0.2 (10.2.0.2)  35.721 ms  66.286 ms  69.012 ms
```


### ・ Ping疎通確認 


```shell
[user@onpre-inst ~]$ ping 10.2.0.2 -c 3
	PING 10.2.0.2 (10.2.0.2): 56 data bytes
	64 bytes from 10.2.0.2: icmp_seq=0 ttl=61 time=35.249 ms
	64 bytes from 10.2.0.2: icmp_seq=1 ttl=61 time=48.013 ms
	64 bytes from 10.2.0.2: icmp_seq=2 ttl=61 time=33.883 ms

	--- 10.2.0.2 ping statistics ---
	3 packets transmitted, 3 packets received, 0.0% packet loss
	round-trip min/avg/max/stddev = 33.883/39.048/48.013/6.363 ms
```


### ・ SSH接続確認

```shell
[user@onpre-inst ~]$ ssh -i id_rsa opc@10.2.0.2 hostname
	osaka-inst
```


## ● On-Premises --> Osaka: Object Storage

### ・ Trace Route確認 

```shell
[user@onpre-inst ~]$ traceroute -I objectstorage.ap-osaka-1.oraclecloud.com
	traceroute to objectstorage.ap-osaka-1.oci.oraclecloud.com (134.70.112.3), 64 hops max, 72 byte packets
	1  * * *
	2  * * *
	3  * * *
	4  134.70.112.3 (134.70.112.3)  40.878 ms  54.721 ms  38.362 ms
```

### ・ Ping疎通確認 

```shell
[user@onpre-inst ~]$ ping objectstorage.ap-osaka-1.oraclecloud.com -c 3
	PING objectstorage.ap-osaka-1.oci.oraclecloud.com (134.70.112.3): 56 data bytes
	64 bytes from 134.70.112.3: icmp_seq=0 ttl=61 time=17.962 ms
	64 bytes from 134.70.112.3: icmp_seq=1 ttl=61 time=44.919 ms
	64 bytes from 134.70.112.3: icmp_seq=2 ttl=61 time=55.137 ms

	--- objectstorage.ap-osaka-1.oci.oraclecloud.com ping statistics ---
	3 packets transmitted, 3 packets received, 0.0% packet loss
	round-trip min/avg/max/stddev = 17.962/39.339/55.137/15.681 ms
```


# ■ 参考
**● Oracle Cloud Infrastructure Documentation**
　・[Expanded DRG functionality](https://docs.oracle.com/en-us/iaas/releasenotes/changes/298fc8e3-d539-47a9-bbee-fd27bb4b80b2/)
　・[Dynamic Routing Gateways (DRGs)](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingDRGs.htm)
　・[On-premises access to multiple DRGs and VCNs in different regions through a single connection](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/scenario_f.htm)
　・[Private Access to Oracle Services](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/transitroutingoracleservices.htm)
　・[Public IP Address Ranges](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/addressranges.htm#osn-ranges)
　・[リージョン間のレイテンシ](https://docs.oracle.com/ja-jp/iaas/Content/Network/Concepts/inter_region_latency.htm)

**● Oracle Cloud Infrastructure Blog**
　・[Introducing global connectivity and enhanced cloud networking with the dynamic routing gateway](https://blogs.oracle.com/cloud-infrastructure/introducing-global-connectivity-and-enhanced-cloud-networking-with-the-dynamic-routing-gateway)