【初心者必見】Oracle Cloud Infrastructure(OCI) の仮想ネットワーク(VCN)とYAMAHAルータ間をVPN接続で繋いでみた

ついに、アラサーの仲間入りを果たしましたk.otsukaです。

今回は
OCIの仮想ネットワーク(以下、VCN)と 手元にあるYAMAHAルータ間をVPN(Virtual Private Network)接続で繋ぐ方法をご紹介します。
VPN接続なんてやったことない!という方は、ぜひ一読ください。


【ご注意】
本設定では、VPN接続を実施することのみを目的としています。
実際に運用する際には、「セキュリティ・リスト」や「ルート表」といったOCI側の設定や、セキュリティ対策を十分に行なった上でご利用ください。

今回の記事の目次

1. 本環境について

環境構成の紹介

  • 本記事では以下のような環境を構築します。
環境 詳細(設定値など)
社内ネットワーク 192.168.100.0/24
社内デフォルトゲートウェイ 192.168.100.1
PC ご自身のパソコン
ルータが待つグローバルIPアドレス 1.1.1.1
VPNアドレス(1) [IPSec接続の設定]を参照
VPNアドレス(2) [IPSec接続の設定]を参照
Oracle Cloud ご自身で持っているアカウント
VCN 10.10.0.0/16

※補足
・IG:インターネット・ゲートウェイ
・DRG:動的ルーティング・ゲートウェイ

f:id:k_otsuka_atom:20190710172058p:plain
本環境の簡易的なネットワーク構成

確認事項

  • 以下3つの項目が達成されていることを確認してください。
    ・VCNが作成されていること
    ・グローバルIPアドレスが付与されているYAMAHAのルータが手元にあること
    ・YAMAHAルータを介して、 社内のネットワークが構築されていること

  • 本手順に対応している機種は以下の通りです。
    ・RTX5000
    ・RTX3500
    ・RTX1210
    ・RTX830
    ・NVR700W
    各機器の詳細は以下のサイトをご参照ください。

network.yamaha.com

2. VPNとは

  • インターネットの世界で、閉鎖的なネットワーク(プライベートなネットワーク)を仮想的に構築する仕組みのことをVPNと定義しています。VPNを構築することで、外部からのアクセスを防ぐことができ、より安全に通信を行うことができます。

詳細は以下のサイトをご参照ください。

it-trend.jp

3. OCIの設定

顧客構内機器の設定

  • 利用するルータの情報をOCIに登録します。

  • OCIのリソース選択画面から、ネットワーキング⇨顧客構内機器 を選択します。

f:id:k_otsuka_atom:20190708145629p:plain
OCI リソース選択画面<顧客構内機器>

  • 「顧客構内機器の作成」を押し、以下パラメータを入力しましょう。
    名前;任意の名前
    IPアドレス:ルータに割り振ったグローバルIPアドレス
    ※本記事では暫定的に「1.1.1.1」とさせていただきます。

f:id:k_otsuka_atom:20190708134420p:plain
顧客構内機器 パラメータ選択画面

  • 「作成」ボタンを押して、顧客国内機器の設定が完了です。

動的ルーティング・ゲートウェイの設定

  • VCN外から特定の通信を可能にするゲートウェイの設定となります。
  • OCIのリソース選択画面から、ネットワーク⇨動的ルーティング・ゲートウェイを選択します。

    f:id:k_otsuka_atom:20190708150348p:plain
    OCI リソース選択画面<動的ルーティング・ゲートウェイ>

  • 「動的ルーティング・ゲートウェイの作成」ボタンを押し、任意の名前を入力しましょう。

f:id:k_otsuka_atom:20190708150946p:plain
動的ルーティング・ゲートウェイ パラメータ画面

  • 作成が完了したら、VPN接続を行いたいVCN⇨動的ルーティング・ゲートウェイ を選択し、目的のVCNにアタッチしましょう。

f:id:k_otsuka_atom:20190708185812p:plain
動的ルーティング・ゲートウェイ アタッチ画面

  • アタッチが完了したら、VPN接続を行いたいVCN⇨ルート表 を選択し、ルーティング設定を行いましょう。
    ターゲット・タイプ:動的ルーティング・ゲートウェイ
    宛先CIDR/ブロック:YAMAHAルータで設定しているローカル環境のネットワークアドレス

f:id:k_otsuka_atom:20190710114149p:plain
ルート表 パラメータ画面

  • 最後に、セキュリティ・リストの設定を行います。
    VPN接続を行いたいVCN⇨セキュリティ・リスト から、「イングレス・ルールの追加」ボタンを押して、ルールの追加を行いましょう。
    ソース・タイプ:CIDR
    ソースCIDR: YAMAHAルータで設定しているローカル環境のネットワークアドレス
    プロトコル:すべてのプロトコル
    ※ 本設定では、VPN接続のみを目的とした設定を実施しています。

f:id:k_otsuka_atom:20190710130851p:plain
セキュリティリスト ルール追加画面

