Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Microsoft Azure と Oracle CloudをCross-Cloud接続してみてみた

■目的

Microsoft Azure と Oracle Cloud Infrastructure(OCI)のDCがインターネットを経由することなく相互接続できるようになりました。
Microsoft and Oracle to Interconnect Microsoft Azure and Oracle Cloud
一部のワークロードを'Oracle Cloud'で実行し、同じワークロードの別の部分を'Azure'で実行することが可能となり、既存のIT投資を保護しながら、高度に最適化された両クラウドの最高の部分を活用することができます。
また、この相互接続において、オラクルとマイクロソフトは統合されたIDとアクセス管理も提供します。お客様はクラウド・リソースとアプリケーションにアクセスする際に複数のパスワードを管理する必要がありません。

ということで、
相互接続をおこない、OCIとAzureのインスタンスどうしがNetwork疎通できることを確認してみてみます。

■構成

この接続では、Azure ExpressRoute回線とOracle Cloud Infrastructure FastConnect仮想回線を作成して接続します。
FastConnectが個人で設定して開通できるのがうれしい
また、Azure側にはオプションがあり、ExpressRoute FastPathが有効になっていると、ゲートウェイはバイパスされ、ネットワーク トラフィックが仮想ネットワーク内の仮想マシンに直接送信されるようになり、レイテンシが短縮されます。

●構成イメージ
構成2.png

●Azure-OCIコンポーネント対応表

Azure OCI
ExpressRoute FastConnect
Virtual Network (VNet)
仮想ネットワーク
Virtual Cloud Network (VCN)
仮想クラウド・ネットワーク
Virtual Network Gateway
仮想ネットワーク ゲートウェイ
Dynamic Routing Gateway (DRG)
動的ルーティング・ゲートウェイ
Route Tables
ルートテーブル
Route Tables
ルート表
Network Security Groups
ネットワーク セキュリティ グループ
Security Lists
セキュリティ・リスト

■相互接続設定

●Azure:ExpressRoute設定

1) AzureにLogin後[すべてのサービス] > [ネットワーキング] > [ExpressRoute回線]をクリック
10_ExpressRoute01.png

2) [ExpressRoute回線の作成]をクリック
10_ExpressRoute02.png

3) 「ExpressRoute回線の作成」画面で以下のように設定し、[作成]をクリックし作成

・回線名:任意の名前を設定
・プロバイダー:[Oracle Cloud FastConnect]を選択
・ピアリングの場所:[Washington DC]を選択
・帯域幅:50Mbps〜10Gbps の範囲から選択
・SKUと課金モデル:[制限無]もしくは[従量課金]を選択
・場所:(米国)米国東部を選択

10_ExpressRoute03.png

4)デプロイ実行中
数分待ちます。
10_ExpressRoute04.png

作成後、作成されたExpressRouteをダブルクリック
10_ExpressRoute05.png

5) 作成したExpressRoute画面
 「サービス キー」をコピーします。
 この「サービス キー」を使用してOCIのFastConnectを作成します
10_ExpressRoute06のコピー.png

●OCI:FastConnect設定

VCNのFastConnect用GatewayであるDRGを作成し、ExporessRoute作成時に発行された「サービス キー」を使用してFastConnectを作成し開通させます

・DRG作成

VCN内のインスタンスがFastConeectを通るGatewayのDRGを作成しVCNへアタッチします
1) DRG(動的ルーティング・ゲートウェイ)作成
 
 「ネットワーキング」>「動的ルーティング・ゲートウェイ」を選択し、[動的ルーティングゲートウェイの作成]をクリックし作成
7_DRG01.png

2)DRGをVCNにアタッチ
作成したDRGの左ペインにあるリソース> 仮想クラウド・ネットワークを選択して、
[仮想クラウド・ネットワークにアタッチ]をクリックし、
仮想クラウド・ネットワーク項目にDRGをアタッチするVCNを選択して[アタッチ]

7_DRG03.png

アタッチ完了
7_DRG04.png

・FastConnect作成

