本記事は、Niranjan Mohapatra とKarthik Mani による “Transit on-premises network traffic to Azure through OCI using the OCI-Azure Interconnect”を翻訳したものです。
2021年 12月 21日
2019年、オラクルとMicrosoftは、クラウドの相互運用性を強化するためのパートナーシップについて発表しました。待機時間が短く高スループットでセキュアなプライベート・ネットワーク経由で、Oracle Cloud Infrastructure(OCI)とMicrosoft Azureのクラウド間を接続するというものです。このOCI-Azure Interconnectを使用すれば、オラクルとMicrosoftの両方のテクノロジーを利用するオンプレミスのミッション・クリティカルなアプリケーションをパブリック・クラウドに容易に移行できます。両社共通のお客様のために構成されたこの比類ないコネクテッド・クラウド提携と、互いに補い合うクラウド・サービスによって、オンプレミス・アプリケーションの移行を加速する新たな可能性が開かれました。お客様は幅広いツールを使用でき、また、現行の実装を統一された単一のエンタープライズ・クラウド・ソリューションと統合できます。
お客様からは、ワークロード別に異なるパブリック・クラウドを選択できるオプションが欲しいというご意見をいただいております。たとえば、Microsoft中心のワークロードについてはAzureを、OracleワークロードについてはOracle Cloudを選択したいということです。しかし、オンプレミスのデータセンターからOCIに接続して、そのネットワークをAzureまでプライベートかつセキュアにトランジットしようとすると、技術的な課題に直面します。このブログでは、そのような技術的課題について対処して、OCI-Azure Interconnectでその課題を解決する方法について説明していきます。
ソリューションのサマリー
このソリューション・アーキテクチャは、OCIとAzureクラウドにデプロイされている各種セキュリティ・コンポーネントを表したものです。ネットワーク・トラフィックをOCI経由でオンプレミスのデータセンターからAzureクラウドまで容易にトランジットするための手順と、OracleクラウドとAzureクラウド間に構成された相互接続について示しています。このソリューションには、OracleクラウドとAzureクラウド間の相互接続を構成するための手順は含まれていません。OracleクラウドとAzureクラウド間の相互接続の構成については、こちらのオラクルのブログまたは関連ドキュメントを参照してください。
以下のアーキテクチャは、OCI FastConnectとIPSec VPNのいずれかまたは両方を使用した、オンプレミスのデータセンターとOCI間のネットワーク接続を示しています。また、OCIとAzure間で構成可能なその他のネットワーク接続についても示しています。
OCIでは、単一のOCI動的ルーティング・ゲートウェイ(DRG)を使用し、複数の仮想クラウド・ネットワーク(VCN)をアタッチできます。1つのFastConnect回線をオンプレミスのデータセンターに接続し、別のFastConnect回線をAzureクラウドに接続しています。さらに、これらのFastConnect回線を単一のDRGにアタッチできます。また、FortiGate次世代ファイアウォールのペアをデプロイして、オンプレミスのVPNデバイスとAzure上のネットワーク間でIPSecトンネルを構築するように、これらのファイアウォールを構成できます。その場合は、ネットワーク・トラフィックをオンプレミスからIPSecトンネル経由でAzure VNetまでプライベートにトランジットできます。
以下の図に、このソリューションのアーキテクチャを示します。

このソリューション・アーキテクチャには、次のような主な特徴があります。
• 可用性:Border Gateway Protocol(BGP)などの動的ルーティング・プロトコルを構成することにより、高可用性が確保されます。
• スケーラビリティ:ネットワーク・トラフィックが複数の仮想インスタンスに分散されることにより、スケーラビリティが確保されます。
• パフォーマンス:仮想インスタンスに対して適正サイズのコンピュートとネットワークを選択することにより、高いパフォーマンスを達成できます。
このソリューションではFortiGateファイアウォールを使用しましたが、必要に応じて他のファイアウォール・オプションも使用できます
OCI 経由でオンプレミスから Azure までのプライベート・トンネルを構成
本記事では、OCIランディング・ゾーンと、OCI内およびAzure内のFortiGate次世代ファイアウォール構成の作成手順のみを取り上げます。Oracle Cloud InfrastructureとMicrosoft Azure間のエンド・ツー・エンドの相互接続構成については、このブログを参照してください。
OCIでのVCNの作成または既存のVCNの使用
- OCIでVCNを作成するか、既存のVCNを使用します。VCNに1つのパブリック・サブネットと1つのプライベート・サブネットを作成します。
- それぞれのOCI VCNに対して、OCI-Azure Interconnectで使用中の既存のDRG内に、VCNアタッチメントを作成します。
- 新しく作成したVCN内で、必要なサブネット、ルート表、セキュリティ・リストを作成します。これらのルート表とセキュリティ・リストをサブネットにアタッチします。
以下のスクリーンショットは、OCI内のDRGへのVCNのアタッチメントについて示したものです。

