Oracle Cloud Infrastructure とYAMAHAルータでVPN接続をしてみた

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

前回に引き続きVPN接続について紹介したいと思います。
今回はOracle Cloud Infrastructure(以下、OCI)とYAMAHAルータでVPN接続をしてみます。
※前回、OCIとCISCOルータとのVPN接続をご紹介させていただきました。
※OCI側の設定内容はまったく一緒ですので既に前回の記事をご覧になっている方は
※退屈かもしれませんがご容赦ください。なお、大項目4がYAMAHAルータの設定となっております。

それでは早速、使ってみましょう!

1.   OCIとオンプレミスネットワークのVPN接続

【概要】
今回はオフィスのインターネット回線(グローバルIP)を利用して、Oracle Cloud Infrastructure
のゲートウェイにインターネットVPN接続をするものとなります。
VPNセッションはオフィスに設置のルータ(YAMAHA)とOCIのゲートウェイであるDRGとで行います。


図1.NW全体構成図

【前提条件】
作業を行うにあたり、必須となる前提条件を以下に記載します。
_・オンプレミスネットワークのグローバルIPがあること※上記図のGIP 1
_・OCIアカウントが準備されていること

【OCIの作業内容】
VPN接続をするためには、オンプレミスネットワーク側のルータと、OCI側とでそれぞれ設定が
必要となりますが、OCI側のVPN接続設定については以下の流れとなります。

  1. VCN(Virtual Cloud Network)の作成
    VCNは仮想クラウドネットワークのことであり、従来の物理ネットワーク相当のものをS/W定義したものとなります。
    (物理ネットワーク相当:サブネット、ルーティングテーブル、ゲートウェイなど)
  2. CPE(Customer Premises Equipment)の作成
    CPEは顧客構内設備のことであり、VPN設定時には、OCI側にCPEオブジェクトとして、オンプレミスルーターを表す仮想オブジェクト作成する必要があります。
  3. DRG(Dynamic Routing Gateway)の作成
    DRGはVCNとオンプレミスネットワーク間をつなぐゲートウェイであり、IPSecVPNによるオンプレミスネットワークとの接続を確立するのに使用します。
  4. DRGをVCNに登録
    VPN接続で使用するプライベートネットワークであるVCNにゲートウェイであるDRGを登録します。
  5. ルーティングテーブルの作成
    OCIからオンプレミスネットワークへ接続するためのルーティングテーブルを作成します。
  6. セキュリティリストの作成
    オンプレミスネットワークとのトラフィック制御設定を行います。
  7. サブネットの作成
    VCN内は1つまたは複数のサブネットにわかれています。このサブネット単位でルーティングテーブルやセキュリティリストの設定が可能です。

今回はVPN接続検証用にOCI内にWindowsインスタンスを作成します。
作成方法についてもあわせて後述します。

2.   VPN接続設定

2.1.    OCIへログイン

OCIの操作を行うためにOCIコンソールへログインします。

OCIのログイン画面をブラウザで表示し、「Cloud Tenant」を入力後、Continueを押下します。
※Cloud Tenant番号はOCIアカウント作成時に連絡されます。

アカウント情報を入力し、「Sign In」を押下します。

TOP画面が表示されることを確認します。

2.2.    VCN(Virtual Cloud Network)の作成

VCNを作成するための手順を以下に記載します。

MENU > Networking > Virtual Cloud Networks の順に選択をして、「Virtual Cloud Networks」を押下します。

Virtual Cloud Networksの画面で「Create Virtual Cloud Network」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、
「Create Virtual Cloud Network > CLOSE」の順に押下します。
【入力項目】

  • NAME:VCN名を入力します。
  • ラジオボタン:関連リソースをあわせて作成するため
    「CREATE VIRTUAL CLOUD NETWORK PLUS RELATED RESOURCES」を選択します。

VCNが作成されたことを確認します。

2.3.    CPE(Customer Premises Equipment)の作成

CPEを作成するための手順を以下に記載します。

Customer-Premises Equipment の画面で「Create Customer-Premises Equipment」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Create」を押下します。
【入力項目】

  • NAME:CPE名を入力します。
  • オンプレミスネットワークのグローバルIPアドレスを入力します。※図1のGIP 1になります。

CPEが作成されたことを確認します。

2.4.    DRG(Dynamic Routing Gateway)の作成

DRGを作成するための手順を以下に記載します。

Dynamic Routing Gateways の画面で「Create Dynamic Routing Gateway」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Create Dynamic Routing Gateway」を押下します。
【入力項目】

  • NAME:DRG名を入力します。

DRGが作成されたことを確認します。
※ステータスが PROVISIONING  → AVAILABLE へと変化します。