ExpressRouteと接続するためのFastConnect仮想回線を作成し設定します

1) OCIにLOGIN後[ネットワーキング] > [FastConnect] を選択し、[接続の作成]をクリック
11_FastCOnnect01.png

2) 「接続の作成」画面
[プロバイダを通じた接続]を選択し、[Microsoft Azure:ExpressRoute]を選択し[続行]をクリック
11_FastCOnnect02.png

3) 「接続の作成」画面
以下のように設定

・動的ルーティング・ゲートウェイ:VCNにアタッチするDRGを選択
・プロビジョニングされた帯域幅:1~10GまでGbps単位で選択
・プロバイダ・サービス・キー:Azure ExpressRouteを作成した時に出力された「サービス キー」を入力
・各BGPアドレス:/30の範囲でそれぞれ任意のIPで設定

11_FastCOnnect03.png

4) 「接続の作成されました」画面
[閉じる]をクリック
11_FastCOnnect04.png

5) プロビジョニング中なので数分待ちます
11_FastCOnnect05.png

6) プロビジョニング完了するとICONが緑色に変わりStatusが稼働中となり、接続が完了します
11_FastCOnnect06.png

●Azure:ExpressRouteのプロビジョニング完了確認

作成したExpressRoute回線の画面にある「ピアリング」項にある種類の[Azureプライベート]がプロビジョニング済みとなり、プライマリ/セカンダリサブネットにIPが設定されていることを確認
10_ExpressRoute08.png

■Azure:ExpressRouteとVNet(Virtual Network)接続

VNet内のインスタンスがExpressRouteを通るようExpressRouteとVNetを接続します

●仮想ネットワークゲートウェイ作成

VNetとExpressRouteを接続するためのゲートウェイを作成します

1)[全てのサービス] > [ネットワーキング] > [仮想ネットワークゲートウェイ]をクリック
12_Azure_仮想ネットワークゲートウェイ01.png

2)[仮想ネットワークゲートウェイの作成]をクリック
12_Azure_仮想ネットワークゲートウェイ02.png

3)仮想ネットワーク ゲートウェイの作成画面
以下必要内容を設定し、[確認および作成]をクリック

・地域:(米国)米国東部を選択
・ゲートウェイの種類:[ExpressRoute]を選択
・SKU:必要なSKUを選択 
・仮想ネットワーク:付属させる仮想ネットワークを選択
・ゲートウェイサブネットのアドレス範囲:選択した仮想ネットワーク内に配置するための専用サブネットを設定
・パブリックIPアドレス:作成する仮想ネットワーク ゲートウェイのIPを設定

*SKUで[Ultra Performance]もしくは[ErGw3AZ]を選択すると「ExpressRoute FastPath」が有効になります
12_Azure_仮想ネットワークゲートウェイ03.png

4)確認および作成画面
設定した内容を確認して[作成]をクリック
12_Azure_仮想ネットワークゲートウェイ04.png

5)仮想ネットワーク ゲートウェイ画面
作成されたことを確認
12_Azure_仮想ネットワークゲートウェイ05.png

●ExpressRouteとVNet(仮想ネットワーク)を接続

ExpressRouteとVNetのデータセンターを接続します

1) [すべてのサービス] > [ネットワーキング] > [接続]をクリック
13_Azure_接続作成01.png

2)接続画面
[接続の作成]をクリック
13_Azure_接続作成02.png

3) [基本]画面
以下のように設定

・接続の種類:[ExpressRoute]を選択、
・場所:[米国]米国東部を選択

13_Azure_接続作成03.png

4)[設定]画面
以下のように設定

・仮想ネットワークゲートウェイ:作成したExpressRoute用の仮想ネットワークゲートウェイを選択
・ExpressRoute回線:作成したExpressRoute回線を選択
・接続名:任意の名前を設定

13_Azure_接続作成04.png

4)概要画面
 設定した内容を確認し、[OK]をクリック
13_Azure_接続作成05.png

5)作成した接続の状態が「成功」になれば完了
13_Azure_接続作成06.png

■Azure:ルートとセキュリティ設定

