LoginSignup
4

More than 3 years have passed since last update.

Oracle Analytics CloudからのDataGatewayを介した、Azure上のSQL ServerへのFastConnect接続~前編~

Last updated at Posted at 2020-11-16

●目的

Azure上のデータをOracle Analytics Cloud (以下OAC) でインターネットを経由せずに参照することを目的としました。Azure-OCI間をFastConnectで接続し、Oracle Service NetworkからAzureインスタンスにアクセスします。
前半では、Azure-OCI間の相互接続までを記載します。なお、DataGatewayインストール ~ OACからのリモート接続を参照したい方は後編をご覧ください。

●構成

  • 環境情報
    • Oracle Linux 7.8
    • Windows server 2019
    • SQL Server 2017

OCI-Linuxにインターネットゲートウェイを介してSSH接続し、サーバの環境設定を行う。Azure-OCI接続では、OCI-LinuxにインストールするDataGateway経由でAzureリソースへ到達するためにOCI側のインスタンスにはセカンダリvNICを追加する。

  • 構成イメージ 構成図.png

●FastConnectリージョン対応に関して

リージョン間でFastConnect接続できる組み合わせは、2020/11/1 時点では以下のものに制限されているので注意が必要。

Azure 米国東部 (EastUS) ~OCI アッシュバーン、VA (米国東部)
Azure 英国南部 (UKSouth) ~OCI ロンドン (英国南部)
Azure カナダ中部 (CanadaCentral) ~OCI トロント (カナダ南東部)
Azure 西ヨーロッパ (WestEurope) ~OCI アムステルダム (オランダ北西部)
Azure 東日本 (JapanEast) ~OCI 東京 (東日本)

Azureを米国東部、OCIをアッシュバーンとして接続検証を行った。

●Azure-OCIの相互接続

1. Azure側の構築

前提条件
Azure上に仮想ネットワーク、仮想マシン用サブネット、仮想マシン(Windowsサーバ)を作成済みであること。

1-1. ルート表の作成

ルートテーブル、ルート表の順に作成し、OCIのVCNのアドレス範囲を指定する。

リージョン:米国東部
名前:任意(ここでは、rt-azure-oci)
ゲートウェイのルートを伝達する : Yes

RT_Azure.png
デプロイ完了後、作成したリソースに移動し、[設定]>[ルート]> [+追加] でOCIへのルーティングを作成する。

ルート名:任意のルート名(rt-rr-azure-oci)
アドレスプレフィックス:OCIのVCNのアドレス範囲(10.0.0.0/16)
次ホップの種類:仮想ネットワークゲートウェイ

1-2. ゲートウェイサブネットの作成

ゲートウェイを配置するためのサブネットを作成する。
[リソースの作成]>[仮想ネットワーク]>[作成した仮想ネットワーク]>[サブネット]>[+ゲートウェイサブネット] の順に進み、作成する。

サブネットアドレス範囲:重複しないアドレスを入力する。(ここでは、192.168.1.0/27)
NATゲートウェイ:なし
ルートテーブル:作成したルートテーブルを選択
サービス:Microsoft.Sql
サブネットをサービスに委任:なし

sb_gw_Azure.png

1-3. 仮想ネットワークゲートウェイの作成

GatewaySubnetに仮想ネットワークゲートウェイを作成する。
[リソースの作成]>[仮想ネットワークゲートウェイ]>[+追加]で進み、仮想ネットワークゲートウェイを作成する。

名前:任意のインスタンス名(gw-ue-azure-oci)
地域:米国東部
ゲートウェイの種類:Express Route
SKU:Standard
仮想ネットワーク:仮想ネットワークを選択(ここでは、vnet-usa-east)
パブリックIP:新規作成 (ここでは既存のものを使用している)
パブリックIPアドレス名:任意のIPアドレス名(ここでは、ip-gw)
アクティブ/アクティブモードの有効化:無効
BGP ASNの構成:無効

作成。デプロイに時間がかかる。。。。(20分弱)
gw_azure.png

1-4. 受信規則の設定

OCIのVCNからAzureインスタンスに接続するための受信規則を設定する。
[作成したインスタンス名]>[ネットワーク]>[受信ポートの規則]>[受信ポートの規則を追加する]

名前:任意(ここでは、OCI。)
ポート:1433
プロトコル:TCP
ソース:OCIのVCN(10.0.0.0/16)

受信規則.png

1-5. ExpressRoute回線の作成

OCIとの接続するのに使用する回線を作成する。
[リソースの作成]>[Express Route circuit(回線)]>[+追加]

リージョン:米国東部
名前:任意(ここでは、er-azure-oci)
ポートの種類:プロバイダー
新規作成....:新規作成
プロバイダー:Oracle Cloud FastConnect
ピアリングの場所:Washinngton DC
帯域幅:1Gbps
SKU:Standard
課金モデル:従量課金制
クラシック操作:いいえ