先ほど作成したDRGを選択し、IPsec Connections の画面で、「Create IPsec Connection」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Create IPsec Connection」を押下します。
【入力項目】

  • NAME:IPsec名を入力します。
  • CUSTOMER-PREMISES EQUIPMENT:作成済みのCPEを選択します。
  • STATIC ROUTE CIDR:オンプレミスネットワークのプライベートIPアドレスをCIDR形式で入力します。

IPsecが作成されたことを確認します。
※ステータスが PROVISIONING  → AVAILABLE へと変化します。

IPsecを作成するとDRGにグローバルIPアドレス&共有鍵がそれぞれ2個割り当てられ、
これらの情報をオンプレミスルーターに登録する必要があります。
確認する方法は、作成したIPsecの右側にある「Tunnel Information」を押下します。
※ここで作成されるIPアドレスが図1のGIP 2、GIP 3になります。
 

※参考:オンプレミスルーター側の設定が完了し、VPNセッションが張られると以下のようにステータスがUPします。

2.5.    DRGをVCNに登録

DRGをVCNにアタッチする手順を以下に記載します。

MENU > Networking > Virtual Cloud Networks の画面で先ほど作成したVCNを選択します。
その後、Dynamic Routing Gatewaysの画面で「Attach Dynamic Routing Gataway」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Attach」を押下します。
【入力項目】

  • DYNAMIC ROUTING GATEWAYS:割り当てるDRG名を入力します。

DRGがAttachされたことを確認します。

2.6.    ルーティングテーブルの作成

ルーティングテーブルの作成方法を以下に記載します。

MENU > Networking > Virtual Cloud Networks の画面で先ほど作成したVCNを選択します。
その後、Route Tablesの画面で「Create Route Table」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Create Route Table」を押下します。
【入力項目】

  • NAME:Route Table名を入力します。
  • TARGET TYPE:DRGを選択します。
  • DESTINATION CIDR BLOCK:オンプレミスネットワークのプライベートIPアドレスをCIDR形式で入力します。
  • TARGET DYNAMIC ROUTING GATEWAY:作成したDRGを入力します。

Route Tablesが作成されたことを確認します。

2.7.    セキュリティリストの作成

セキュリティリストの作成方法を以下に記載します。

MENU > Networking > Virtual Cloud Networks の画面で先ほど作成したVCNを選択します。
その後、Security Listsの画面で「Default Security List for VCN名」を押下します。

設定の編集を行うために「Edit All Rules」を押下します。

オンプレミスネットワークとの通信許可を行うための設定を行います。
※今回はすべての通信を許可するためにIngressに対してSOURCE:0.0.0.0/0、
_PROTOCOL:All Protocolsで設定します。初期状態でSSH接続用にIngressのRule1に
_登録されているIP ProtocolsをTCP→All Protocolsに変更します。なお、Egressの
_通信許可はDestination:0.0.0.0/0、PROTOCOL:All Protocolsが初期状態で登録されています。

設定内容を保存するために「Save Security List Rules」を押下します。

設定内容が反映されたことを確認します。

2.8.    サブネットの作成

サブネットを作成する方法を以下に記載します。

MENU > Networking > Virtual Cloud Networks の画面で先ほど作成したVCNを選択します。
その後、Subnetsの画面で「Create Subnet」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Create」を押下します。
【入力項目】

  • NAME:サブネット名を入力します。
  • AVAILABILITY DOMAIN:ここでは Llma:PHX-AD-1を選択します。
  • CIDR BLOCK:OCIのプライベートIPをCIDR形式で入力します。(例:10.0.3.0/24)
  • ROUTE TABLE:先ほど作成したRoute Teblesを入力します。
  • SUBNET ACCESS:PRIVATE SUBNETを選択します。※VPN接続用のSUBNETはPRIVATEで作成します。
  • Security Lists:先ほど作成したSecurity Listsを入力します。

サブネットが作成されたことを確認します。

3.   Windowsインスタンス作成

3.1.    VPN接続用Windowsインスタンス作成

VPN接続用のWindowsインスタンス作成手順を以下に記載します。

MENU > Compute > Instances の順に選択をし、「Instances」を押下します。

Instances画面で「Create Instance」を押下します。

入力画面が表示されますので、必要事項を入力のうえ、「Create」を押下します。
【入力項目】

  • Name your instance:インスタンス名を入力します。
  • Choose an operating system or image source:「Change Image Source」を押下します。
    OSを選択後、規約に同意し、「Select Image」を押下します。ここではWindows2016SEを選択します。
  • Choose instance type:Virtual Mashineを選択します。
  • Virtual cloud network:先ほど作成したVCN名を入力します。
  • Subnet:先ほど作成したサブネット名を入力します。