Marketplaceのイメージを使用したOCIでのFortiGateインスタンスのデプロイ
1.OCIコンソールにログインします。インスタンスを作成します。
2.パートナー・イメージを選択し、FortiGate次世代ファイアウォールを選択します。ネットワークのスループット要件に応じて、適正サイズの仮想マシン(VM)シェイプを選択します。
3.プライマリとセカンダリのFortiGate次世代ファイアウォール・インスタンスを作成します。詳細については、Fortinetのインストール・ガイドとこの記事を参照してください。

4.OCIでFortinetファイアウォールを構成します。
5.プライマリ、セカンダリの両方のFortinetファイアウォールを使用して、ルートベースのIPSec VPNトンネルを3つ作成します。1つのトンネルはオンプレミスに接続し、2つのトンネルはAzure Fortinetファイアウォールに接続します。この例では、高可用性クラスタ内でオンプレミスのCPEを構成して使用しました。CPEがクラスタ構成ではなく高可用性を備えていない場合は、オンプレミスへの接続用に2つのIPSecトンネルを作成することをお勧めします。
以下のスクリーンショットは、OCIのプライマリFortinetファイアウォールに作成されたIPSecトンネルを示したものです。

この例では、パブリックIPアドレス20.106.177.101を付加して作成されたIPSecトンネルがオンプレミスのCPEに接続され、プライベートIPアドレスを付加して作成された他の2つのIPSecトンネルがAzure Fortinetファイアウォールに接続されています。OCIでハブ・アンド・スポーク型のIPSecトンネルをセットアップする方法については、Fortinetの構成ガイドを参照してください。
以下のスクリーンショットは、OCIのセカンダリFortinetファイアウォールに作成されたIPSecトンネルを示したものです。

6.以下のように、OCIのプライマリとセカンダリの両方のFortinetファイアウォールのトンネル・インタフェースにIPアドレスを割り当てます。以下のスクリーンショットは、OCIのFortinetファイアウォールのトンネル・インタフェースに割り当てられたIPアドレスを示したものです。


7.BGPを構成し、ローカル自律システム(AS)番号、ルーターID、ネイバー(オンプレミスとAzure)のリモートAS番号を割り当てます。以下のスクリーンショットは、OCIのプライマリFortinetファイアウォールに割り当てられたBGP構成とAS番号を示したものです。

以下のスクリーンショットは、OCIのセカンダリFortinetファイアウォールに割り当てられたBGP構成とAS番号を示したものです。

AzureでのFortinetファイアウォールのデプロイと構成
Azureポータルに接続し、Azure上に2つのFortinetファイアウォール(プライマリとセカンダリ)をデプロイします。Fortinetファイアウォールに対して、Azure Marketplaceのイメージを使用できます。適正サイズのコンピュート・シェイプを選択して、Azure上にFortinetファイアウォールをデプロイします。OCI Fortinetファイアウォールの構成手順を実行した後、以下の手順を実行してください。
- Azureで実行されるプライマリ、セカンダリのそれぞれのFortinetファイアウォール上で、ルートベースのIPSec VPNトンネルを2つ作成します。両方のIPSecトンネルをOCI Fortinetファイアウォールに接続します。
- Azureで実行されるプライマリ、セカンダリの両方のFortinetファイアウォール上で、トンネルのIPアドレスを割り当てます。
- Azureで実行されるプライマリ、セカンダリの両方のFortinetファイアウォール上で、BGPを構成し、ローカルAS番号、ルーターID、リモートAS番号を割り当てます。
Azure Fortinetファイアウォールでの条件付きパスの構成