IPSec接続の設定

  • OCIのリソース選択画面から、ネットワーキング⇨IPSec接続 を選択します。

    f:id:k_otsuka_atom:20190708145532p:plain
    OCI リソース選択画面<IPSec接続>

  • 「IPSec接続の作成」ボタンを押して、以下パラメータを入力しましょう。
    ・コンパートメントに作成:任意のコンパートメント
    名前:任意の名前
    顧客構内機器コンパートメント:顧客構内機器を作成したコンパートメント
    顧客構内機器:事前に作成した顧客構内機器
    動的ルーティング・ゲートウェイ・コンパートメント:動的ルーティング・ゲートウェイを作成したコンパートメント
    動的ルーティング・ゲートウェイ:事前に作成した動的ルーティング・ゲートウェイ
    静的ルートCIDR:YAMAHAルータで設定しているローカル環境のネットワークアドレス

f:id:k_otsuka_atom:20190708152037p:plain
IPSec接続 パラメータ画面

  • 作成ボタンを押し、使用可能になるまで5分ほど待ちます。
  • 作成したIPSec接続情報を選択すると、以下のような詳細画面が表示されます。
    「Oracle VPN IPアドレス」欄に登録されているIPアドレスを介してVPNを行うので、メモなどをして、手元に控えておきましょう。  

f:id:k_otsuka_atom:20190708154402p:plain
IPSec接続 詳細画面

  • トンネルを選択すると、共有シークレット(事前共有鍵)が確認できます。
    こちらもVPN接続をする際に必要な情報になるので、控えておきましょう。

f:id:k_otsuka_atom:20190708182055p:plain
IPSec接続 トンネル詳細画面

4. YAMAHAルータの設定

  • コンソール画面から登録を行います。
    以下のサイトを参考にシリアルコンソールから接続を行いましょう。

Windowsの方はこちら
www.j-oosk.com

Macの方はこちら
qiita.com

  • シリアルコンソールケーブルが手元にない場合は、telnetコマンドによる接続でも構いません。
    以下のサイトを参考に、telnetコマンドが実行できる状態にしましょう。

Windowsの導入方法はこちら
www.imamura.biz

Macの導入方法はこちら
qiita.com

telnet YAMAHAルータのIPアドレス <192.168.100.1>

f:id:k_otsuka_atom:20190708175544p:plain
telnetを用いたYAMAHAルータへの接続

  • 以下のサイトを参考にVPN接続のためのコマンドを作成しましょう。
    network.yamaha.com

  • 修正点は、7箇所になります。
    ・VPN接続先のネットワークアドレス
    ・ルータのグローバルアドレス (2箇所)
    ・1つ目の共有シークレット(事前共有鍵)
    ・1つ目のOracle VPN IPアドレス
    ・2つ目の共有シークレット(事前共有鍵)
    ・2つ目のOracle VPN IPアドレス

ip route VPN接続先のネットワークアドレス <10.10.0.0/16> gateway tunnel 1 hide gateway tunnel 2 hide

tunnel select 1
description tunnel OCI-VPN1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes256-cbc sha-hmac
ipsec ike duration ipsec-sa 1 3600
ipsec ike duration isakmp-sa 1 28800
ipsec ike encryption 1 aes256-cbc
ipsec ike group 1 modp1536
ipsec ike hash 1 sha256
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on dpd 5 4
ipsec ike local address 1 ルータのグローバルアドレス <1.1.1.1>
ipsec ike local id 1 0.0.0.0/0
ipsec ike nat-traversal 1 on
ipsec ike pfs 1 on
ipsec ike pre-shared-key 1 text 1つ目の共有シークレット(事前共有鍵)
ipsec ike remote address 1 1つ目のOracle VPN IPアドレス
ipsec ike remote id 1 0.0.0.0/0
ip tunnel tcp mss limit auto
tunnel enable 1

tunnel select 2
description tunnel OCI-VPN2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes256-cbc sha-hmac
ipsec ike duration ipsec-sa 2 3600
ipsec ike duration isakmp-sa 2 28800
ipsec ike encryption 2 aes256-cbc
ipsec ike group 2 modp1536
ipsec ike hash 2 sha256
ipsec ike keepalive log 2 off
ipsec ike keepalive use 2 on dpd 5 4
ipsec ike local address 2 ルータのグローバルアドレス <1.1.1.1>
ipsec ike local id 2 0.0.0.0/0
ipsec ike nat-traversal 2 on
ipsec ike pfs 2 on
ipsec ike pre-shared-key 2 text 2つ目の共有シークレット(事前共有鍵)
ipsec ike remote address 2 2つ目のOracle VPN IPアドレス
ipsec ike remote id 2 0.0.0.0/0
ip tunnel tcp mss limit auto
tunnel enable 2

ipsec auto refresh on
  • 用意したコマンドをコンソール上で実行することで、IPSecステータスが稼働中に変わります。

f:id:k_otsuka_atom:20190709173417p:plain
IPSec接続 パラメータ画面 <VPN接続中>

以上で、本設定は完了です。
VCN内に作成しているインスタンスに対して、pingやsshによる接続が可能になっていることが確認できました。
別のルータでも同様の設定ができたら、それについても記事として書こうと思います。