Windowsインスタンスが作成されたことを確認します。
※起動まで完了するとステータスが PROVISIONING  → RUNNING へと変化します

4.   YAMAHAルータ設定

OCI側の設定が出来たのでこれからYAMAHAルータの設定をしていきましょう。

以下のNWの全体構成図を元に作成していきます。

図2.NW全体構成図

オフィス Private IP 192.168.100.0/24
OCI Private IP 10.0.3.0/24

今回使用した構成情報を下記に記載します。
・YAMAHAルータ機器:RTX830
・ファームウェア:15.02.09

【概要】
YAMAHAルータの設定内容としてインターネットに接続する設定とVPN通信するための設定を行います。
本構成では2本のVPNトンネルを作成し1本のトンネルに障害が発生しても片方のトンネルに
切り替える冗長構成をとってます。

【YAMAHAルータの作業内容】
YAMAHAルータの設定内容については以下の流れとなります。

  1. PPPoE設定
    まずはインターネットに接続するためにPPPoEの設定を行います。ISPから割り当てられた情報を元にインターネット接続を行います。。(※ISPと回線キャリアが同じ事業者の場合PPPoEの設定は不要ですので4-2から設定します)
  2. VPNの設定
    インターネットの接続の設定が完了したらVPN接続のためVPNトンネルを作成します。
    VPNトンネル内には暗号化された通信を行う際にIPsecを使用するためOCIのピアアドレス
    (GIP2、GIP3)と共有鍵をマッピングさせるためにトンネルインタフェースを作成しています。

4.1.    PPPoE設定

ppインターフェースに対してPPPoEの情報を入れ込みます。
赤字で記載されている箇所は環境によってパラメータ値を修正する必要があります。

pp select 1
description pp Flets
pp keepalive interval 30 retry-interval=30 count=12
pp always-on on
pppoe use lan2
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname [ISPへ接続するID] [ISPへ接続するパスワード]
ppp lcp mru on 1454
ppp ipcp ipaddress on
ppp ccp type none
ip pp address [GIP1]/32

PPインターフェースに対してデフォルトルートの設定を行います。

ip route default gateway pp 1

DNSサーバの設定を行います。

dns server [ISPで指定されているプライマリーDNSサーバー] [ISPで指定されているセカンダリーDNSサーバー]
dns server select 500001 [ISPで指定されているプライマリーDNSサーバー] [ISPで指定されているセカンダリーDNSサーバー] any . restrict pp 1

IP filterの設定を行います。
今回はYAMAHAルータの推奨のIPfilterを使用します。
※YAMAHAルータのGUIでPPPoEの設定をする際に推奨されるIPfilterを設定しています。

ip filter 200000 reject 10.0.0.0/8 * * * *
ip filter 200001 reject 172.16.0.0/12 * * * *
ip filter 200002 reject 192.168.0.0/16 * * * *
ip filter 200003 reject 192.168.100.0/24 * * * *
ip filter 200010 reject * 10.0.0.0/8 * * *
ip filter 200011 reject * 172.16.0.0/12 * * *
ip filter 200012 reject * 192.168.0.0/16 * * *
ip filter 200013 reject * 192.168.100.0/24 * * *
ip filter 200020 reject * * udp,tcp 135 *
ip filter 200021 reject * * udp,tcp * 135
ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 200024 reject * * udp,tcp 445 *
ip filter 200025 reject * * udp,tcp * 445
ip filter 200026 restrict * * tcpfin * www,21,nntp
ip filter 200027 restrict * * tcprst * www,21,nntp
ip filter 500000 restrict * * * * *
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200031 pass * 192.168.100.0/24 established * *
ip filter 200032 pass * 192.168.100.0/24 tcp * ident
ip filter 200033 pass * 192.168.100.0/24 tcp ftpdata *
ip filter 200034 pass * 192.168.100.0/24 tcp,udp * domain
ip filter 200035 pass * 192.168.100.0/24 udp domain *
ip filter 200036 pass * 192.168.100.0/24 udp * ntp
ip filter 200037 pass * 192.168.100.0/24 udp ntp *
ip filter 200099 pass * * * * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200081 * * domain
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200085 * * submission
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp

ppインターフェースのインバウンドに対してfilterを設定をします。
※YAMAHAルータのGUIでPPPoEの設定をする際に推奨されるIPfilterを設定しています。

ip pp secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032

ppインターフェースのアウトバウンドに対してfilterを設定をします。
※YAMAHAルータのGUIでPPPoEの設定をする際に推奨されるIPfilterを設定しています。

