NEC UNIVERGE IX2215とSoftEtherをEtherIPで拠点間接続してみた。

# はじめに

今までは自宅サーバにSoftEtherを入れて拠点間VPNを構築していたが、
IX2215のVPN機能を使って拠点間接続にチャレンジしてみた。
SoftEtherの公式ドキュメントだけで十分な情報量があって助かった。

参考サイト:
[NEC ルータ等からの EtherIP を用いた VPN 接続方法 - SoftEther VPN プロジェクト](https://ja.softether.org/4-docs/2-howto/Other_VPN_Appliance_Setup_Guide/7)

# SoftEther VPN Serverの設定

SoftEther VPN サーバー管理マネージャから設定を行う。

## EtherIP接続用ユーザの追加

- ユーザを追加したい仮想HUBを選択し、`仮想HUBの管理(A)`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/5d453bf5-d5de-008a-cf95-b9d3a596a8af.png)

- `ユーザーの管理(U)`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/434454df-a01f-df32-0cf7-00611c39a354.png)

- `新規作成(C)`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/c25ba9bf-c19b-de56-03f0-26137404fc6a.png)

- `ユーザー名`、`パスワード`を入力し、`OK`で閉じる。
（本名と説明はなくてもいいです）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/4f903608-93f3-c8a4-f000-ad722ad9a3da.png)

- 一覧に追加されていることを確認し、`ユーザーの管理`画面を閉じる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/94bdba88-864b-17b4-2d77-67462d3f431e.png)

## EtherIP/L2TP over IPsecサーバー機能の有効化

- `IPsec/L2TP設定`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/a2b7671e-8869-8db2-ef87-b3257256c874.png)

- `EtherIP / L2TPv3 over IPsec サーバー機能有効`のチェックを入れる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/eea2ee1c-334f-1daa-03bc-deee35ffbbf0.png)

- `サーバー機能の詳細設定(D)`を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/c7187566-20d0-f3a1-8565-078b9339a241.png)

- `追加`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/adb76a46-f0c2-1774-4ba6-314d8b5fa399.png)

- `ISAKMP Phase 1 ID`、`接続先の仮想HUB`、`仮想HUBのユーザー名`、`パスワード`にそれぞれ必要な事項を入力し`OK`で閉じる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/9c881964-fd5a-9e66-26e3-18b7f6a9c98d.png)

- 一覧に登録されたことを確認し、画面を閉じる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/853938fe-9c6b-c725-930e-6c7b46472d97.png)

以上でSoftEther側の設定は完了。

# NEC UNIVERGE IX2215の設定

CLIでゴリゴリ設定していく。思ったよりもやることいっぱい。

## 基本設定

UFSキャッシュの有効化とアクセスリストの定義を行う。

```
Router(config)# ip ufs-cache enable
Router(config)# ip access-list access-list permit ip src any dest any
Router(config)# 
```

## DHCPサーバの有効化

DHCPサーバを有効化しておく。この設定がないとiPhone等から
L2TP/IPsecで繋ごうとしてもIPを取得できずVPN接続に失敗する。

- DHCPサーバの有効化

```
Router(config)# ip dhcp enable
```

- DHCPプロファイルの登録

```
Router(config)# ip dhcp profile default
Router(config-default)# assignable-range 192.168.x.xxx 192.168.x.xxx
Router(config-dhcp-default)# subnet-mask 255.255.255.0
Router(config-dhcp-default)# default-gateway 192.168.x.x
Router(config-dhcp-default)# dns-server 192.168.x.x
Router(config-dhcp-default)# exit
Router(config)# 
```

## ブリッジインターフェースの作成

ブリッジインターフェースを作成し、`GigaEthernet2.0`の
IPアドレス設定をブリッジインターフェース側に移植する。
この設定を行わないとVPN側ネットワークからDHCPをはじめとした
IX2215の機能にアクセスできない。
また忘れずに先ほど定義したDHCPプロファイルをバインドしておく。

- IRB(Integrated Routing and Bridging)機能を有効化する。

```
Router(config)# bridge irb enable
```

