OCI-CとOCIの相互接続を試してみた(VPN)

こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。

「OCIとAzureの相互接続を試してみた」につづいて、
Oracle Cloud Infrastructure – Classic(OCI-C) と Oracle Cloud Infrastructure(OCI) のVPNによる相互接続を検証して見たいと思います。

環境構成

今回の 今回の環境構成は次の通りです。

事前作業

事前に以下の設定が完了していることを前提とします。
・OCI-C IPネットワーク構成 (IPネットワーク:192.168.1.0/24(default)を利用)
・OCI-C Computeインスタンス作成
・OCI VCNおよびサブネット構成 (VCN:10.0.0.0/16, SUBNET:10.0.1.0/24を利用)
・OCI Computeインスタンス作成
 ※各種グローバルIPアドレスは、適宜環境に合わせて変更ください。

実施手順

①[OCI-C] VPNaaSの作成
②[OCI] DRGの作成
③~⑤[OCI-C/OCI] VPN接続の設定
 ③[OCI] CPEの設定
 ④[OCI] IPSec接続の作成
 ⑤[OCI-C] VPNaaSのカスタマーゲートウェイ再設定
⑥~⑧ [OCI/OCI-C] ルーティング・セキュリティ設定
 ⑥[OCI] ルート表の作成
 ⑦[OCI] セキュリティ・リストの作成
 ⑧[OCI-C] セキュリティ・ルールの設定

①[OCI-C] VPNaaSの作成

VPNaaSの作成にあたり、「事前共有キー」を作成する必要があります。
今回はLinux Server上で、以下コマンドを実施して作成します。
# openssl rand -base64 24

事前共有キーが作成出来たら、OCI-CへログインしてVPNaaSの作成をします。

OCI-Cへログイン後、上部の “ネットワーク” を選択、
左部の “VPN” – “VPNaaS” – “VPN接続” を選択、
「VPN接続の作成」ボタンを押して以下の設定を入力して作成します。

  • 名前:VPN001
  • IPネットワーク:default(192.168.1.0/24)
  • vNICset:Instance001_vNicSet
     ※インスタンス作成時に自動生成されるVnicSetを使用
  • カスタマーゲートウェイ:1.2.3.4
     ※後述の手順にて設定するため仮設定
  • 顧客が到達可能なルート:10.0.0.0/16
     ※VCNのCIDRを使用
  • 事前共有キー:meZikf0asyBE1l4EpHAFTGYAgDo7NbzV
  • フェーズ1 IKE提案の指定:チェック
    • IKE暗号化:AES256 (デフォルト)
    • IKEハッシュ:SHA2 256 (デフォルト)
    • IKE DHグループ:5
    • IKE存続期間:28800 (デフォルト)
  • フェーズ2 ESP提案の指定:チェック
    • ESP暗号化:AES256 (デフォルト)
    • ESPハッシュ:SHA1
    • IPSEC存続期間:3600

作成後、VPNaaSの一覧にてVPNaaSのパブリックIPを確認します。後述の手順で使用します。
プロビジョニングが完全に終わるまでには、10分~数十分かかります。

②[OCI] DRGの作成

次は、OCIへログインをして、Dynamic Routing Gateways (DRG, 動的ルーティング・ゲートウェイ)の作成を行います。

ログイン後、左部の “ネットワーキング” – “動的的ルーティング・ゲートウェイ” を選択
「動的ルーティング・ゲートウェイの作成」ボタンを押して以下の設定を入力して作成します。

  • コンパートメント:(対象のコンパートメント名)
  • 名前:DRG001

作成後、インターネットゲートウェイやNATゲートウェイ同様に、このままではネットワークに接続されていないため、VCNへアタッチする必要があります。

左部の “ネットワーキング” – “仮想クラウド・ネットワーク” を選択して、対象のVCN(VCN001)を選択します。
同じく左部のリソースから、”動的ルーティング・ゲートウェイ” を選択して、「動的ルーティング・ゲートウェイのアタッチ」ボタンを押して、以下の設定を入力してアタッチします。

  • コンパートメント:(対象のコンパートメント)
  • 動的ルーティング・ゲートウェイ:DRG001

③~⑤[OCI-C/OCI] VPN接続の設定

次に手順①で作成したOCI-CのVPNaaSと、手順②で作成したOCIのDRGを接続するためのVPN接続の設定をします。

③[OCI] CPEの設定

Customer Premises Equipment(CPE, 顧客構内機器)の設定を行います。
OCI-CのVPNaaSがどこにあるのかを設定する項目になります。

左部の “ネットワーキング” – “顧客構内機器” を選択、
「顧客構内機器の作成」ボタンを押して、以下の設定を入力して作成します。

  • 名前:CPE001
  • コンパートメント:(対象のコンパートメント)
  • パブリックIPアドレス:手順①にて確認したパブリックIPアドレス
  • CPEベンダー情報:Other

④[OCI] IPSec接続の作成

IPSec接続の設定を行います。
OCI-CのVPNaaSとOCIのDRGを相互接続するための項目になります。

左部の “ネットワーキング” – “VPN接続” を選択、
「IPSec接続の作成」ボタンを押して、以下の設定を入力して作成します。

  • コンパートメント:(対象のコンパートメント名)
  • 名前:IPSec001
  • 顧客構内機器コンパートメント:(対象のコンパートメント名)
  • 顧客構内機器:CPE001
  • 動的ルーティング・ゲートウェイ・コンパートメント:(対象のコンパートメント名)
  • 動的ルーティング・ゲートウェイ:DRG001
  • 静的ルートCIDR:192.168.1.0/24

