Azure などのクラウドプラットフォームサービスでは、オンプレミス拠点と直接接続するネットワーキングサービスが提供されています。エンタープライズ向けに需要が高いサービスではありますが、利用するには必要なリソースのデプロイのほか、接続先となる拠点設備が必要なので中々試す機会がありません。
しかし昨年 Azure と OCI が直接相互接続できるサービスが発表されました。OCI の無料クレジットがある間に構成を試してみます。
Azure ExpressRoute を Oracle Cloud Infrastructure と接続する – Azure Virtual Machines | Microsoft Learn
Azure と OCI の直接相互接続構成
今回 Azure と OCI を直接接続する構成は次の図の通りです。Azure 側は ExpressRoute と仮想ネットワークを接続、OCI 側は FastConnect と仮想クラウドネットワークを接続します。
Azure の仮想ネットワークは特に設定しなくてもインターネット接続できます。OCI 側はプライベートサブネットを作成し、インターネット接続とイントラネット接続を振り分けるようルーティングを設定します。
Azure と OCI の接続は現在次のリージョンに限定されています。
- Azure 米国東部 (EastUS) および OCI アッシュバーン、VA (米国東部)
- Azure 英国南部 (UKSouth) および OCI ロンドン (英国南部)
- Azure カナダ中部 (CanadaCentral) および OCI トロント (カナダ南東部)
- Azure 西ヨーロッパ (WestEurope) および OCI アムステルダム (オランダ北西部)
- Azure 東日本 (JapanEast) および OCI 東京 (東日本)
直接相互接続の構築
Azure:ExpressRoute 回線展開
まずは Azure で ExpressRoute 回線リソースを作成します。[リソースの作成]で「ExpressRoute」と検索し、ExpressRoute 回線を選択します。[作成]からリソースの作成を始めます。
[基本]タブでリソース展開先のサブスクリプションとリソースグループを作成します。[リージョン]は[東日本]を指定します。
次のようにパラメーターを指定して[次へ]をクリックします。
- [ポートの種類]:[プロバイダー]
- [新規作成またはクラシックからインポート]:[新規作成]
- [プロバイダー]:[Oracle Cloud FastConnect]
- [ピアリングの場所]:[Tokyo]
- [帯域幅]:[50Mbps](お好きな帯域幅を選択、料金注意)
- [SKU]:[Standard]
- [課金モデル]:[従量制課金]
- [クラシック操作を許可する]:[いいえ]
設定内容を確認して[作成]をクリックします。
回線の作成が終わるのを待ちます。
[サービスキー]の値を控えておきます。OCI 側の設定で必要になります。
OCI:VCN 作成
OCI 側で仮想クラウドネットワーク(VCN)を作成します。Oracle Cloud ポータルにサインインし、メニューの[ネットワーキング]>[仮想クラウド・ネットワーク]をクリックします。
[VCNの作成]をクリックします。
[仮想クラウド・ネットワークの作成]にて、VCN の名前と利用する IP アドレス空間を CIDR 形式で指定します。パラメーターを指定して[作成]をクリックします。
- [名前]:「SNY-LAB-TKY-VCN」
- [コンパートメントに作成]:作成するコンパートメントを指定
- [CIDR ブロック]:「172.20.1.0/24」
VCN の作成が完了したら、[サブネット]を選択して[サブネットの作成]をクリックします。
プライベートサブネットを作成してみます。こだわりなければパブリックサブネットでも問題ないです。パラメーターを入力したら[サブネットの作成]をクリックします。
- [名前]:「ClientSubnet」
- [CIDR ブロック]:「172.20.1.0/26」
- [ルート表]:デフォルトのまま
- [サブネット・アクセス]:[プライベート・サブネット]
OCI:動的ルーティングゲートウェイ作成
次に動的ルーティング・ゲートウェイ(DRG)を作成します。VCN のメニューから[動的ルーティング・ゲートウェイ]を選択し、[動的ルーティング・ゲートウェイの作成]をクリックします。
DRG のパラメーターを入力します。パラメーターを入力したら[動的ルーティング・ゲートウェイの作成]をクリックします。
- [コンパートメントに作成]:作成するコンパートメントを指定します。
- [名前]:「SNY-LAB-TKY-DRG」
作成が完了するまでしばらく待ちます。
メニューから[仮想クラウド・ネットワーク]を選択し、[仮想クラウド・ネットワークにアタッチ]をクリックします。
[(コンパートメント)の仮想クラウド・ネットワーク]で先ほど作った VCN を選択し、[仮想クラウド・ネットワークにアタッチ]をクリックします。
DRG が VCN にアタッチされることを確認します。
OCI:FastConnect 作成
ExpressRoute の接続先となる FastConnect を作成します。メニューから[FastConnect]を選択し、[FastConnectの作成]をクリックします。
[接続タイプ]にて、パラメーターを入力して[次へ]をクリックします。
- [接続タイプ]:[FastConnectパートナ]
- [パートナ]:[Microsoft Azure ExpressRoute]
[構成]にて、パラメーターを入力して[作成]をクリックします。
- [名前]:「SNY-LAB-TKY-FC」
- [コンパートメント]:作成先のコンパートメントを選択
- [仮想回線タイプ]:[プライベート仮想回線]
- [(コンパートメント)の動的ルーティング・ゲートウェイ]:作成した DRG を選択
- [プロビジョニングされた帯域幅]:[1 Gbps]
- [パートナ・サービス・キー]:ExpressRoute のサービスキー
- BGP IP アドレスとして /29 のアドレスレンジが必要となる。
- プライマリとセカンダリでそれぞれ /30 に分割する。
- [顧客プライマリ BGP IP アドレス]:/30 に分割したアドレスのうち大きい数字の IP アドレス
- [ORACLE プライマリ BGP IP アドレス]:/30 に分割したアドレスのうち小さい数字の IP アドレス
- [顧客セカンダリ BGP IP アドレス]:/30 に分割したアドレスのうち大きい数字の IP アドレス
- [ORACLE セカンダリ BGP IP アドレス]:/30 に分割したアドレスのうち小さい数字の IP アドレス
作成されるまでしばらく待ちます。
ExpressRoute の[プロビジョニング状態]が[プロビジョニング済み]となるのを確認します。
FastConnect 側も[ライフサイクル状態]が[プロビジョニング済み]、[BGP状態]が[稼働中]となることを確認します。
Azure:仮想ネットワーク展開
Azure 側で仮想ネットワークとサブネットを作成します。構成は次の通りです。
Azure:ExpressRoute ゲートウェイ展開
[リソースの作成]から「仮想ネットワークゲートウェイ」を検索し作成します。作成まで数十分かかるのでしばらく待ちます。
- [名前]:「SNY-LAB-ER-EGW」
- [地域]:[東日本]
- [ゲートウェイの種類]:[ExpressRoute]
- [SKU]:[Standard]
- [仮想ネットワーク]:作成した仮想ネットワークを選択
- [パブリック IP アドレス]:[新規作成]
- [パブリック IP アドレス名]:「SNY-LAB-ER-EGW-PIP」
Azure:ExpressRoute 接続
ExpressRoute 回線リソースを選択し、メニューから[接続]をクリックします。上部の[追加]をクリックします。
[名前]に接続を識別する名前を指定します。
[仮想ネットワークゲートウェイ]で先ほど作成したゲートウェイを選択します。
通信確認用の仮想マシンを作成
Azure と OCI にそれぞれ通信確認用の仮想マシンを作成しておきます。
- Azure:Ubuntu 18.04
- OCI:Oracle Linux
ルーティング/セキュリティ設定
OCI:NAT ゲートウェイ作成
OCI の VCN はプライベートサブネットで作っていたので、インターネット通信するには NAT ゲートウェイを作成しておきます。
OCI:ルーティングテーブル作成
OCI で次のようなルーティングテーブルを作成し、サブネットに割り当てます。
- 0.0.0.0/0:NAT ゲートウェイ
- 10.0.0.0/8:DRG
- 172.16.0.0/12:DRG
- 192.168.0.0/16:DRG
OCI:セキュリティルール作成
セキュリティルールに Azure のネットワークアドレスからの通信を許可するルールを追加しておきます。TCP/UDP 5201 のルールはあとの手順で使う iperf3 用の通信ポートです。
Azure:ルーティング情報確認
Azure 仮想マシンの NIC リソースを選択し、[有効なルート]をクリックすると、FastConnect から ExpressRoute 経由で受信した OCI の経路が広報されていることを確認できます。
接続確認
Azure と OCI の仮想マシンにそれぞれ iperf3 をインストールし、疎通を確認します。
OCI から Azure
[opc@sny-lab-tky-ocivm ~]$ iperf3 -c 172.17.1.4 Connecting to host 172.17.1.4, port 5201 [ 4] local 172.20.1.3 port 47386 connected to 172.17.1.4 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 62.3 MBytes 523 Mbits/sec 57 2.10 MBytes [ 4] 1.00-2.00 sec 77.5 MBytes 650 Mbits/sec 1987 276 KBytes [ 4] 2.00-3.00 sec 53.8 MBytes 451 Mbits/sec 61 247 KBytes [ 4] 3.00-4.00 sec 53.8 MBytes 451 Mbits/sec 53 161 KBytes [ 4] 4.00-5.00 sec 52.5 MBytes 440 Mbits/sec 0 324 KBytes [ 4] 5.00-6.00 sec 56.2 MBytes 472 Mbits/sec 118 290 KBytes [ 4] 6.00-7.00 sec 53.8 MBytes 451 Mbits/sec 108 176 KBytes [ 4] 7.00-8.00 sec 53.8 MBytes 451 Mbits/sec 0 332 KBytes [ 4] 8.00-9.00 sec 56.2 MBytes 472 Mbits/sec 56 299 KBytes [ 4] 9.00-10.00 sec 51.2 MBytes 430 Mbits/sec 30 277 KBytes [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 571 MBytes 479 Mbits/sec 2470 sender [ 4] 0.00-10.00 sec 568 MBytes 477 Mbits/sec receiver iperf Done.
Azure から OCI
snyadmin@SNY-LAB-ER-VM:~$ iperf3 -c 172.20.1.3 Connecting to host 172.20.1.3, port 5201 [ 4] local 172.17.1.4 port 37858 connected to 172.20.1.3 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 80.3 MBytes 673 Mbits/sec 114 194 KBytes [ 4] 1.00-2.00 sec 49.5 MBytes 415 Mbits/sec 52 174 KBytes [ 4] 2.00-3.00 sec 58.5 MBytes 491 Mbits/sec 109 195 KBytes [ 4] 3.00-4.00 sec 53.4 MBytes 448 Mbits/sec 60 226 KBytes [ 4] 4.00-5.00 sec 55.7 MBytes 467 Mbits/sec 63 255 KBytes [ 4] 5.00-6.00 sec 56.6 MBytes 475 Mbits/sec 83 218 KBytes [ 4] 6.00-7.00 sec 51.7 MBytes 433 Mbits/sec 56 283 KBytes [ 4] 7.00-8.00 sec 57.2 MBytes 480 Mbits/sec 191 222 KBytes [ 4] 8.00-9.00 sec 54.7 MBytes 459 Mbits/sec 51 256 KBytes [ 4] 9.00-10.00 sec 49.9 MBytes 419 Mbits/sec 105 233 KBytes [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 568 MBytes 476 Mbits/sec 884 sender [ 4] 0.00-10.00 sec 564 MBytes 473 Mbits/sec receiver iperf Done.
どちらからも 500Mbps 弱の速度が出ました。ExpressRoute は 50Mbps の帯域でデプロイしていたのですが、上限値がどうなっているか気になります。Azure は BGP で受信した経路を自動的に仮想ネットワーク内に広報する動作ですが、OCI は明示的にルートを定義する必要があるのが引っかかりました。
ExpressRoute の検証に対向拠点が欲しい時にも使えそうです。実際は対向ネットワーク機器の設定など専門的な知識が必要ですが、クラウド同士なら敷居は低そうです。
コメント