er_azure.png
必要事項を入力し作成。
FastConnect作成時に使用するため、デプロイ完了後のサービスキーを確認する。
er-resource.png
FastConnectにサービスキーを入力して作成することで認証され、プロバイダーの状態が、[未プロビジョニング]→[プロビジョニング中]→[プロビジョニング済み]と進行していく。

1-6. 接続の作成

※「2-6. FastConnectの作成」でFastConnectを作成後、ライフサイクル状態が「プロビジョニング中」となってから行う。
デプロイしたExpressRouteからConnection(接続)を選択し、接続名、仮想ネットワークゲートウェイを選択し、作成。
ステータスが成功になれば完了。
connection_status.png

2. OCI側の構築

前提条件

・VCN(ここでは、vcn-dg(10.0.0.0/16))を作成済みであること。
・インスタンス(vm-oci (10.0.0.3) )を作成、OCIのインスタンス管理画面上でセカンダリvNICを追加していること。

2-1. セカンダリvNICの設定

プライベートサブネット側のvNICの設定を行う。OCIのインスタンス管理画面上でセカンダリvNICを追加してもインスタンスには認識されていない仕様のため、インスタンスにsshでログインし、vNICを認識させる必要がある。

rootユーザになり、現在の設定を確認します。

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
    link/ether 02:00:17:0B:84:F5 brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.5/24 brd 10.1.0.255 scope global dynamic ens3
       valid_lft 52752sec preferred_lft 52752sec
3: ens5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:17:01:36:c5 brd ff:ff:ff:ff:ff:ff

ens5が今回追加したvNICで、ステータスがDOWNになっている。
永続的にvNICを稼働させるために設定ファイルの編集する。

# cd /etc/sysconfig/network-scripts/
# ls -l
-rw-r--r--. 1 root root   168 Oct 27 02:02 ifcfg-ens3
-rw-r--r--. 1 root root   254 Aug 19  2019 ifcfg-lo
lrwxrwxrwx. 1 root root    24 Sep 17 00:20 ifdown -> ../../../usr/sbin/ifdown
-rwxr-xr-x. 1 root root   654 Aug 19  2019 ifdown-bnep
・・・・・・・・・

ifcfg-<デバイス名>がvNICの設定ファイル。
既存のifcfg-ens3をコピーし、ifcfg-ens5を作成、編集する。

# cp /etc/sysconfig/network-scripts/ifcfg-ens3 /etc/sysconfig/network-scripts/ifcfg-ens5

ens3の設定ファイルを参考に編集する。

# vi ifcfg-ens5
NAME="ens5" 
DEVICE="ens5"
ONBOOT=yes
NETBOOT=yes
HWADDR=00:00:17:01:36:C5
BOOTPROTO=static
PREFIX=24
IPADDR=10.0.1.2
MTU=9000
TYPE=Ethernet
NM_CONTROLLED=no

編集後、サーバを再起動することで完了。

# reboot

vNICが認識されているか確認。

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
    link/ether 02:00:17:0b:84:f5 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.3/24 brd 10.0.0.255 scope global dynamic ens3
       valid_lft 85269sec preferred_lft 85269sec
3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
    link/ether 00:00:17:01:36:c5 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/24 brd 10.0.1.255 scope global ens5

ステータスがUPされているので問題なし。

2-2. インスタンスのルーティングの設定

ens3、ens5ともにルーティング設定をする。
まず初めに現在のルーティングを確認する。

$ routel
         target            gateway          source    proto    scope    dev tbl
        default           10.0.0.1                                     ens3
      10.0.0.0/ 24                        10.0.0.3   kernel     link   ens3
      10.0.1.0/ 24                        10.0.1.2   kernel     link   ens5
   169.254.0.0/ 16                                   static     link   ens3
   169.254.0.0/ 16                                              link   ens3
   169.254.0.0/ 16                                              link   ens5
.............. 

編集内容
ens3
  ●インターネット(グローバルIP)からのルーティングを追加
ens5
  ●デフォルト・ゲートウェイをens3からens5に変更
  ●Azure側の仮想ネットワークへのルーティングを追加

/etc/sysconfig/network-scripts/にroute-<インターフェイス名>でファイルを作成する。

ens3のルーティング

# cd /etc/sysconfig/network-scripts
# touch route-ens3
# vi route-ens3

↓↓ route-ens3に以下を記述。※xxx.xxx.xxx.xxxはグローバルIPアドレス。
~~~
xxx.xxx.xxx.xxx via 10.0.0.1 dev ens3
~~~
同様にens5のスクリプトも作成する。

ens5のルーティング

# touch route-ens5
# vi route-ens5

