メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - IPsec設定編

前回は、VMware ESXiにデプロイしたYAMAHA vRXのWAN側およびLAN側にIPアドレスのアサインやsshログインの為のsshサーバ設定、時刻情報を外部のNTPサーバから取得する為の設定など初期設定を実施した後、トライアル用の基本ライセンスとオプションライセンス(VPNライセンス)を適用させ、YAMAHA vRXの試用の為の環境を構築した。
今回はYAMAHA vRXの拠点間通信の対向先としてYAMAHA RTX810を使用し、拠点間のVPN通信を確立させてみた。
YAMAHA vRXとRTX810にIPsec VPNの簡単な設定を投入し、自側と至側のYAMAHAルータにてステータス確認のコマンドの実行および自側から至側に対しpingで疎通確認を実施した。
尚、VMware ESXiのインストールやYAMAHA vRXのデプロイおよび初期設定に関しては、当記事の下部に有る「関連記事」を参照。


IPsec VPNとは
ネットワーク層レベルでパケットの暗号化や認証を行い、接続先の間で安全な通信を行うためのプロトコルである。接続先との間でIPsec VPNの接続が確立すると、仮想的に接続先と直結するような形となる。


当方の環境
ホスト機:macOS 13.5.2 / MacBook Pro 2020 / RAM: 16GB / CPU: Intel Core i5 2.0GHz
VMware Fusion 12.2.5
VMware ESXi 7.0U3n
ゲスト機:YAMAHA vRX 19.01.09


今回の構成
YAMAHA vRXの接続先としてYAMAHA RTX810をヤフオクで調達。OpenBSD(jpmtkrpsv99)とYAMAHA RTX810が居る拠点をユーザサイト、YAMAHA vRX(jpmtkvmrt99)とAlpine Linux(jpmtkvmsv99)が居る拠点をデータセンタとした。OpenBSDとAlpine Linuxは既にインストールやデプロイ、対向先との間の通信の設定等は既に完了した状態である。


自側(YAMAHA RTX810)の設定

1.トンネルの設定
管理者モードに移行しtunnel select [トンネル番号]コマンドを叩くと、トンネルの設定モードに移行する。
...しまった。ホスト名とtunnel1の文字列がくっついてプロンプトの表記が汚い感じになっている。前記事でホスト名を設定した際、ホスト名の後ろにアンダースコア(_)等あまり目立たないような文字を入れていたら、もう少し見栄えが良くなっていたかもしれない。

jpmtkigrt01# tunnel select 1
jpmtkigrt01tunnel1# ipsec tunnel 1
jpmtkigrt01tunnel1# tunnel enable 1


2.IPsecとIKEの設定
IKE設定は事前共有鍵と自側や至側のIPアドレスを指定。
IPsec設定は暗号化アルゴリズムを指定。今回のIPsec設定およびIKE設定はYAMAHAルータの事始めという事でIPsec VPN通信で必要な最低限の設定のみ投入している。
tunnel select noneコマンドを打つ事で、トンネルの設定モードから抜ける事が出来る。

jpmtkigrt01tunnel1# ipsec sa policy 1 1 esp 3des-cbc md5-hmac 
jpmtkigrt01tunnel1# ipsec ike local address 1 192.168.3.249 
jpmtkigrt01tunnel1# ipsec ike pre-shared-key 1 text yamaha
jpmtkigrt01tunnel1# ipsec ike remote address 1 192.168.3.250
jpmtkigrt01tunnel1# tunnel select none 
jpmtkigrt01# 


3.設定の反映とスタティックルートの追加
ipsec use onコマンドを打ちIPsecの利用を宣言、ipsec auto refresh onコマンドを打ち設定を定期的に反映させるよう設定。
最後に、対向先のLAN側のネットワークへの到達性を確保する為、スタティックルートを1本追加し、saveコマンドで設定内容を保存。

jpmtkigrt01# ipsec use on
jpmtkigrt01# ipsec auto refresh on 
jpmtkigrt01# ip route 192.168.10.0/24 gateway tunnel 1 
jpmtkigrt01#
jpmtkigrt01# save
Saving ... CONFIG0 Done .
jpmtkigrt01#


4.YAMAHA RTX810の設定内容
RTX810側の設定は完了。現段階でのRTX810のConfigの内容は以下のとおり。