作成後、VPN接続のステータス画面にて、Oracle VPN IPアドレスを確認します。
冗長化のためVPN接続は二つ作成されますが、今回は一行目の情報を使用します。

トンネルの設定として、共有シークレットキー(事前共有キー)をOCI側でも設定します。
作成されたトンネルの名前「ipsectunnel20201005083932」を選択して、トンネル情報内にある、共有シークレットの「編集」を選択して、手順①にて作成した事前共有キーを入力します。

⑤[OCI-C] VPNaaSのカスタマーゲートウェイ再設定

OCI-CのVPNaaSで仮設定としていたカスタマーゲートウェイを再設定します。

OCI-Cへログイン後、上部の “ネットワーク” を選択、
左部の “VPN” – “VPNaaS” – “VPN接続” を選択、
作成したVPNaaSの名前「VPN001」を選択して、”カスタマー・ゲートウェイ”の項目を、手順④で確認したOCIのVPNアドレスに変更して更新をします。

更新したあと、
・OCI-C側のVPNaaSのトンネル/ライフ・サイクル・ステータスが「稼働中/準備完了」
・OCI側のVPN接続のIPSecステータスが「稼働中」
になっていれば、VPN接続の設定は完了です。

⑥~⑧ [OCI/OCI-C] ルーティング・セキュリティ設定

①~⑤の手順で、OCI-CとOCIの間のVPN接続は完了しました。
ここからは、各インスタンス間の通信を許可するために、ルート表とセキュリティリストの設定します。

⑥[OCI] ルート表の作成

まずは、OCIのルート表を設定します。

左部の “ネットワーキング” – “仮想クラウド・ネットワーク” を選択して、対象のVCN(VCN001)を選択します。
同じく左部のリソースから、”ルート表” を選択して、「ルート表の作成」ボタンを押して、以下の設定を入力して作成します。

  • 名前:ROUTE001
  • コンパートメント:(対象のコンパートメント名)
  • 追加のルート・ルール:選択
    • ターゲット・タイプ:動的ルーティング・ゲートウェイ
    • CIDRブロック:192.168.1.0/24

ルート表が作成できたら、対象のセグメントにアタッチします。

左部の “ネットワーキング” – “仮想クラウド・ネットワーク” を選択して、対象のVCN(VCN001)を選択します。
同じく左部のリソースから、”サブネット” を選択して、対象のサブネットの名前「SUBNET001」を選択、サブネット詳細から「編集」ボタンを押して、以下の設定を入力して保存します。

  • 名前:SUBNET001 (そのまま)
  • DHCPオプション:Default DHCP Options for VCN001 (そのまま)
  • ルート表:ROUTE001

⑦[OCI] セキュリティ・リストの作成

次に、セキュリティ・リストの作成を行います。

左部の “ネットワーキング” – “仮想クラウド・ネットワーク” を選択して、対象のVCN(VCN001)を選択します。
同じく左部のリソースから、”セキュリティ・リスト” を選択して、「セキュリティ・リストの作成」ボタンを押して、以下の設定を入力して作成します。
今回は、ping(icmp/all)とssh(tcp/22)を開放します。

  • 名前:SECLIST001
  • コンパートメント:(対象のコンパートメント)
  • 追加のイングレス・ルール1:選択
    • ステートレス:未選択
    • ソースタイプ:CIDR
    • ソースCIDR:192.168.1.0/24
    • IPプロトコル:ICMP
    • タイプオプション: 未入力
    • コード: 未入力
  • 追加のイングレス・ルール2:選択
    • ステートレス:未選択
    • ソースタイプ:CIDR
    • ソースCIDR:192.168.1.0/24
    • IPプロトコル:TCP
    • ソース・ポート範囲:未入力
    • 宛先ポート範囲:22

セキュリティ・リストが作成できたら、対象のセグメントにアタッチします。

左部の “ネットワーキング” – “仮想クラウド・ネットワーク” を選択して、対象のVCN(VCN001)を選択します。
同じく左部のリソースから、”サブネット” を選択して、対象のサブネットの名前「SUBNET001」を選択、サブネット詳細から「セキュリティ・リストの追加」ボタンを押して、以下の設定を入力して作成します。

  • コンパートメント:(対象のコンパートメント)
  • セキュリティ・リスト:SECLIST001

⑧[OCI-C] セキュリティ・ルールの設定

VPN接続作成時に、「セキュリティ・ルール」「アクセス制御リスト」「IPアドレス接頭辞セット」が、自動生成されています。

  • 「セキュリティ・ルール」:from-vpngateway-xxxxx, to-vpngateway-xxxxx
  • 「アクセス制御リスト」:vpn-acl-xxxxx
  • 「IPアドレス接頭辞セット」 :vpn-ipaddr-prefset-xxxx

その中で、「セキュリティ・ルール」のみ編集します。

OCI-Cへログイン後、上部の “ネットワーク” を選択、
左部の “IPネットワーク” – “セキュリティ・ルール” を選択、
自動生成されたセキュリティルールの名前「from-vpngateway-xxxxx」と「to-vpngateway-xxxxx」を選択して、二つともに “セキュリティ・プロトコル” へ以下設定を追加して更新します。

  • セキュリティ・プロトコル:ssh, any-icmp

設定は以上になります。