route-ens5に以下を記述。※192.168.0.0/16はAzure仮想ネットワークのIPアドレス。

192.168.0.0/16 via 10.0.1.1 dev ens5

続いてデフォルト・ゲートウェイをens5にする。

network-scripts]# vi ifcfg-ens5

ifcfg-ens5の最後の行に、GATEWAY=10.0.1.1を追加する。

.................
GATEWAY=10.0.1.1

サーバを再起動して設定を更新する。

# reboot

再起動後、ルーティングが反映されているか確認する。

$ routel
         target            gateway          source    proto    scope    dev tbl
        default           10.0.1.1                                     ens5 
      10.0.0.0/ 24                        10.0.0.3   kernel     link   ens3 
      10.0.1.0/ 24                        10.0.1.2   kernel     link   ens5
   169.254.0.0/ 16                                   static     link   ens3 
   169.254.0.0/ 16                                              link   ens3
   169.254.0.0/ 16                                              link   ens5 
..............

gatewayが「10.0.0.1」から「10.0.1.1」になっていることが確認出来たら完了。

2-3. サービスゲートウェイの作成

[ネットワーキング]>[作成したVCN]>[リソース]>[サービスゲートウェイ作成]

(VCN作成時にデフォルトで作成されている場合もある。)

名前:任意(ここでは、sg-connect-drg)
コンパートメント:所属させたいコンパートメント
サービス:All IAD Services In Oracle Services Network

2-4. 動的ルーティングゲートウェイ (DRG) の作成

[ネットワーキング]>[動的ルーティングゲートウェイ]>[作成]。
ここはコンパートメントと名前を入力するだけ。
DRG作成後、VCN(ここでは、vcn-dg)にアタッチする。

名前:任意(ここでは、drg-connect-sg)
宛先CIDR : Azure仮想ネットワークのIPアドレス(ここでは、192.168.0.0/16)

2-5. ルート表の作成

サービスゲートウェイ、動的ルーティングゲートウェイ、プライベートサブネットに関連付けるルート表を作成する。
[ネットワーキング]>[作成したVCN]>[リソース]>[ルート表]>[ルートルールの追加]。

サービスゲートウェイ用ルート表

以下のルート表を作成する。
宛先としてAzureの仮想ネットワークのアドレス範囲を指定する。
image.png

※作成後、サービスゲートウェイのリソースへ移動し、ルート表を関連付ける。

動的ルーティングゲートウェイ用ルート表

以下のルート表を作成する。
image.png

※作成後、動的ルーティングゲートウェイのリソースへ移動し、ルート表を関連付ける。

プライベートサブネット用ルート表

以下のルート表を作成する。
image.png

2-6. セキュリティリストの作成

プライベートサブネット用セキュリティリスト

以下のセキュリティリストを作成する。
image.png

パブリックサブネット用セキュリティリスト

以下のセキュリティリストを作成する。
image.png

2-7. FastConnectの作成

[ネットワーキング]>[FastConnect]>[作成]
パートナーとしてMicrosoft Azure:ExpressRouteを選択する。
FastConnect.png
次に進み、以下を項目の入力する。

名前:任意(ここでは、fc-oci-azure)
コンパートメント:作成するコンパートメント
仮想回線タイプ:プライベート仮想回線
動的ルーティングゲートウェイ:作成したDRGを選択(ここでは、drg-oci-azure)
帯域幅:Azure側で設定した値に合わせる。(1Gbps)
パートナーサービスキー:ExpressRouteで表示されているものを貼り付ける。( ※「1-5. ExpressRouteの作成」を参照 )
顧客プライマリBGP IPV4アドレス:10.200.0.22/30
ORACLEプライマリBGP IPV4アドレス:10.200.0.21/30
顧客セカンダリBGP IPV4アドレス:10.200.0.26/30
ORACLEセカンダリBGP IPV4アドレス:10.200.0.25/30

FastConnect作成後、ステータスが成功、BGP回線が稼働中になっていれば完了。
image.png

3. 接続の確認

Azure (192.168.0.6) ⇔ OCI (10.0.1.2) で相互にping応答を確認する。

OCI-Linux ⇒ Azure-Windowsに対して
image.png

Azure-Windows ⇒ OCI-Linuxに対して
image.png
それぞれで応答が確認できたので、接続成功。

後編では、DataGatewayインストール~OAC-SQL Serverの接続までを行う。

●参考

・Azure-OCI間接続 : https://docs.oracle.com/ja/solutions/learn-azure-oci-interconnect/index.html#GUID-A3BCA684-47C4-4644-90E8-99A7E3E0A6FE

・ExpressRoute作成 : https://docs.microsoft.com/ja-jp/azure/expressroute/expressroute-howto-circuit-portal-resource-manager

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4