本記事は、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までプライベートにトランジットできます。

以下の図に、このソリューションのアーキテクチャを示します。

A diagram depicting the architecture of the solution.

このソリューション・アーキテクチャには、次のような主な特徴があります。
•    可用性:Border Gateway Protocol(BGP)などの動的ルーティング・プロトコルを構成することにより、高可用性が確保されます。
•    スケーラビリティ:ネットワーク・トラフィックが複数の仮想インスタンスに分散されることにより、スケーラビリティが確保されます。
•    パフォーマンス:仮想インスタンスに対して適正サイズのコンピュートとネットワークを選択することにより、高いパフォーマンスを達成できます。
このソリューションではFortiGateファイアウォールを使用しましたが、必要に応じて他のファイアウォール・オプションも使用できます

 

OCI 経由でオンプレミスから Azure までのプライベート・トンネルを構成

本記事では、OCIランディング・ゾーンと、OCI内およびAzure内のFortiGate次世代ファイアウォール構成の作成手順のみを取り上げます。Oracle Cloud InfrastructureとMicrosoft Azure間のエンド・ツー・エンドの相互接続構成については、このブログを参照してください。

 

OCIでのVCNの作成または既存のVCNの使用

  1. OCIでVCNを作成するか、既存のVCNを使用します。VCNに1つのパブリック・サブネットと1つのプライベート・サブネットを作成します。
  2. それぞれのOCI VCNに対して、OCI-Azure Interconnectで使用中の既存のDRG内に、VCNアタッチメントを作成します。
  3. 新しく作成したVCN内で、必要なサブネット、ルート表、セキュリティ・リストを作成します。これらのルート表とセキュリティ・リストをサブネットにアタッチします。

以下のスクリーンショットは、OCI内のDRGへのVCNのアタッチメントについて示したものです。

A screenshot of the virtual cloud networs attachments page in the Oracle Cloud Console.

 

Marketplaceのイメージを使用したOCIでのFortiGateインスタンスのデプロイ

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

A screenshot of the Instances in Comparment page in the Console.

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

以下のスクリーンショットは、OCIのプライマリFortinetファイアウォールに作成されたIPSecトンネルを示したものです。

A screenshot of the IPSec tunnels on the primary Fortinet firewall.

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

以下のスクリーンショットは、OCIのセカンダリFortinetファイアウォールに作成されたIPSecトンネルを示したものです。

A screenshot of the IPSec tunnels on the secondary Fortinet firewall.


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

A screenshot of the assigned IP addresses for the tunnel interface of the primary firewall.

A screenshot of the assigned IP addresses for the tunnel interface of the secondary firewall.

 

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

A screenshot of the BGP configuration and the AS numbers assigned to the primary firewall.


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

A screenshot of the BGP configuration and the AS numbers assigned to the secondary firewall.

 

AzureでのFortinetファイアウォールのデプロイと構成

Azureポータルに接続し、Azure上に2つのFortinetファイアウォール(プライマリとセカンダリ)をデプロイします。Fortinetファイアウォールに対して、Azure Marketplaceのイメージを使用できます。適正サイズのコンピュート・シェイプを選択して、Azure上にFortinetファイアウォールをデプロイします。OCI Fortinetファイアウォールの構成手順を実行した後、以下の手順を実行してください。

  1. Azureで実行されるプライマリ、セカンダリのそれぞれのFortinetファイアウォール上で、ルートベースのIPSec VPNトンネルを2つ作成します。両方のIPSecトンネルをOCI Fortinetファイアウォールに接続します。
  2. Azureで実行されるプライマリ、セカンダリの両方のFortinetファイアウォール上で、トンネルのIPアドレスを割り当てます。
  3. Azureで実行されるプライマリ、セカンダリの両方のFortinetファイアウォール上で、BGPを構成し、ローカルAS番号、ルーターID、リモートAS番号を割り当てます。

 

Azure Fortinetファイアウォールでの条件付きパスの構成

A diagram depicting the architecture for conditional paths.

ネットワーク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ネイバー構成の例を示したものです。
 

A screenshot of the code output for a BGP neighbor configuration.

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

A screenshot of the code output for the route map, prefix list, and AS path configuration.

 

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ネイバー構成の例を示したものです。

A screenshot of the code for a BGP neighbor configuration.

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

A screenshot of the code for the route map, prefix list, and AS path configuration.

 

まとめ

このソリューションでは、OCIとAzure間の相互接続を使用して、Oracle Cloud Infrastructure経由でオンプレミスのデータセンターからAzureまでプライベートかつセキュアにネットワーク・トラフィックを移動させる方法について説明しました。このセットアップでは、OCI DRG拡張機能を利用して、複数のVCNを単一のDRGに関連付けて、相手先のピア設定済みAzure VNetまでルーティングできるようにしています。また、このソリューションでは、Oracle Cloud InfrastructureとAzure間のネットワーク接続をシンプルにすることで、管理上の負荷を軽減しています。特に、異なる複数のネットワークを接続して1つのマルチクラウド・ソリューションを形成する必要がある場合に、その効果が高くなります。
さらに情報をお探しの場合は、オラクルとMicrosoftによるこの戦略的サービスに関する詳細について、以下のリソースをご確認ください。

Niranjan Mohapatra

Principal Solution Architect

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

 

Karthik Mani

Principal Cloud Architect