ネットワークC(172.17.0.0/24)は以下のパスを辿ってネットワークA(10.100.1.0/24)に到達します。
- プライマリ・ルート:FW3(AS 65303)、FW1(AS 65301)、オンプレミス(AS 65515)
- セカンダリ・ルート:FW3(AS 65304)、FW2(AS 65302)、オンプレミス(AS 65515)
ネットワークD(172.17.2.0/24)は以下のパスを辿ってネットワークA(10.100.1.0)に到達します。
- プライマリ・ルート:FW4(AS 65304)、FW2(AS 65302)、オンプレミス(AS 65515)
- セカンダリ・ルート:FW4(AS 65304)、FW1(AS 65301)、オンプレミス(AS 65515)
BGPメトリック構成の詳細
Azureプライマリ・ファイアウォール(FW3)
この例でOCIにデプロイされているネイバーFortinetファイアウォールは2.2.2.1(FW1)と3.3.3.1(FW2)です。
ネイバー2.2.2.1(FW1)には、ネットワークA(10.100.0.0/24)のみの受信を許容するフィルタがあり、そこではローカル・プリファレンスが200に設定されています。そのため、2.2.2.1がネットワークAに到達するための優先ネイバーとなります。
ファイアウォールにログインして、以下のコマンドを実行します。
# config router prefix-list
edit "Onprem_NW_10.100.0.0”
# config rule
edit 1
set prefix 10.100.0.0 255.255.0.0
unset ge
unset le
next
end
next
end
# config router route-map
edit "Onprem_NW_10.100.0.0”
# config rule
edit 1
set match-ip-address "Onprem_NW_10.100.0.0"
set set-local-preference 200 next end next end
# config neighbor
edit "2.2.2.1"
set soft-reconfiguration enable
set remote-as 65301
set route-map-out "Onprem_NW_10.100.0.0"
next
end
ネイバー3.3.3.1(FW2)に対して、ルートをネイバー2.2.2.1から学習していない場合のみネットワークが広告されるという条件付きASパス・プリペンドを設定します。この構成によって、BGP内でのループの発生を防ぎます。 ファイアウォールにログインして、以下のコマンドを実行します。
config router prefix-list
edit "Net_172.17.0.0_24”
config rule
edit 1
set prefix 172.17.0.0 255.255.255.0
unset ge
unset le
next
edit "Net_172.17.2.0_24"
config rule
edit 1
set prefix 172.17.2.0 255.255.255.0
unset ge
unset le
next
end
next
end
config router aspath-list
edit "MATCH-65301"
config rule
edit 1
set action permit
set regexp "^65301_"
next
end
next
end
regexp “^65301_”は、AS 65301から学習したことを表します。
config router route-map
edit “Secondary_Link"
config rule
edit 1
set match-as-path "MATCH-65301"
set match-ip-address "Net_10.100.0.0_16"
next
end
next
edit "Azure_Nw_172.17.0.0"
config rule
edit 1
set match-ip-address "Net_172.17.0.0_24”
next
edit 2 set match-ip-address “Net_172.17.2.0_24”
set set-aspath “65303 65303” next end next end
# config neighbor
edit "3.3.3.1"
set soft-reconfiguration enable
set remote-as 65302
config conditional-advertise
Edit “Azure_Nw_172.17.0.0”
Set condition-routemap “Secondary_Link”
Set condition-type non-exist
next
end
“Secondary_Link”と“Azure_Nw_172.17.0.0”のルート・マップは、条件付きASパス・プリペンド構成内で呼び出されます。プライマリのAzureファイアウォール(FW3)がFW1からネットワークAのパスの学習を停止した場合に限り、これらのルートは使用されます。その場合、FW3はFW2に向けて広告します。
以下のスクリーンショットは、BGPネイバー構成の例を示したものです。

以下の例は、ルート・マップ、接頭辞リスト、ASパスの構成を示したものです。

