Oracle Cloud:YAMAHA NVR700wでOCIへIPsec VPN接続してみてみた

オンプレミスとOCIの接続が多いので、持ち運びに便利なYAMAHA NVR700wを購入しました。
小型ONU接続、YMO、VRRP、Floating Staticなどもやってみてみる
ということで、Oracle Cloud にIPsec VPN接続してみてみます。




# ■ 構成
<img width="769" alt="構成.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/3b762f10-c351-9360-a26a-a6b2dd13a323.png">

※ この構成は静的ルート設定になります。BGPの動的ルート接続は[YAMAHAルーターとOCIをBGPでIPSec VPN接続](https://qiita.com/shirok/items/199d624ff414b0441576) が参考になります。


# ■ On-Premises環境

|項目  |内容  |
|---|---|
|ルーター  |YAMAHA NVR700w  |
|Internet SIM  |イオンモバイル データプラン(TYPE2)  |
SIMカードは、Public IP(Global IP)が取得される、"イオンモバイル タイプ2"、"インターリンクLTE"等を使用します。

# ■ YAMAHA NVR700w Inernet接続
## ● SIM挿入
電源を切った状態でmini SIMサイズのSIMカードをNVR700wのSIMカードスロットに挿入
![IMG_5501のコピー.jpg](https://qiita-image-store.s3.amazonaws.com/0/109087/721447a3-8d24-6685-ff89-a5d999d0d1fb.jpeg)

## ● YAMAHA NVR700w 起動
パソコンと接続できるように配線して電源スイッチを入れます。


## ● Internet接続設定
①Webコンソールログイン
パソコンからhttp://192.168.100.1 へブラウザアクセスして、NVR700Wの設定画面を開きます。



②NVR700Wメイン画面
[かんたん設定]をクリック
![01.png](https://qiita-image-store.s3.amazonaws.com/0/109087/234b2fd4-9c5a-d7ac-34f0-ee32c0a63dff.png)


③かんたん設定画面
[プロバイダー接続]をクリック
![02.png](https://qiita-image-store.s3.amazonaws.com/0/109087/691b7d9c-0940-fb77-163d-6c7e6ffdda1c.png)


④プロバイダー接続画面
[新規]をクリック
![03.png](https://qiita-image-store.s3.amazonaws.com/0/109087/c8aa0785-edf9-eef5-0c25-880b1a723673.png)

⑤インターフェースの選択画面
[内蔵無線WAN」を選択して、[次へ]をクリック
![04.png](https://qiita-image-store.s3.amazonaws.com/0/109087/467ff9d4-5892-2ae5-1840-17cceea3038f.png)

⑥プロバイダー情報の設定画面
プロバイダーへの接続情報を入力して、「次へ」をクリック
![05.png](https://qiita-image-store.s3.amazonaws.com/0/109087/21d77cc3-8877-54cd-cf84-50bcf56b4766.png)


⑦DNSサーバーの設定画面
必要に応じてプロバイダー指定のDNSサーバーアドレスの設定をし、[次へ]をクリック
![06.png](https://qiita-image-store.s3.amazonaws.com/0/109087/e67dd40e-7a4b-8569-e8b0-4092d102a61a.png)



⑧フィルターの設定画面
ここでは環境に合わせて適切に入力し、[次へ]をクリック
![07.png](https://qiita-image-store.s3.amazonaws.com/0/109087/6b06d1c5-e687-d9f1-1421-3260dc3d07e2.png)


⑨設定内容の確認
設定した内容が問題ないことを確認し、[設定の確定]をクリック
![08.png](https://qiita-image-store.s3.amazonaws.com/0/109087/b3ea55fa-afd0-b9b1-e626-26f4d6f1f0c8.png)


⑩接続状態の確認
![10.png](https://qiita-image-store.s3.amazonaws.com/0/109087/139f972b-a41b-01e0-659a-488651bb9860.png)


## ● Internet接続確認
OCIコンソール（https://console.us-phoenix-1.oraclecloud.com/）
へ接続し、Internetへ接続できることを確認
<img width="879" alt="名称未設定.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/eff9b21a-9eec-d59a-6be0-96ac546c9948.png">


# ■ OCI IPsec VPN設定
① Customer-Premises Equipment (CPE)作成
OCI コンソールの Networking から Customer-Premises Equipment画面を選択し、
NVR700wのPublic IP address(200.200.200.201)を登録してCPEを作成
![01.png](https://qiita-image-store.s3.amazonaws.com/0/109087/db14df94-9e0c-2438-389c-07953008a22b.png)


④ DRGのIPSec Connections作成
作成したDRGに 自宅CIDR (192.168.100.0/16)を登録して作成
![01.png](https://qiita-image-store.s3.amazonaws.com/0/109087/2f9891d7-115f-5515-aa18-70e93204d560.png)


⑤ DRGのIPSec Connection 接続情報メモ
作成後 右端の ・・・(Actions icon) からTunnel InformationメニューをクリックしIPsec接続に必要なの「Public IP Adress」 と　「Shard Secret」をメモし、NTR700wへ設定します。
<img width="973" alt="99_IPsec疎通前3.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/51d394fa-2eec-99ce-3592-9a0c06550c15.png">


# ■ YAMAHA NVR700w IPsec VPN設定
## ● NVR700wへターミナル・ログイン
①NVR700wへtelnet or ssh接続

```shell-session
$ ssh admin@192.168.100.1
admin@192.168.100.1's password:

NVR700W Rev.15.00.15 (Fri Nov 10 16:17:57 2018)
Copyright (c) 1994-2018 Yamaha Corporation. All Rights Reserved.
To display the software copyright statement, use 'show copyright' command.
Memory 256Mbytes, 2LAN, 1ONU, 1WWAN
```

②administratorコマンドで管理者権限になり以下コマンドを実行して設定

```shell-session
> administrator
Password:
There are changed configuration unsaved in nonvolatile memory!
#
```

③文字コードを必要に応じて設定

```shell-session
# console character en.ascii
```

## ● NATの設定

```shell-session
ip loopback1 address 200.200.200.201
nat descriptor type 1000 masquerade
nat descriptor address outer 1000 200.200.200.201
nat descriptor masquerade static 1000 1 192.168.100.1 udp 500 
nat descriptor masquerade static 1000 2 192.168.100.1 esp
```

## ● VPN(IPsec)tunnel1設定

```shell-session
tunnel select 1
description tunnel OCI-VPN1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes256-cbc sha256-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 200.200.200.201 #NVR700w PublicIP
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 7RV1d5L6rTeey23axQn #OCI IPsec Tunnel2 pre-shared-key
ipsec ike remote address 1 100.100.100.101 #OCI IPsec Tunnel1 PublicIP
ipsec ike remote id 1 0.0.0.0/0
ip tunnel tcp mss limit auto
tunnel enable 1
```

## ● VPN(IPsec)tunnel2設定

```shell-session
tunnel select 2
description tunnel OCI-VPN2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes256-cbc sha256-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 200.200.200.201 #NVR700w PublicIP
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 AI5pqGaETJBJqmP68XiN #OCI IPsec Tunnel2 pre-shared-key
ipsec ike remote address 2 100.100.100.102  #OCI IPsec Tunnel2 PublicIP
ipsec ike remote id 2 0.0.0.0/0
ip tunnel tcp mss limit auto
tunnel enable 2
```

## ● VPN(IPsec)設定反映

```shell-session
ip route 10.0.0.0/16 gateway tunnel 1 hide gateway tunnel 2 hide
ipsec auto refresh on
```

IPsec の SA の状態が表示されることを確認

```shell-session
# show ipsec sa
	Total: isakmp:2 send:2 recv:2

	sa    sgw isakmp connection    dir  life[s] remote-id
	----------------------------------------------------------------------------
	1     1    -     isakmp        -    28450   100.100.100.101
	2     2    -     isakmp        -    28451   100.100.100.102
	3     1    1     tun[0001]esp  send 3252    100.100.100.1017
	4     1    1     tun[0001]esp  recv 3252    100.100.100.101
	5     2    2     tun[0002]esp  send 3253    100.100.100.102
	6     2    2     tun[0002]esp  recv 3253    100.100.100.102
```

## ● VPN(IPsec)設定保存

```shell-session
# console character ascii
# save
Saving ... CONFIG0 Done .
```

## ● YAMAHA NVR700w Status確認
NVR700wコンソール(http://192.168.100.1) で設定した２つのTunnelが通信中であることを確認
<img width="1197" alt="NVR700w-IPsec接続中画面.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/3f2efc3b-abeb-7a82-a853-e4f17d6b53f8.png">



## ● OCI Status確認
OCI Tunnel Information画面
 赤いDOWN state が 緑のUP state になっていることを確認
<img width="755" alt="99_IPsec疎通完了3.png" src="https://qiita-image-store.s3.amazonaws.com/0/109087/f689b33a-298b-aa8b-b378-3789b8ea39e0.png">


# ■ VPN接続テスト
自宅Windows PC(192.168.100.2) からOCI に作成した Compute Instance(10.0.0.2)との接続確認

## ● ping確認

```shell
onp-inst01:~ admin$ ping 10.0.0.2 -c 3
	PING 10.0.0.2 (10.0.0.2): 56 data bytes
	64 bytes from 10.0.0.2: icmp_seq=0 ttl=43 time=217.080 ms
	64 bytes from 10.0.0.2: icmp_seq=1 ttl=43 time=214.029 ms
	64 bytes from 10.0.0.2: icmp_seq=2 ttl=43 time=203.010 ms
	^C
	--- 10.0.0.2 ping statistics ---
	4 packets transmitted, 3 packets received, 25.0% packet loss
	round-trip min/avg/max/stddev = 203.010/211.373/217.080/6.043 ms
```


# ■ 参考
## ● ヤマハネットワーク製品 
[- Oracle Cloud Infrastructureの仮想ネットワーク(IPsec)を設定する](https://network.yamaha.com/setting/router_firewall/cloud/oracle_cloud/setup_cloud)
[- Oracle Cloud InfrastructureとVPN(IPsec)接続するルーターの設定 : コマンド設定](https://network.yamaha.com/setting/router_firewall/cloud/oracle_cloud/setup_rt)
## ● Oracle Cloud Infrastructureドキュメント
[OSite - to - Site VPN: ヤマハRTXシリーズ](https://docs.oracle.com/ja-jp/iaas/Content/Network/Reference/yamahartx.htm)