jpmtkigrt01# show config 
# RTX810 Rev.11.01.34 (Tue Nov 26 18:39:12 2019)
# MAC Address : 00:a0:de:83:ab:77, 00:a0:de:83:ab:78
# Memory 128Mbytes, 2LAN
# main:  RTX810 ver=00 serial=S3K042126 MAC-Address=00:a0:de:83:ab:77 MAC-Address=00:a0:de:83:ab:78
# Reporting Date: Sep 24 12:18:41 2023
administrator password *
login user hoge *
console character ascii
console prompt jpmtkigrt01
ip route default gateway 192.168.3.1
ip route 192.168.10.0/24 gateway tunnel 1
ip lan1 address 192.168.20.1/24
ip lan2 address 192.168.3.249/24
ip lan2 nat descriptor 1
tunnel select 1
 ipsec tunnel 1
  ipsec sa policy 1 1 esp 3des-cbc md5-hmac
  ipsec ike local address 1 192.168.3.249
  ipsec ike pre-shared-key 1 text yamaha
  ipsec ike remote address 1 192.168.3.250
 tunnel enable 1
nat descriptor type 1 nat-masquerade
nat descriptor address outer 1 192.168.3.202-192.168.3.210
nat descriptor address inner 1 192.168.20.1-192.168.20.10
ipsec use on
ipsec auto refresh on
telnetd service off
telnetd host lan
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.20.2-192.168.20.191/24
sshd service on
sshd host key generate *
jpmtkigrt01# 

 
 
至側(YAMAHA vRX)の設定

1.トンネルの設定
RTX810と同様に、管理者モードに移行しtunnel select [トンネル番号]コマンドを叩くと、トンネルの設定モードに移行する。
トンネルの設定モードに移行すると、vRXもホスト名とtunnel1の文字列がくっついている。設定コマンドconsole prompt xxxxxxが言っているとおり、コンソール画面で設定対象機器を判別する為の設定なんだな。

jpmtkvmrt99# tunnel select 1
jpmtkvmrt99tunnel1# ipsec tunnel 1
jpmtkvmrt99tunnel1# tunnel enable 1


2.IPsecとIKEの設定
IKE設定は事前共有鍵と自側や至側のIPアドレスを指定。
IPsec設定は暗号化アルゴリズムを指定。
IKE設定とIPsec設定共に、コマンドはYAMAHA RTX810と同じである。

jpmtkvmrt99tunnel1# ipsec sa policy 1 1 esp 3des-cbc md5-hmac 
jpmtkvmrt99tunnel1# ipsec ike local address 1 192.168.3.250
jpmtkvmrt99tunnel1# ipsec ike pre-shared-key 1 text yamaha
jpmtkvmrt99tunnel1# ipsec ike remote address 1 192.168.3.249
jpmtkvmrt99tunnel1# tunnel select none 
jpmtkvmrt99# 


3.設定の反映とスタティックルートの追加
ipsec use onコマンドを打ちIPsecの利用を宣言、ipsec auto refresh onコマンドを打ち設定を定期的に反映させるよう設定。
最後に、対向先のLAN側のネットワークへの到達性を確保する為、スタティックルートを1本追加し、saveコマンドで設定内容を保存。
こちらもコマンドはYAMAHA RTX810と同じである。

jpmtkvmrt99# ipsec use on
jpmtkvmrt99# ipsec auto refresh on 
jpmtkvmrt99# ip route 192.168.20.0/24 gateway tunnel 1 
jpmtkvmrt99# 
jpmtkvmrt99# save
Saving ... CONFIG0 Done .
jpmtkigrt01#


4.YAMAHA vRXの設定内容
YAMAHA vRXの設定は完了。現段階でのConfigの内容は以下のとおり。

jpmtkvmrt99# show config 
# vRX Rev.19.01.09 (Mon Dec 13 20:58:00 2021) ** Compact Mode **
# MAC Address : 00:0c:29:96:d7:cc, 00:0c:29:96:d7:d6
# Memory 3778Mbytes, 4LAN
# main:  vRX MAC-Address=00:0c:29:96:d7:cc MAC-Address=00:0c:29:96:d7:d6
# Reporting Date: Sep 24 12:38:28 2023
administrator password encrypted *
login user hoge *
console prompt jpmtkvmrt99
vrx user jpmtkvmrt99 *
ip route default gateway 192.168.3.1
ip route 192.168.20.0/24 gateway tunnel 1
ip lan1 address 192.168.10.1/24
ip lan2 address 192.168.3.250/24
ip lan2 nat descriptor 1
tunnel select 1
 ipsec tunnel 1
  ipsec sa policy 1 1 esp 3des-cbc md5-hmac
  ipsec ike local address 1 192.168.3.250
  ipsec ike pre-shared-key 1 text yamaha
  ipsec ike remote address 1 192.168.3.249
 tunnel enable 1