Azureセカンダリ・ファイアウォール(FW4)
この例でOCIにデプロイされているネイバーFortinetファイアウォールは6.6.6.1(FW1)と5.5.5.1(FW2)です。
ネイバー6.6.6.1(FW1)に対して、ルートをネイバー5.5.5.1から学習していない場合のみネットワークが広告されるという条件付きASパス・プリペンドを設定します。この構成によって、BGP内でのループの発生を防ぎます。
ファイアウォールにログインして、以下のコマンドを実行します。
>config router prefix-list
edit "Net_172.17.0.0_24”
config rule
edit 1
set prefix 172.17.0.0 255.255.255.0
unset ge
unset le
next
edit "Net_172.17.2.0_24"
config rule
edit 1
set prefix 172.17.2.0 255.255.255.0
unset ge
unset le
next
end
next
end
config router aspath-list
edit "MATCH-65302"
config rule
edit 1
set action permit
set regexp "^65302_"
next
end
next
end
regexp “^65302_”は、AS 65302から学習したことを表します。
config router route-map
edit “Secondary_Link"
config rule
edit 1
set match-as-path "MATCH-65302"
set match-ip-address "Net_10.100.0.0_16"
next
end
next
edit "Azure_Nw_172.17.0.0"
config rule
edit 1
set match-ip-address "Net_172.17.0.0_24”
set set-aspath “65304 65304”
next
edit 2
set match-ip-address "Net_172.17.2.0_24"
next end next end
# config neighbor
edit "6.6.6.1"
set soft-reconfiguration enable
set remote-as 65301
config conditional-advertise
Edit “Azure_Nw_172.17.0.0”
Set condition-routemap “Secondary_Link”
Set condition-type non-exist
next
end
“Secondary_Link”と“Azure_Nw_172.17.0.0”のルート・マップは、先ほど構成した条件付きASパス・プリペンド内で呼び出されます。Azureセカンダリ・ファイアウォール(FW4)がOCIセカンダリ・ファイアウォール(FW2)からネットワークAのパスの学習を停止した場合に限り、FW4はOCIプライマリ・ファイアウォール(FW1)に向けて広告します。 ネイバー5.5.5.1(FW2)には、オンプレミスのネットワークであるネットワークA(10.100.0.0/24)のみの受信を許容するフィルタがあり、そこではローカル・プリファレンスが200に設定されています。そのため、5.5.5.1がネットワークAに到達するための優先ネイバーとなります。 ファイアウォールにログインして、以下のコマンドを実行します。
># config router prefix-list
edit "Onprem_NW_10.100.0.0”
# config rule
edit 1
set prefix 10.100.0.0 255.255.0.0
unset ge
unset le
next
end
next
end
># config router route-map
edit "Onprem_NW_10.100.0.0”
# config rule
edit 1
set match-ip-address "Onprem_NW_10.100.0.0"
set set-local-preference 200
next
end
next
end
># config neighbor
edit "5.5.5.1"
set soft-reconfiguration enable
set remote-as 65302
set route-map-out "Onprem_NW_10.100.0.0"
next
end
以下のスクリーンショットは、BGPネイバー構成の例を示したものです。

以下のスクリーンショットは、ルート・マップ、接頭辞リスト、ASパスの構成を示したものです。

まとめ
このソリューションでは、OCIとAzure間の相互接続を使用して、Oracle Cloud Infrastructure経由でオンプレミスのデータセンターからAzureまでプライベートかつセキュアにネットワーク・トラフィックを移動させる方法について説明しました。このセットアップでは、OCI DRG拡張機能を利用して、複数のVCNを単一のDRGに関連付けて、相手先のピア設定済みAzure VNetまでルーティングできるようにしています。また、このソリューションでは、Oracle Cloud InfrastructureとAzure間のネットワーク接続をシンプルにすることで、管理上の負荷を軽減しています。特に、異なる複数のネットワークを接続して1つのマルチクラウド・ソリューションを形成する必要がある場合に、その効果が高くなります。
さらに情報をお探しの場合は、オラクルとMicrosoftによるこの戦略的サービスに関する詳細について、以下のリソースをご確認ください。
- Oracle Cloud expands with launch of San Jose region
- Oracle CloudとMicrosoft Azureでマルチクラウドの導入を迅速化
- The Oracle and Microsoft cloud partnership Accenture report
- Oracle Cloud Infrastructureでの障害時リカバリについて学ぶ
- Meet cloud’s new power couple:Oracle Cloud Infrastructure and Microsoft Azure
- Oracle Cloud Infrastructure and Azure interconnect solution playbook
- Oracle Cloud Infrastructureブログ

Niranjan Mohapatra
Principal Solution Architect
Niranjan Mohapatraは、Oracle Cloud Infrastructureチームのプリンシパル・ソリューション・アーキテクトで、21年以上のIT経験を有しています。Oracle認定クラウドソリューションアーキテクト、Oracle認定データベースプロフェッショナルの資格を持つ。オンプレミスのデータセンターソリューションとパブリッククラウドソリューションの経験がある。

Karthik Mani
Principal Cloud Architect