- ブリッジインターフェースを定義する。

```
Router(config)# interface BVI1
Router(config-BVI1)# ip address 192.168.x.x/24
Router(config-BVI1)# ip dhcp binding default
Router(config-BVI1)# bridge-group 1
Router(config-BVI1)# no shutdown
Router(config-BVI1)# exit
Router(config)# 
```

- `GigaEthernet2.0`に設定したIPを削除し、ブリッジグループを設定

```
Router(config)# interface GigaEthernet2.0
Router(config-GigaEthernet2.0)# no ip address
Router(config-GigaEthernet2.0)# bridge-group 1
Router(config-GigaEthernet2.0)# exit
Router(config)# 
```
## キープアライブ監視の有効化

ルータから見える適当なローカルIPアドレスをキープアライブの
監視対象に設定し定期的にパケットを送信する。理由は以下の通り。
> - 「watch-group keepalive 10」など
IX2015 では、クライアント (ルータ) 側から何らかの通信パケットが発生しない限り、VPN Server に対する IPSec トンネルの接続処理を行いません。また、一定期間全く通信がない場合にも IPSec トンネルが自動的に切れてしまい、その後の再接続が行われません。これでは管理上支障が生じますので、BVI1 という仮想インターフェースを定義し、この仮想インターフェースも bridge-group に所属させた後、IP アドレスとして 192.168.0.123/24 を設定してこの IP アドレスから 5 秒間に 1 個、検査用の ICMP パケットを 192.168.0.1 に対して送信するように試みる設定を投入しています (watch-group)。ICMP パケットの送信先は 192.168.0.1 としていますが、これは LAN 内に存在するホスト (センター側に存在する何らかのホスト) であれば何でも構いませんし、存在しない IP であっても、その IP アドレスに対する ARP 解決クエリが送信され IPSec トンネルが活性化されますので、問題ありません。

```
Router(config)# watch-group keepalive 10
Router(config-watch-keepalive-10)# event 10 ip unreach-host 192.168.x.xx BVI1 source BVI1
Router(config-watch-keepalive-10)# exit
Router(config)# network-monitor keepalive enable
Router(config)#
```

## 暗号化通信・認証の設定

`SoftEther VPNのIPアドレス`と`事前共有鍵`、`ISAKMP Phase 1 ID`を
使って認証設定を行う。
そこらへんのパラメータ以外は公式ドキュメントのを丸写しでOK。

```
Router(config)# ike proposal ike-prop encryption aes hash sha group 1024-bit lifetime 3600
Router(config)# ike policy ike-policy peer <VPNサーバのIP> key <事前共有鍵> mode aggressive ike-prop
Router(config)# ike keepalive ike-policy 10 2
Router(config)# ike local-id ike-policy keyid <ISAKMP Phase 1 ID>
Router(config)# ike nat-traversal policy ike-policy keepalive 10
Router(config)# ipsec autokey-proposal ipsec-prop esp-aes esp-sha lifetime time 3600
Router(config)# ipsec autokey-map ipsec-map access-list peer <VPNサーバのIP> ipsec-prop
Router(config)# 
```

## トンネリングデバイスの追加

V6プラスに接続されている環境だとすでにMAP-E用に`Tunnel0.0`が
存在しているので、新規に`Tunnel1.0`として追加する。

```
Router(config)# interface Tunnel1.0
Router(config-Tunnel1.0)# tunnel mode ether-ip ipsec
Router(config-Tunnel1.0)# no ip address
Router(config-Tunnel1.0)# ipsec policy tunnel ipsec-map out
Router(config-Tunnel1.0)# bridge-group 1
Router(config-Tunnel1.0)# no shutdown
Router(config-Tunnel1.0)# exit
Router(config)#
```

## 確認

ここまで設定が完了した時点でVPN接続が開始されているはず。
WebUIにログインすると状況を確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/91da1764-2571-b19b-7a57-4d679861dfbd.png)

## 忘れずに。

そしてここまでの設定を忘れずに不揮発性メモリに保存しておく。

```
Router(config)# write memory
```