ip pp secure filter out 200013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099

LAN側からインターネット接続はマスカレードする設定を行います。
※YAMAHAルータのGUIでPPPoEの設定をする際に推奨されるnatを設定しています。

ip pp nat descriptor 1000

これでインターネットの設定は完了しました。
次にVPNの設定を行っていきましょう!

スタティックルートの設定

ip route 10.0.0.0/16 gateway tunnel 1 hide gateway tunnel 2 hide

VPNトンネル内には暗号化された通信を行う際にIPsecを使用するためOCIのピアアドレス(GIP2、GIP3)と共有鍵をマッピングさせるためにトンネルインタフェースを2本作成しています。

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 [GIP1]
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 [GIP2共通鍵]
ipsec ike remote address 1 [GIP2]
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 [GIP1]
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 [GIP3共通鍵]
ipsec ike remote address 2 [GIP3]
ipsec ike remote id 2 0.0.0.0/0
ip tunnel tcp mss limit auto
tunnel enable 2

Ipsec用で使用されているIKEで使用される「500/udp」暗号通信で使用されている「ESP」NAT-Tで使用されている「4500/udp」を開放します。

ip filter 200080 pass * 192.168.100.1 udp * 500
ip filter 200081 pass * 192.168.100.1 esp * *
ip filter 200100 pass * 192.168.100.1 udp * 4500
ip filter 200111 pass [GIP1] icmp 0

ppインターフェースのインバウンドに対してfilter設定をします。

PP select 1
 ip pp secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032 200100 200101

ppインターフェースのアウトバウンドに対してfilter設定をします。

ip pp secure filter out ip pp secure filter out 200013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099 200100 200101

IPマスカレードとstatic NATを同時に行うインターネット側のIPアドレスを定義します。鍵交換プロトコルIKEの通信をルータが占有する設定 とルータがESPの暗号通信を占有する設定します。

nat descriptor type 1000 masquerade
nat descriptor address outer 1000 [GIP1]
nat descriptor masquerade static 1000 1 192.168.100.1 udp 500
nat descriptor masquerade static 1000 2 192.168.100.1 esp

IKEの鍵交換を自動で開始する設定を行います。

ipsec auto refresh on

4.2.    VPN設定

確認コマンド

スタティックルートでトンネルインターフェースがルーティングテーブルに
記載されているか確認します。

show ip route
~~~~~~~~~~~~~~~ 出力例 ~~~~~~~~~~~~~~~
宛先ネットワーク   ゲートウェイ     インタフェース    種別    付加情報
default           -               PP[01]          static
10.0.0.0/16       -               TUNNEL[1]       static
10.0.0.0/16       -               TUNNEL[2]       static
[GIP1]/32         -               PP[01]          implicit
192.168.100.0/24  192.168.100.1   LAN1            implicit
[GIP1]/32         -               PP[01]          temporary
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

IPsec Phase2の確認コマンドになります。
Phase1、Phase2の情報が表示されます。

show isakmp sa
~~~~~~~~~~~~~~~ 出力例 ~~~~~~~~~~~~~~~
Total: isakmp:2 send:2 recv:2
sa   sgw     isakmp    connection     dir      life[s]  remote-id
---------------------------------------------------------------
2     2       -        isakmp         -        26378    [GIP3]
3     1       -        isakmp         -        28746    [GIP2]
4     1       3        tun[0001]esp   send     3548     [GIP2]
5     2       2        tun[0002]esp   send     1180     [GIP3]
6     2       2        tun[0002]esp   recv     1180     [GIP3]
7     1       3        tun[0001]esp   recv     3548     [GIP2]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

両端の情報が表示されていているのでVPN接続できています!
YAMAHAルータで設定できました!!

5.   VPN接続確認

OCIとオンプレミスルータでVPN設定が完了しましたので、接続確認を行います。
確認法方法として、OCIのWindowsサーバに共有フォルダを設定後、プライベートIPで
オフィスの端末からアクセスできることを確認します。※共有フォルダ設定は割愛します。

作業端末からWindowsサーバの共有フォルダへプライベートIPでアクセスします。

アクセスすることができました。
次にローカルで作成したファイルを共有フォルダへアップロードします。

ファイルをアップロードできていることを確認するためにRDPでWindowsサーバにログインして確認します。

Windowsサーバの共有フォルダにファイルがあることが確認できました!

いかがでしたでしょうか?

ちょっと試してみようかな?と思った方は、最大3,500時間のトライアルもありますので、
下記URLからアクセスして、是非お試しください!

https://cloud.oracle.com/ja_JP/tryit?intcmp=ocom-cloud