nat descriptor type 1 nat-masquerade
nat descriptor address outer 1000 192.168.3.102-192.168.3.110
nat descriptor address inner 1000 192.168.10.2-192.168.10.10
ipsec use on
ipsec auto refresh on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.10.2-192.168.10.10/24
dns server 8.8.8.8
sshd service on
sshd host key generate *
jpmtkvmrt99# 

 
 
設定後の動作確認
まずは自側(YAMAHA RTX810)にてshow ipsec saコマンドを叩き、IPsecのトンネルが張れている事を確認。
1行目のISAKMP SA(鍵交換用のSA)、2行目のIPsec SA send(データ送信のSA)、3行目のIPsec SA recv(データ受信のSA)が出力されている事から、IPsecでVPN接続が張れている事が分かる。

jpmtkigrt01# show ipsec sa 
Total: isakmp:3 send:2 recv:2

sa   sgw isakmp connection   dir  life[s] remote-id
-----------------------------------------------------------------------------
1     1    -    isakmp       -    25762   192.168.3.250
4     1    1    tun[001]esp  send 25764   192.168.3.250
5     1    1    tun[001]esp  recv 25764   192.168.3.250
6     1    -    isakmp       -    25764   192.168.3.250
7     1    -    isakmp       -    26118   192.168.3.250
8     1    7    tun[001]esp  send 26119   192.168.3.250
9     1    7    tun[001]esp  recv 26119   192.168.3.250

jpmtkigrt01# 

 
更に以下のコマンドを叩く事で、SAの中身を確認する事が出来る。
プロトコルとアルゴリズムと鍵(読めない状態で出力)が表示されている事が分かる。

jpmtkigrt01# show ipsec sa gateway 1 detail 
SA[1] Duration: 26424s
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Protocol: IKE
Algorithm: 3DES-CBC, SHA-1, MODP 1024bit
SPI: a4 86 ae 35 3b 8d ed f8 d4 c8 1e 4f 03 fa d3 30 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[4] Duration: 26426s
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Direction: send
Protocol: ESP (Mode: tunnel)
Algorithm: 3DES-CBC (for Auth.: HMAC-MD5)
SPI: fc 30 95 ca 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[5] Duration: 26426s
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: 3DES-CBC (for Auth.: HMAC-MD5)
SPI: e9 a2 09 dd 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[6] Duration: 26426s
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Protocol: IKE
Algorithm: 3DES-CBC, SHA-1, MODP 1024bit
SPI: 96 33 35 b7 be 28 4d 81 ee 4b cb f9 e3 c4 02 7d 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[7] Duration: 26780s
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Protocol: IKE
Algorithm: 3DES-CBC, SHA-1, MODP 1024bit
SPI: 53 0f a4 0e c1 2e 72 5d 72 61 ea 79 20 56 da 63 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[8] Duration: 26781s 2000000kbyte
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Direction: send
Protocol: ESP (Mode: tunnel)
Algorithm: 3DES-CBC (for Auth.: HMAC-MD5)
SPI: 71 f9 a1 59 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[9] Duration: 26781s 2000000kbyte
Local ID: 192.168.3.249
Remote ID: 192.168.3.250
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: 3DES-CBC (for Auth.: HMAC-MD5)
SPI: 01 57 4e 9e 
Key: ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------

jpmtkigrt01#

 
続けて、至側(YAMAHA vRX)もshow ipsec saコマンドを叩き、IPsecのトンネルが張れている事を確認。
自側と同様に、1行目のISAKMP SA(鍵交換用のSA)、2行目のIPsec SA send(データ送信のSA)、3行目のIPsec SA recv(データ受信のSA)が出力されている事から、IPsecでVPN接続が張れている事が分かる。

jpmtkvmrt99# show ipsec sa 
Total: isakmp:1 send:1 recv:1

sa    sgw isakmp connection    dir  life[s] remote-id
----------------------------------------------------------------------------
1     1    -     isakmp        -    26046   192.168.3.249
2     1    1     tun[0001]esp  send 26048   192.168.3.249
3     1    1     tun[0001]esp  recv 26048   192.168.3.249

jpmtkvmrt99# 

 
至側でも以下のコマンドを叩き、SAの中身を確認。
こちらもプロトコルとアルゴリズムと鍵(読めない状態で出力)が表示されている事が分かる。