AzureからOCIのインスタンスに通信が通るようにネットワーク制御を行います

●ルートテーブル設定

以下のようにOCI側のCIDR:10.0.0.0/16が仮想ネットワークゲートウェイを通るように設定
21_Azure_ROuteTable01.png

●ネットワーク セキュリティ グループ設定

以下のようにOCI側のCIDR:10.0.0.0/16の通信が受信/送信セキュリティ規則が通るように設定
20_Azure_セキュリティグループ02.png

■OCI:ルートとセキュリティ設定

OCIからAzureのインスタンスに通信が通るようにネットワーク制御を行います

●ルート表設定

以下のようにAzure側のCIDR:10.200.0.0/16がDRGを通るように設定
31_OCI-ROuteTable.png

●セキュリティ・リスト設定

以下のようにAzure側のCIDR:10.200.0.0/16の通信がイングレス/エグレスルールで通るように設定
31_OCI-SecuretyList.png

■接続確認

OCIとAzureそれぞれに作成したInstanceどうしが接続できることを確認

●OCI -> Azure接続確認

・traceroute確認

[root@oci-inst01 ~]# traceroute 10.200.0.4 -n
    traceroute to 10.200.0.4 (10.200.0.4), 30 hops max, 60 byte packets
    1  xxx.xxx.xxx.xxx  0.083 ms  0.052 ms xxx.xxx.xxx.xxx  0.060 ms
    2  10.255.255.22  0.413 ms  0.381 ms  0.394 ms
    3  * * *
    4  10.200.0.4  2.041 ms * *

・ping確認

[root@oci-inst01 ~]# ping 10.200.0.4 -c 3
    PING 10.200.0.4 (10.200.0.4) 56(84) bytes of data.
    64 bytes from 10.200.0.4: icmp_seq=1 ttl=62 time=1.77 ms
    64 bytes from 10.200.0.4: icmp_seq=2 ttl=62 time=1.61 ms
    64 bytes from 10.200.0.4: icmp_seq=3 ttl=62 time=1.81 ms

    --- 10.200.0.4 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2004ms
    rtt min/avg/max/mdev = 1.612/1.735/1.815/0.088 ms

・iperf3確認

[root@oci-inst01 ~]# iperf3 -c 10.200.0.4
    Connecting to host 10.200.0.4, port 5201
    [  4] local 10.0.0.2 port 55984 connected to 10.200.0.4 port 5201
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec  56.6 MBytes   475 Mbits/sec  1678    177 KBytes
    [  4]   1.00-2.00   sec  56.1 MBytes   470 Mbits/sec  910    221 KBytes
    [  4]   2.00-3.00   sec  55.3 MBytes   464 Mbits/sec  1355    203 KBytes
    [  4]   3.00-4.00   sec  55.0 MBytes   461 Mbits/sec  1188    225 KBytes
    [  4]   4.00-5.00   sec  55.4 MBytes   465 Mbits/sec  1357    249 KBytes
    [  4]   5.00-6.00   sec  54.5 MBytes   457 Mbits/sec  1481    177 KBytes
    [  4]   6.00-7.00   sec  56.0 MBytes   470 Mbits/sec  1119    205 KBytes
    [  4]   7.00-8.00   sec  54.9 MBytes   460 Mbits/sec  1126    233 KBytes
    [  4]   8.00-9.00   sec  55.2 MBytes   463 Mbits/sec  1461    268 KBytes
    [  4]   9.00-10.00  sec  55.5 MBytes   465 Mbits/sec  1310    281 KBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec   554 MBytes   465 Mbits/sec  12985             sender
    [  4]   0.00-10.00  sec   553 MBytes   464 Mbits/sec                  receiver

    iperf Done.

・ssh接続確認

[root@oci-inst01 ~]# ssh azure@10.200.0.4
    The authenticity of host '10.200.0.4 (10.200.0.4)' can't be established.
    ECDSA key fingerprint is SHA256:hZp9kiLehPBR7BxG2.
    ECDSA key fingerprint is MD5:00:50:e2:25:13:9a:4f:00.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.200.0.4' (ECDSA) to the list of known hosts.
    Password:

[azure@Azure-inst01 ~]$ hostname
    Azure-inst01

[azure@Azure-inst01 ~]$ id -a
    uid=1000(azure) gid=1000(azure) groups=1000(azure) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

●Azure -> OCI接続確認

・traceroute確認

[root@Azure-inst01 azure]# traceroute 10.0.0.2 -n
    traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
    1  10.200.1.5  2.152 ms  2.098 ms 10.200.1.4  2.042 ms
    2  * * *
    3  10.0.0.2  1.969 ms  1.938 ms  1.921 ms

・ping確認

[root@Azure-inst01 azure]# ping 10.0.0.2 -c 3
    PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
    64 bytes from 10.0.0.2: icmp_seq=1 ttl=61 time=1.76 ms
    64 bytes from 10.0.0.2: icmp_seq=2 ttl=61 time=1.86 ms
    64 bytes from 10.0.0.2: icmp_seq=3 ttl=61 time=1.77 ms

    --- 10.0.0.2 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 1.763/1.799/1.861/0.055 ms

・iperf3確認

[root@Azure-inst01 azure]# iperf3 -s
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------
    Accepted connection from 10.0.0.2, port 55982
    [  5] local 10.200.0.4 port 5201 connected to 10.0.0.2 port 55984
    [ ID] Interval           Transfer     Bandwidth
    [  5]   0.00-1.00   sec  53.3 MBytes   447 Mbits/sec
    [  5]   1.00-2.00   sec  55.6 MBytes   467 Mbits/sec
    [  5]   2.00-3.00   sec  55.2 MBytes   463 Mbits/sec
    [  5]   3.00-4.00   sec  55.3 MBytes   464 Mbits/sec
    [  5]   4.00-5.00   sec  55.2 MBytes   463 Mbits/sec
    [  5]   5.00-6.00   sec  54.8 MBytes   460 Mbits/sec
    [  5]   6.00-7.00   sec  55.5 MBytes   466 Mbits/sec
    [  5]   7.00-8.00   sec  55.5 MBytes   465 Mbits/sec
    [  5]   8.00-9.00   sec  55.0 MBytes   461 Mbits/sec
    [  5]   9.00-10.00  sec  55.3 MBytes   464 Mbits/sec
    [  5]  10.00-10.04  sec  2.26 MBytes   504 Mbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  5]   0.00-10.04  sec  0.00 Bytes  0.00 bits/sec                  sender
    [  5]   0.00-10.04  sec   553 MBytes   462 Mbits/sec                  receiver
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------

・ssh接続確認

[root@Azure-inst01 ~]# ssh -i id_rsa opc@10.0.0.2
    The authenticity of host '10.0.0.2 (10.0.0.2)' can't be established.
    ECDSA key fingerprint is SHA256:1ab2pic9UmnaF1BqY.
    ECDSA key fingerprint is MD5:0a:f9:23:ff:81:9c:a1.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.0.0.2' (ECDSA) to the list of known hosts.

[opc@oci-inst01 ~]$ hostname
    oci-inst01
[opc@oci-inst01 ~]$ id -a
    uid=1000(opc) gid=1000(opc) groups=1000(opc),4(adm),10(wheel),190(systemd-journal) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

■参考

Access to Microsoft Azure
Microsoft and Oracle to interconnect Microsoft Azure and Oracle Cloud
Accelerate your cloud adoption with Microsoft and Oracle
Oracle application solutions integrating Microsoft Azure and Oracle Cloud Infrastructure (preview)
ExpressRoute FastPath について

shirok
自宅から専用線を引きたい今日この頃 ※ここでの発言は私個人の見解であり、所属する会社&組織の見解を反映したものではありません。ご了承ください。
oracle
Oracle Cloudは、最先端の機能をSoftware as a Service、Platform as a ServiceおよびInfrastructure as a ServiceおよびData as a Serviceとして提供します。
https://cloud.oracle.com/ja_JP/home
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away