Oracle Interconnect for Azure を FastPathと高速ネットワークで相互接続してみてみた

Microsoft Azure には、ネットワークを高速化する FastPath と Accelerated Networking(高速ネットワーク)の機能があります。

**・ [ExpressRoute FastPath(ExpressRouteの機能)](https://learn.microsoft.com/ja-jp/azure/expressroute/about-fastpath)**
FastPath の目的は、お使いのオンプレミス ネットワークと仮想ネットワークの間のデータ パスのパフォーマンスを向上させることです。 FastPath が有効になっていると、ゲートウェイはバイパスされ、ネットワーク トラフィックが仮想ネットワーク内の仮想マシンに直接送信されます。

**・ [UltraPerformance Gateway (Gatewayの機能)](https://azure.microsoft.com/ja-jp/updates/general-availability-ultraperformance-gateway-tier-for-azure-expressroute/)**
HighPerformance Gateway の 5 倍のネットワーク スループットを提供します。

**・ [高速ネットワーク(VMの機能)](https://learn.microsoft.com/ja-jp/azure/virtual-network/accelerated-networking-overview)**
高速ネットワークによって、VM との間でシングル ルート I/O 仮想化 (SR-IOV) が可能になり、ネットワークのパフォーマンスが大幅に向上します。 

**・ [Azure可用性ゾーン と OCI可用性ドメインの距離](https://blogs.oracle.com/oracle4engineer/post/ja-network-latency-oci-azure-best-practices)**
OCI可用性ドメインに最も近いAzure可用性ゾーンを見つけて、アプリケーションVMおよびOracleデータベースを適切なAzure可用性ゾーンおよびOCI可用性ドメインに配置します。

ということで、これらを有効にして Microsoft Azure と Oracle Cloud Infrastructure (OCI) を相互接続し ICMP , TCP , UDP プロトコルでレイテンシ(遅延)を計測してみてみます。







# ■ 構成
![構成.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e7e3d7d5-f9e0-20a8-46c8-31b4fdf2be36.jpeg)
今回、Azure は仮想マシン(VM),OCI は Oracle Database Service(PaaS)を使用します。
FastPath と 高速ネットワークを有効化するために次をポイントに構成します。

```
● Azure側 
 ・ 仮想マシン
	 - VMタイプ: Standard_D2s_v5 (2vCPU) 
	 - OS: Oracle Linux 8.5
	 - 高速ネットワーク:有効
  ・ ExpressRoute
	 - 帯域幅: 1Gbps
  ・ Virtual Network Gateway
	 - SKU: Ultra Performance
  ・ 接続
	 - FastPath: 有効

● Oracle側 
 ・ Oracle Base Database Service 
	- VMタイプ: VM.Standard3.Flex (2vCPU)
	- OS: Oracle Linux 7.9
 ・ FastConnect
	- 帯域幅: 1Gbps
```

# ■ Azure: ExpressRoute 設定


## ● ExpressRoute 作成
### 1) Azure コンソール画面
Azureポータル へ サインインし、[すべてのサービス] > [ネットワーキング] > [ExpressRoute circuits]をクリック
![11_ExpressRoute作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/eadf909a-4bcf-6516-0c26-ded90ba74be3.jpeg)


### 2) ExpressRoute circuits 画面
[+作成]をクリック
![11_ExpressRoute作成02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/83d19fec-e6f8-5a79-d61f-e90b05452d42.jpeg)



### 3) ExpressRoute の作成: 基本画面
以下項目を入力し、[次: Configuration>] をクリック

	・サブスクリプション：任意のサブスクリプションを選択
	・リソース　グループ：事前に作成したリソース　グループを選択
	・リージョン: 任意のリージョンを選択、ここでは 東京の 'Japan East'を選択
	・名前: 任意の名前を設定

![11_ExpressRoute作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/b7039ea1-927e-6a0b-a445-f27a60d24108.jpeg)


### 4) ExpressRoute の作成: Configuration画面
以下項目を入力し、[次: Tags>] をクリック

	・ポートの種類: ’プロバイダー’を選択
	・新規作成またはクラシックからインポート: ’新規作成’を選択
	・プロバイダー: ’Oracle Cloud FastConnect’を選択
	・帯域幅: 任意の帯域幅を選択
	・SKU: 任意のSKUを選択。
	・課金モデル: 任意の課金モデルを選択
	・クラシック操作を許可する: ’いいえ’を選択

![11_ExpressRoute作成04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/95efb1d1-344e-b0dd-7531-50e73b613be6.jpeg)


### 5) ExpressRoute の作成: Tags画面
以下項目を入力し、[次: 確認および作成>] をクリック

	・名前: 任意の名前を設定
	・値: 任意の値を設定

![11_ExpressRoute作成05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/fecf7b7c-e50f-559a-5955-ffbc0b3b1265.jpeg)


### 6) ExpressRoute の作成: 確認および作成画面
内容を確認し問題なければ、[作成]をクリック
![11_ExpressRoute作成06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/b4a4fbc0-a2e8-bb30-7520-ba83de5fe42b.jpeg)


### 7) デプロイ進行中
![11_ExpressRoute作成07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/bc278754-6985-1999-d594-cd969a4bcb34.jpeg)


### 8) デプロイ完了
[リソースに移動]をクリック
![11_ExpressRoute作成08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/15ed2df1-3e24-435d-bf29-43837d0f6a4e.jpeg)



### 9) ExpressRoute画面
基本情報の項目にある’サービスキー’を使用して OCI FastConnect作成します。
サービスキーをコピーしてOCI FastConnect作成者へ共有します。
![11_ExpressRoute作成10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c8ee4685-15ce-0d85-c925-f62249317ec5.jpeg)



## ● Virtual Network Gateway 作成

### 1) Azure コンソール画面
Azureポータル へ サインインし、[すべてのサービス] > [ネットワーキング] > [仮想ネットワーク ゲートウェイ]をクリック
![12_仮想NWGateway作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/70298919-99b3-d7a4-36a1-1111f859620d.jpeg)



### 2) 仮想ネットワーク ゲートウェイ画面
[+作成]をクリック
![12_仮想NWGateway作成02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/88203f11-bde3-ab51-3e9a-0a8f2fb03daa.jpeg)


### 3) 仮想ネットワーク ゲートウェイの作成: 基本画面
以下項目を入力し、[次: タグ>] をクリック

	・サブスクリプション：任意のサブスクリプションを選択
	・リソース　グループ：事前に作成したリソース　グループを選択
	・名前: 任意の名前を設定
	・地域: 任意のリージョンを選択、ここでは 東京の 'Japan East'を選択
	・ゲートウェイの種類: 'ExpressRoute'を選択
	・SKU: FastPath有効にするため'Ultra Performance'を選択
	・仮想ネットワーク: 事前に作成した vNetを選択
	・ゲートウェイ サブネットのアドレス範囲: 仮想ネットワーク ゲートウェイを配置するCIDRを入力
	・パブリックIPアドレス: '新規作成'をクリック
	・パブリックIPアドレス名: 任意の名前を設定
	・パブリックIPアドレスのSKU: 任意のSKUを選択

![12_仮想NWGateway作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/972bb3ff-1fa8-5ea5-5d7f-3dfb6f4d7a8b.jpeg)


### 4) 仮想ネットワーク ゲートウェイの作成: タグ画面
以下項目を入力し、[次: 確認および作成>] をクリック

	・名前: 任意の名前を設定
	・値: 任意の値を設定

![12_仮想NWGateway作成04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/f74ed58f-4104-635f-061d-73cd0fcfeb46.jpeg)


### 5) 仮想ネットワーク ゲートウェイの作成: 確認および作成画面
内容を確認し問題なければ、[作成]をクリック
![12_仮想NWGateway作成05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/a5597841-14fd-c340-d9aa-9f1ee729e14e.jpeg)




### 6) デプロイ進行中
![12_仮想NWGateway作成06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/93055d8c-b739-86b1-6ad2-288be721d60c.jpeg)


### 7) デプロイ完了
[リソースに移動]をクリック
![12_仮想NWGateway作成07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/bb8151f1-bd2e-9c03-2fd0-055e2b0ae3ed.jpeg)



### 8) 仮想ネットワーク ゲートウェイ画面
作成完了
![12_仮想NWGateway作成08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e0e3f3bf-05b3-e0ea-b6d6-b0d0e055751c.jpeg)




## ● 接続作成
仮想ネットワークを ExpressRoute に接続する設定をします

### 1) 作成した仮想ネットワーク ゲートウェイの画面
左リストにある[接続]をクリック
![14_接続作成-vNGWから01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/018b1f1f-5170-da79-e788-6e86f7fba802.jpeg)



### 2) 接続の追加画面
以下項目を入力し、[OK] をクリック

	・名前: 任意の名前を設定
	・接続の種類: ExpressRouteを選択
	・認証: 必要に応じて設定
	・仮想ネットワーク ゲートウェイ: 事前に作成した仮想ネットワーク ゲートウェイを選択
	・ExpressRoute回線: 事前に作成した・ExpressRouteを選択
	・FastPath: チェック

![14_接続作成-vNGWから02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e6e64a1d-8b74-644b-b42a-0bcf97699bdf.jpeg)


### 3) デプロイ進行中
![14_接続作成-vNGWから03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/01d8953d-4d6f-0a87-ed03-68c4a894edad.jpeg)


### 4) デプロイ完了
左リストにある'接続'をクリック
![14_接続作成-vNGWから04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/40a9e90f-6145-31e3-49d2-4554b15831df.jpeg)


### 5)  接続画面
![14_接続作成-vNGWから05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/a6c7393f-2c30-6c4e-a602-b06c94d417de.jpeg)


### 6) FastPath設定確認
左リストにある[構成]をクリックし、[FastPath]がチェックされてることを確認
![14_接続作成-vNGWから06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c1e7c275-a4de-31c3-2bab-de554c2a38ed.jpeg)






# ■ OCI: FastConnect 設定

## ● DRG 作成

### 1) OCIコンソール
[ネットワーキング] > [動的ルーティング・ゲートウェイ]をクリック
![20_DRG作成00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/972f4b98-2ee2-ed7e-3480-5bd161fe6493.jpeg)

### 2) 動的ルーティング・ゲートウェイ画面
[動的ルーティング・ゲートウェイの作成]をクリック
![20_DRG作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/ce06957e-040f-14b6-45d4-20e6f01739a3.jpeg)


### 3) 動的ルーティング・ゲートウェイの作成画面
名前を設定し、[動的ルーティング・ゲートウェイの作成]をクリック
![20_DRG作成02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/fe253607-f13b-6cd7-0e05-93ff62872a75.jpeg)


### 4) DRG画面
DRG作成完了
![20_DRG作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/b56522a6-f50a-2da4-a7d0-508f69962ae3.jpeg)

## ● VCN Attachmentの作成
VCNとDRGを接続します

### 1) DRG画面
[仮想クラウド・ネットワークのアタッチメント作成]をクリック
![20_DRG作成04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/bbb7a665-ae33-7c1c-b366-c12a1dccabf1.jpeg)


### 2) 仮想クラウド・ネットワークのアタッチメント作成画面
以下内容を設定し、[仮想クラウド・ネットワークのアタッチメント作成]をクリック

    ・添付名: 任意の名前を設定
    ・仮想クラウド・ネットワーク: 事前に作成したVCNを設定

![20_DRG作成05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c6f3b3d1-f4d2-c523-1a9f-87aafa3bc833.jpeg)

### 3) VCN Attachmentの作成完了
![20_DRG作成06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/5bd5a362-a8f9-fa34-8290-f81d45c9d645.jpeg)


## ● FastConnect 作成
### 1) OCIコンソール
[ネットワーキング] > [FastConnect]をクリック
![26_FC作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c85520f8-1d2f-27ce-6c2b-d7681ffe2c63.jpeg)


### 2) FastConnect画面
[FastConnectの作成]をクリック
![26_FC作成02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/95a504b3-bc96-26d3-ac5f-31820eb3fd27.jpeg)






### 3) 接続の作成: 接続タイプ画面
以下項目を入力し、[次] をクリック

	・接続タイプ: 'FastConnectパートナー'を選択
	・パートナー: 'Microsoft Azure ExporessRoute'を選択

![26_FC作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/fce3657d-50a5-b926-096c-1ba7d7fbf627.jpeg)

### 4) 接続の作成: 構成画面
以下項目を入力し、[作成] をクリック

	・名前: 任意の名前を設定
	・コンパートメント: 配置するコンパートメントを選択
	・仮想回線タイプ: 'プライベート仮想回線'を選択
	・動的ルーティング・ゲートウェイ: 事前に作成したDRGを選択
	・プロビジョニングされた帯域幅: ExpressRoute回線に対して選択したのと同じ帯域幅(または使用可能な最も近い値)を選択
	・パートナー・サービス・キー: Azure ExporessRoute作成後に出力された値を入力
	・BGP IPアドレス: プライマリとセカンダリの追となる/28から/31までのサブネット・マスクを持つBGP IPアドレスから ORACLE側は2番目、顧客側は3番目のIPアドレスを設定します。この顧客BGP IP値が Azure ExpressRoute側へ自動設定されます。
	・MTU: ExpressRoute の MTU は 1500のため、1500を設定

:::note info
BGPペアごとに、/28から/31までのサブネット・マスクを持つ個別のアドレス・ブロックを指定する必要があります。
各アドレス・ブロックの2番目と3番目のアドレスは、BGP IPアドレス・ペアに使用されます。具体的には次のようにアサインするIPは決まります。
　1) ブロック内の2番目のアドレスはBGPセッションのORACLE側用です
　2) ブロック内の3番目のアドレスはBGPセッションのAzure側用です
ブロック内の最初のアドレスと最後のアドレスは、他の内部目的に使用されます。
:::
![26_FC作成04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/31e146a2-852c-5a6d-67b8-affd72080237.jpeg)

### 5) 作成中
![26_FC作成05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/a251c1a9-1a9d-cfeb-ade3-2b12bff18554.jpeg)

### 6) 作成完了
BGP状態が稼働中となり、メトリックのConnection State(5分間隔)が正常状態(1の値)になります。

![26_FC作成07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/4dd5dcfe-c5ea-47f7-6107-7edc790b595f.jpeg)





# ■ 接続確認
Azure ExpressRoute と Oracle Cloud FastConnectがお互いに接続していることを確認

## ● Azure ExpressRoute確認

### 1) ExpressRoute: ピアリング画面
作成したExpressRoute画面の左リストにある[ピアリング]クリックし、'Azureプライベート'の状態が'有効'であることを確認
![41_ExpressRouteルート表00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e87207f6-dc4b-2b2b-d30c-1d9779c48e6d.jpeg)



### 2) ExpressRoute: ルート テーブル画面
ExpressRoute: ピアリング画面にある [ルート テーブルを表示する]をクリックするとルート テーブル画面を出力できます。
OCIから受信しているCIDRを確認
![41_ExpressRouteルート表01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/f6fce5a2-0d37-30ae-1ad2-25b92ff8f4a9.jpeg)


## ● FastConnect確認
### 1) FastConnect: 仮想回線情報画面
BGP状態が稼働中となり、メトリックのConnection State(5分間隔)が正常状態(1の値)になります。
![26_FC作成08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/22754e42-2a7f-82cf-690f-aca63c9681c0.jpeg)


### 2) FastConnect: BGP情報画面
プライマリとセカンダリのBGPアドレスが設定されており、冗長構成であることを確認できます。
![26_FC作成07-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/6bd89ee9-d9dd-ad70-0d92-852047fb0979.jpeg)


### 3) DRG Route Table確認
Azure ExpressRouteの Virtual Circuit アタッチメント の宛先CIDRにAzure vNETのCIDRを受信していることを確認
![27_DRGルート表確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/5170c399-8323-aff4-a056-ce3057e75730.png)


# ■ Azure VM 作成と高速ネットワーク設定
高速ネットワークを使用するには次の要件を確認し作成します。
・参考: [高速ネットワークとは](https://qiita.com/drafts/1b1b2249d23ea79c6351/edit)
今回は、サポートされている VM インスタンス　Standard_D2s_v5(2vCPU) を作成し、高速ネットワークが'有効'であることを確認します。


## ● Azure VM 作成ポイント
### 1) 仮想マシンの作成: ネットワーク画面
仮想マシンの作成時に[高速ネットワークを有効にする]へチェックし作成
![04_VM-高速NW作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/53c9c307-6ed9-ca69-cae3-3f11b48e29c7.jpeg)

### 2) 仮想マシン: 作成確認
![04_VM-高速NW作成11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/a560f311-5ef1-da79-6caf-fe238b47e240.jpeg)


### 3) 仮想マシン: ネットワーク画面での高速ネットワーク有効確認
作成した仮想マシンの左リストにある[ネットワーク]をクリックし、高速ネットワーク項目が'有効'であることを確認
![04_VM-高速NW作成12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/f22778de-f8f5-654f-b459-5e90ed4abc76.jpeg)


# ■ Oracle Cloud Database Serviceの作成
## ● Oracle Base Database Service 作成ポイント
Azure 仮想マシンと同じ 2 vCPU とし他はデフォルト値で作成します。 

### 1) Oracle Base Database Service作成確認
![51_DBCS画面01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/7704e8e9-acee-00c1-925e-31ff4ae9f94e.jpeg)




# ■ スループット(帯域幅)テスト
iperf3 コマンドを使用して TCP と UDP のスループット(帯域幅)をテストします。

## ● Azure VM -> OCI Oracle DB

### ・ TCP Throughput
```
[root@Azure-inst01 ~]# iperf3 -c 10.1.0.19
	Connecting to host 10.1.0.19, port 5201
	[  5] local 172.20.0.5 port 53886 connected to 10.1.0.19 port 5201
	[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
	[  5]   0.00-1.00   sec   214 MBytes  1.79 Gbits/sec   62    458 KBytes
	[  5]   1.00-2.00   sec   235 MBytes  1.97 Gbits/sec   37    505 KBytes
	[  5]   2.00-3.00   sec   301 MBytes  2.53 Gbits/sec   24    758 KBytes
	[  5]   3.00-4.00   sec   239 MBytes  2.00 Gbits/sec  489    434 KBytes
	[  5]   4.00-5.00   sec   224 MBytes  1.88 Gbits/sec   37    477 KBytes
	[  5]   5.00-6.00   sec   220 MBytes  1.85 Gbits/sec   69    362 KBytes
	[  5]   6.00-7.00   sec   222 MBytes  1.87 Gbits/sec   29    443 KBytes
	[  5]   7.00-8.00   sec   218 MBytes  1.82 Gbits/sec    4    496 KBytes
	[  5]   8.00-9.00   sec   222 MBytes  1.87 Gbits/sec   59    390 KBytes
	[  5]   9.00-10.00  sec   216 MBytes  1.81 Gbits/sec    2    445 KBytes
	- - - - - - - - - - - - - - - - - - - - - - - - -
	[ ID] Interval           Transfer     Bitrate         Retr
	[  5]   0.00-10.00  sec  2.26 GBytes  1.94 Gbits/sec  812             sender
	[  5]   0.00-10.00  sec  2.25 GBytes  1.94 Gbits/sec                  receiver
```

### ・ UDP Throughput
Iperf3 による UDP デフォルトは、1Mbit/sec 帯域なので、-b (--bandwidth) オプションで最適な値へ調整して実行します。
```
[root@Azure-inst01 ~]# iperf3 -c 10.1.0.19 -u -b 2G
	Connecting to host 10.1.0.19, port 5201
	[  5] local 172.20.0.5 port 49851 connected to 10.1.0.19 port 5201
	[ ID] Interval           Transfer     Bitrate         Total Datagrams
	[  5]   0.00-1.00   sec   238 MBytes  2.00 Gbits/sec  172488
	[  5]   1.00-2.00   sec   238 MBytes  2.00 Gbits/sec  172656
	[  5]   2.00-3.00   sec   238 MBytes  2.00 Gbits/sec  172655
	[  5]   3.00-4.00   sec   238 MBytes  2.00 Gbits/sec  172641
	[  5]   4.00-5.00   sec   239 MBytes  2.00 Gbits/sec  172775
	[  5]   5.00-6.00   sec   238 MBytes  2.00 Gbits/sec  172689
	[  5]   6.00-7.00   sec   238 MBytes  2.00 Gbits/sec  172651
	[  5]   7.00-8.00   sec   238 MBytes  2.00 Gbits/sec  172627
	[  5]   8.00-9.00   sec   238 MBytes  2.00 Gbits/sec  172676
	[  5]   9.00-10.00  sec   238 MBytes  2.00 Gbits/sec  172498
	- - - - - - - - - - - - - - - - - - - - - - - - -
	[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
	[  5]   0.00-10.00  sec  2.33 GBytes  2.00 Gbits/sec  0.000 ms  0/1726356 (0%)  sender
	[  5]   0.00-10.00  sec  2.09 GBytes  1.80 Gbits/sec  0.008 ms  176307/1726333 (10%)  receiver

	iperf Done.
```

## ● OCI Oracle DB -> Azure VM


### ・ TCP Throughput
```
[root@db19c ~]# iperf3 -c 172.20.0.5
	Connecting to host 172.20.0.5, port 5201
	[  4] local 10.1.0.19 port 53130 connected to 172.20.0.5 port 5201
	[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
	[  4]   0.00-1.00   sec   241 MBytes  2.02 Gbits/sec   67    476 KBytes
	[  4]   1.00-2.00   sec   205 MBytes  1.72 Gbits/sec   58    290 KBytes
	[  4]   2.00-3.00   sec   238 MBytes  1.99 Gbits/sec   15    398 KBytes
	[  4]   3.00-4.00   sec   239 MBytes  2.00 Gbits/sec  112    362 KBytes
	[  4]   4.00-5.00   sec   205 MBytes  1.72 Gbits/sec   88    349 KBytes
	[  4]   5.00-6.00   sec   249 MBytes  2.09 Gbits/sec  119    288 KBytes
	[  4]   6.00-7.00   sec   210 MBytes  1.76 Gbits/sec   51    292 KBytes
	[  4]   7.00-8.00   sec   220 MBytes  1.85 Gbits/sec   38    401 KBytes
	[  4]   8.00-9.00   sec   230 MBytes  1.93 Gbits/sec  132    361 KBytes
	[  4]   9.00-10.00  sec   249 MBytes  2.09 Gbits/sec   45    309 KBytes
	- - - - - - - - - - - - - - - - - - - - - - - - -
	[ ID] Interval           Transfer     Bandwidth       Retr
	[  4]   0.00-10.00  sec  2.23 GBytes  1.92 Gbits/sec  725             sender
	[  4]   0.00-10.00  sec  2.23 GBytes  1.91 Gbits/sec                  receiver
```

### ・ UDP Throughput
Iperf3 による UDP デフォルトは、1Mbit/sec 帯域なので、-b (--bandwidth) オプションで最適な値へ調整して実行します。
```
[root@db19c ~]# iperf3 -c 172.20.0.5 -u -b 2G
	Connecting to host 172.20.0.5, port 5201
	[  4] local 10.1.0.19 port 36619 connected to 172.20.0.5 port 5201
	[ ID] Interval           Transfer     Bandwidth       Total Datagrams
	[  4]   0.00-1.00   sec   227 MBytes  1.90 Gbits/sec  169177
	[  4]   1.00-2.00   sec   237 MBytes  1.99 Gbits/sec  176862
	[  4]   2.00-3.00   sec   239 MBytes  2.00 Gbits/sec  178217
	[  4]   3.00-4.00   sec   237 MBytes  1.99 Gbits/sec  176612
	[  4]   4.00-5.00   sec   238 MBytes  2.00 Gbits/sec  177841
	[  4]   5.00-6.00   sec   238 MBytes  1.99 Gbits/sec  177354
	[  4]   6.00-7.00   sec   239 MBytes  2.00 Gbits/sec  178155
	[  4]   7.00-8.00   sec   240 MBytes  2.01 Gbits/sec  179058
	[  4]   8.00-9.00   sec   239 MBytes  2.01 Gbits/sec  178272
	[  4]   9.00-10.00  sec   242 MBytes  2.03 Gbits/sec  180849
	- - - - - - - - - - - - - - - - - - - - - - - - -
	[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
	[  4]   0.00-10.00  sec  2.32 GBytes  1.99 Gbits/sec  0.002 ms  518043/1772397 (29%)
	[  4] Sent 1772397 datagrams
```



# ■ レイテンシ(遅延)テスト
プロトコルTCP, UDP, ICMPの RTT(Round Trip Time)往復レイテンシ時間を確認してみてみます。
TCP と UDP は netperfコマンドでテストし、ICMP は pingコマンドを使用します。
netperf で出力される LATENCY単位は μs(0.001ms)です。
ping では 1 秒あたり 1 トランザクションの間隔が使用されますが、netperf ではトランザクションが完了するとすぐに次のトランザクションが発行されます。そのため、ping に -i オプションで 0.001ms(1μs)を設定して、netperf と pingのトランザクションの間隔を揃えます。

　・参考: [クラウドでのネットワーク レイテンシの測定](https://cloud.google.com/blog/ja/products/networking/using-netperf-and-ping-to-measure-network-latency)

## ● Azure VM -> OCI Oracle DB

### ・ TCP Laitency 

```
[root@Azure-inst01 ~]# netperf -H 10.1.0.19 -t TCP_RR -- -k MIN_LATENCY,MEAN_LATENCY,MAX_LATENCY
	MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.1.0.19 () port 0 AF_INET : histogram : interval : dirty data : demo : first burst 0
	MIN_LATENCY=1399
	MEAN_LATENCY=1490.76
	MAX_LATENCY=3299
```

### ・ UDP Laitency

```
[root@Azure-inst01 ~]# netperf -H 10.1.0.19 -t UDP_RR -- -k MIN_LATENCY,MEAN_LATENCY,MAX_LATENCY
	MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.1.0.19 () port 0 AF_INET : histogram : interval : dirty data : demo : first burst 0
	MIN_LATENCY=1509
	MEAN_LATENCY=1589.15
	MAX_LATENCY=1884
```

### ・ICMP Laitency

```
[root@Azure-inst01 ~]# ping 10.1.0.19 -c 10 -i 0.001
	PING 10.1.0.19 (10.1.0.19) 56(84) bytes of data.
	64 bytes from 10.1.0.19: icmp_seq=1 ttl=62 time=1.95 ms
	64 bytes from 10.1.0.19: icmp_seq=2 ttl=62 time=1.54 ms
	64 bytes from 10.1.0.19: icmp_seq=3 ttl=62 time=1.58 ms
	64 bytes from 10.1.0.19: icmp_seq=4 ttl=62 time=1.47 ms
	64 bytes from 10.1.0.19: icmp_seq=5 ttl=62 time=1.54 ms
	64 bytes from 10.1.0.19: icmp_seq=6 ttl=62 time=1.46 ms
	64 bytes from 10.1.0.19: icmp_seq=7 ttl=62 time=1.53 ms
	64 bytes from 10.1.0.19: icmp_seq=8 ttl=62 time=1.46 ms
	64 bytes from 10.1.0.19: icmp_seq=9 ttl=62 time=1.46 ms
	64 bytes from 10.1.0.19: icmp_seq=10 ttl=62 time=1.47 ms

	--- 10.1.0.19 ping statistics ---
	10 packets transmitted, 10 received, 0% packet loss, time 14ms
	rtt min/avg/max/mdev = 1.456/1.544/1.946/0.149 ms

```

```
[root@Azure-inst01 ~]# mtr 10.1.0.19

														My traceroute  [v0.92]
	Azure-inst01 (172.20.0.5)                                                                             2023-02-13T06:06:23+0000
	Keys:  Help   Display mode   Restart statistics   Order of fields   quit
																						Packets               Pings
	Host                                                                               Loss%   Snt   Last   Avg  Best  Wrst StDev
	1. 10.0.0.5                                                                         0.0%     8    1.4   9.0   1.3  51.3  17.3
	2. ???
	3. ???
	4. 10.1.0.19                                                                        0.0%     7    1.9   2.0   1.8   2.3   0.1
```







## ● OCI Oracle DB -> Azure VM
### ・ TCP Laitency 

```
[root@db19c ~]# netperf -H 172.20.0.5 -t TCP_RR -- -k MIN_LATENCY,MEAN_LATENCY,MAX_LATENCY
	MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.20.0.5 () port 0 AF_INET : first burst 0
	MIN_LATENCY=1391
	MEAN_LATENCY=1477.39
	MAX_LATENCY=3234
```

### ・ UDP Laitency

```
[root@db19c ~]# netperf -H 172.20.0.5 -t UDP_RR -- -k MIN_LATENCY,MEAN_LATENCY,MAX_LATENCY
	MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.20.0.5 () port 0 AF_INET : first burst 0
	MIN_LATENCY=1429
	MEAN_LATENCY=1523.69
	MAX_LATENCY=1954
```

### ・ ICMP Laitency

```
[root@db19c ~]# ping 172.20.0.5 -c 10 -i 0.001
	PING 172.20.0.5 (172.20.0.5) 56(84) bytes of data.
	64 bytes from 172.20.0.5: icmp_seq=1 ttl=61 time=1.84 ms
	64 bytes from 172.20.0.5: icmp_seq=2 ttl=61 time=1.60 ms
	64 bytes from 172.20.0.5: icmp_seq=3 ttl=61 time=1.53 ms
	64 bytes from 172.20.0.5: icmp_seq=4 ttl=61 time=1.58 ms
	64 bytes from 172.20.0.5: icmp_seq=5 ttl=61 time=1.60 ms
	64 bytes from 172.20.0.5: icmp_seq=6 ttl=61 time=1.64 ms
	64 bytes from 172.20.0.5: icmp_seq=7 ttl=61 time=1.58 ms
	64 bytes from 172.20.0.5: icmp_seq=8 ttl=61 time=1.67 ms
	64 bytes from 172.20.0.5: icmp_seq=9 ttl=61 time=1.54 ms
	64 bytes from 172.20.0.5: icmp_seq=10 ttl=61 time=1.60 ms

	--- 172.20.0.5 ping statistics ---
	10 packets transmitted, 10 received, 0% packet loss, time 14ms
	rtt min/avg/max/mdev = 1.536/1.623/1.845/0.087 ms
```

```
[root@db19c ~]# mtr 172.20.0.5
	ING 172.20.0.5 (172.20.0.5) 56(84) bytes of data.
	64 bytes from 172.20.0.5: icmp_seq=1 ttl=61 time=2.25 ms
														My traceroute  [v0.85]
	db19c (0.0.0.0)                                                                                       Mon Feb 13 15:05:07 2023
	Keys:  Help   Display mode   Restart statistics   Order of fields   quit
																						Packets               Pings
	Host                                                                               Loss%   Snt   Last   Avg  Best  Wrst StDev
	1. 140.91.206.64                                                                    0.0%    11    0.1   0.1   0.1   0.2   0.0
	2. ???
	3. 172.20.0.5                                                                       0.0%    10    1.9   1.8   1.7   1.9   0.0
```


## ■ 参考
**● Oracle Cloud Infrastructure**
・[Oracle Interconnect for Azure](https://www.oracle.com/jp/cloud/azure/interconnect/)
・[OCIとAzureとのマルチクラウド](https://www.oracle.com/jp/cloud/azure/)
・[Microsoft Azureへのアクセス](https://docs.oracle.com/ja-jp/iaas/Content/Network/Concepts/azure.htm)
・[Microsoft Azureを使用したOracle Cloudのインターコネクトについて学習します](https://docs.oracle.com/ja/solutions/learn-azure-oci-interconnect/explore-more-solutions-bbbba.html)
・[OCIとAzureとのマルチクラウド](https://www.oracle.com/jp/cloud/azure/)
・[Azure接続の終了時の問題](https://docs.oracle.com/ja-jp/iaas/Content/Network/Troubleshoot/fastconnecttroubleshoot.htm)
・[ODSA と OCI-Azure Interconnect の比較](https://blogs.oracle.com/cloud-infrastructure/post/odsa-versus-oci-azure-interconnect)
・[ハブアンドスポーク ネットワークを使用した Oracle Database for Azure の実装](https://blogs.oracle.com/cloud-infrastructure/post/implementing-oracledb-azure-hubandspoke-network)
・[Network latency using OCI-Azure Interconnect and best practices](https://blogs.oracle.com/post/network-latency-oci-azure-best-practices)
・[OCI-Azure Interconnectを使用したネットワーク・レイテンシとベスト・プラクティス](https://blogs.oracle.com/oracle4engineer/post/ja-network-latency-oci-azure-best-practices)

**● Microsoft Azure**
・[Oracle Cloud Infrastructure への接続](https://learn.microsoft.com/ja-jp/azure/cloud-adoption-framework/ready/azure-best-practices/connectivity-to-other-providers-oci)
・[Microsoft Azure と Oracle Cloud Infrastructure を統合した Oracle アプリケーション ソリューション](https://learn.microsoft.com/ja-jp/azure/virtual-machines/workloads/oracle/oracle-oci-overview)
・[Azure と Oracle Cloud Infrastructure 間の直接相互接続をセットアップする](https://learn.microsoft.com/ja-jp/azure/virtual-machines/workloads/oracle/configure-azure-oci-networking)
・[ExpressRoute の仮想ネットワーク ゲートウェイについて](https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-about-virtual-network-gateways)
・[UltraPerformance Gateway](https://azure.microsoft.com/ja-jp/updates/general-availability-ultraperformance-gateway-tier-for-azure-expressroute/)
・[ExpressRoute FastPath について](https://learn.microsoft.com/ja-jp/azure/expressroute/about-fastpath)
・[高速ネットワークとは](https://learn.microsoft.com/ja-jp/azure/virtual-network/accelerated-networking-overview)


**● その他**
・[クラウドでのネットワーク レイテンシの測定](https://cloud.google.com/blog/ja/products/networking/using-netperf-and-ping-to-measure-network-latency)
・[フェッチ サイズを調整して、Oracle Database Service for Azure での大規模なクエリのパフォーマンスを最適化します。](https://blogs.oracle.com/cloud-infrastructure/post/fetch-size-optimize-large-query-oracledb-azure)
・[Addressing MTU issues in Oracle Database for Azure when PMTUD is blocked](https://blogs.oracle.com/cloud-infrastructure/post/mtu-issues-oracle-database-for-azure-pmtud-blocked)