jpmtkvmrt99# show ipsec sa gateway 1 detail 
SA[1] 寿命: 26001秒
自分側の識別子: 192.168.3.250
相手側の識別子: 192.168.3.249
プロトコル: IKE
アルゴリズム: 3DES-CBC, SHA-1, MODP 1024bit
SPI: 53 0f a4 0e c1 2e 72 5d 72 61 ea 79 20 56 da 63 
鍵 : ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[2] 寿命: 26003秒 2000000キロバイト
自分側の識別子: 192.168.3.250
相手側の識別子: 192.168.3.249
送受信方向: 送信
プロトコル: ESP (モード: tunnel)
アルゴリズム: 3DES-CBC (認証: HMAC-MD5)
SPI: 01 57 4e 9e 
鍵 : ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------
SA[3] 寿命: 26003秒 2000000キロバイト
自分側の識別子: 192.168.3.250
相手側の識別子: 192.168.3.249
送受信方向: 受信
プロトコル: ESP (モード: tunnel)
アルゴリズム: 3DES-CBC (認証: HMAC-MD5)
SPI: 71 f9 a1 59 
鍵 : ** ** ** ** **  (confidential)   ** ** ** ** **
----------------------------------------------------


jpmtkvmrt99# 

 
自側のサーバから至側のサーバまでpingを飛ばす前に、至側のサーバのIPアドレスを確認する。
至側のサーバのIPアドレスは自側から見てNATで変換されたIPアドレスである為、至側のルータ(YAMAHA vRX)にてNATでアサインされたIPアドレスを確認する。
show nat descripter addressコマンドを至側のルータで打つと、至側のサーバのIPアドレス192.168.10.2に対し、192.168.3.103がアサインされている事が分かる。

jpmtkvmrt99# show nat descriptor address 
NAT/IPマスカレード 動作タイプ : 2
参照NATディスクリプタ : 1, 適用インタフェース : LAN2(1)
 外側アドレス(Outer) 内側アドレス(Inner)         TTL(秒)
       192.168.3.103        192.168.10.2             860
       192.168.3.104                auto               -
       192.168.3.105                auto               -
       192.168.3.106                auto               -
       192.168.3.107                auto               -
       192.168.3.108                auto               -
       192.168.3.109                auto               -
       192.168.3.110                auto               -
Masqueradeテーブル
    外側アドレス: 192.168.3.102
    ポート範囲: 60000-64095, 49152-59999, 44096-49151
---------------------
有効なNATディスクリプタテーブルが1個ありました
jpmtkvmrt99#

 
至側のサーバのIPアドレスが分かったところで、自側のサーバから至側のサーバまでpingを飛ばす。
遅延値が少々大きめな事が気になるものの、100%リプライ有り。

[hoge@jpmtkrpsv99 ~]$ ping -c 5 192.168.3.103
PING 192.168.3.103 (192.168.3.103): 56 data bytes
64 bytes from 192.168.3.103: seq=0 ttl=42 time=20.283ms
64 bytes from 192.168.3.103: seq=1 ttl=42 time=113.120ms
64 bytes from 192.168.3.103: seq=2 ttl=42 time=34.155ms
64 bytes from 192.168.3.103: seq=3 ttl=42 time=57.052ms
64 bytes from 192.168.3.103: seq=4 ttl=42 time=80.211ms

--- 192.168.10.2 ping statistics ---
5b packets transmitted, 5 packets received, 0% paclet loss
round-trip min/avg/max = 20.283/60.964/113.120 ms
[hoge@jpmtkvmsv99 ~]$

 
 
今回はここまで。
自側拠点としてOpenBSDとYAMAHA RTX810のネットワークと、至側拠点としてAlpine LinuxとYAMAHA vRXのネットワークを構築し、拠点間をIPsec VPNの基礎的な設定を投入しIPsec VPNの通信を確立する事が出来た。
次回以降は、IPsecやIKE等のもう少し細かな設定やL3ルーティング等、少しづつ実環境に近付ける形で設定内容を増やしていきたい。また、VyOSやCisco CSR1000v等といった他ベンダのソフトウェアルータとの間でIPsec VPNを張ってみたい。
 
 
参照サイト
https://network.yamaha.com/products/software_service/vrx/index 仮想ルーターvRX
http://www.rtpro.yamaha.co.jp/RT/manual/vrx/userguide/ja/esxi_ja/index.html YAMAHA vRXユーザーガイド
https://changineer.info/network/yamaha_router_rtx/yamaha_router_rtx_ipsec_global.html Yamaha RTX ルータのIPsec設定 両拠点 固定IPアドレスCLI編


関連記事
https://debslink.hatenadiary.jp/entry/20230917/1694956800 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - 導入編①
https://debslink.hatenadiary.jp/entry/20230918/1694996291 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - 導入編②
https://debslink.hatenadiary.jp/entry/20230919/1695121663 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - 初期設定編
https://debslink.hatenadiary.jp/entry/20231001/1696165559 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - IPIP設定編
https://debslink.hatenadiary.jp/entry/20231112/1699763296 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - VyOSと接続編