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

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

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

前回は、YAMAHA vRXをデータセンタのWANルータ(至側)、中古で購入したYAMAHA RTX810をユーザサイト側のWANルータ(自側)としてIPsec VPNの簡単な設定を投入し、拠点間のVPN通信を確立させた。
今回もYAMAHA vRXの拠点間通信の対向先としてYAMAHA RTX810を使用し、IPIPトンネリングを利用した拠点間のVPN通信を確立させてみた。
YAMAHA vRXとRTX810にIPIPの簡単な設定を投入し、自側と至側のYAMAHAルータにてステータス確認のコマンドの実行および自側から至側に対しpingで疎通確認を実施した。
尚、VMware ESXiのインストールやYAMAHA vRXのデプロイおよび初期設定に関しては、当記事の下部に有る「関連記事」を参照。


IPIPトンネリングとは
IPIPトンネリング(IP over IP)とは、IPパケットにIPヘッダを付与しカプセル化することで自側と至側との間のネットワークでVPN接続を実現するトンネリングプロトコル。IPIPには認証や暗号化の仕組みは無い為、閉域網サービスなど安全な通信が提供されている環境にて導入される。


当方の環境
ホスト機: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は既にインストールやデプロイ、対向先との間の通信の設定等は既に完了した状態である。尚、前回設定したVPN設定は使い回しせず今回も初期設定の完了直後の状態から開始する。

自側(YAMAHA RTX810)の現段階での設定は以下のとおり。

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-Addre
ss=00:a0:de:83:ab:78
# Reporting Date: Oct 1 15:13:10 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
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.2-192.168.20.10
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.20.2-192.168.20.10/24
dns server 8.8.8.8
telnetd service off
telnetd host lan
sshd service on
sshd host key generate *
jpmtkigrt01# 

至側(YAMAHA vRX)の現段階での設定は以下のとおり。

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: Oct 1 15:49:15 2023
login user hoge *
console prompt jpmtkvmrt99
vrx user jpmtkvmrt99 *
ip route default gateway 192.168.3.1
ip lan1 address 192.168.10.1/24
ip lan2 address 192.168.3.250/24
ip lan2 nat descriptor 1
nat descriptor type 1 nat-masquerade
nat descriptor address outer 1 192.168.3.102-192.168.3.110
nat descriptor address inner 1 192.168.10.2-192.168.10.10
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)の設定

1.IPIPとトンネルの設定
管理者モードに移行し、tunnel select [トンネル番号]コマンドを叩くとトンネルの設定モードに移行する。
カプセル化の設定にてIPIPを設定し、自側ルータから見て始点のIPアドレスと終点のIPアドレスを入力。
最後にtunnel enable 1で当設定内容を有効にする。

jpmtkigrt01> administrator 
Password: 
jpmtkigrt01#
jpmtkigrt01# tunnel select 1
jpmtkigrt01tunnel1# tunnel encapsulation ipip
jpmtkigrt01tunnel1# tunnel endpoint address 192.168.20.1 192.168.3.250 
jpmtkigrt01tunnel1# tunnel enable 1
jpmtkigrt01tunnel1# tunnel select none
jpmtkigrt01# 


2.NAT設定の修正
前回設定したNATタイプはnat-masqueradeで可能な限り1対1で別途指定したIPアドレスを変換するという内容だったが、今回はNATで変換されるIPアドレスとしてLAN2インターフェースのアドレスを使用する設定に変更。

jpmtkigrt01# no nat descriptor type 1 nat-masquerade
jpmtkigrt01# no nat descriptor address outer 1 192.168.3.202-192.168.3.210
jpmtkigrt01# no nat descriptor address inner 1 192.168.20.2-192.168.20.10
jpmtkigrt01# nat descriptor type 1 masquerade
jpmtkigrt01# nat descriptor address outer 1 primary
jpmtkigrt01# nat descriptor address inner 1 192.168.20.1-192.168.20.10
jpmtkigrt01#

 
3.フィルタの設定
VPNやIPIP等を設定する際に必ずフィルタを設定しなければならないという訳では無いのだが、今回はついでに設定してみた。
YAMAHAのルータで設定するフィルタリング設定(ファイアウォール設定)の構文は、以下のとおり。

ip filter <フィルタ番号> <処理> <送信元IPアドレス> <宛先IPアドレス> <プロトコル> <送信元ポート番号> <宛先ポート番号>

処理は以下から選択が可能である。
・pass:一致すれば通す(ログに記録しない)
・pass-log:一致すれば通す(ログに記録する)
・pass-nolog:一致すれば通す(ログに記録しない)
・reject:一致すれば破棄する(ログに記録する)
・reject-log:一致すれば破棄する(ログに記録する)
・reject-nolog:一致すれば破棄する(ログに記録しない)
・restrict:回線が接続されていれば通し、切断されていれば破棄する(破棄する場合ログに記録する)
・restrict-log:回線が接続されていれば通し、切断されていれば破棄する(ログに記録する)
・restrict-nolog:回線が接続されていれば通し、切断されていれば破棄する(ログに記録しない)
また、filterとフィルタ番号との間に「dynamic」を入れると、戻り方向の通信を許可する設定となる。

今回の要件に基づいて設定を投入した場合、挙動は以下のとおりとなる。
・ポート番号22のTCPの通信を許可する
・任意の宛先へのネットワークへのicmpを許可
・宛先192.168.20.0/24のネットワークへの通信において、LAN側からWAN側への通信は許可するがWAN側からLAN側への通信は許可しない
・宛先192.168.20.0/24のネットワークへのTCP通信にてメール転送等の認証の通信を許可
・宛先192.168.20.0/24のネットワークへのFTP通信(アクティブ転送)を許可
・宛先192.168.20.0/24のネットワークへのDNSサーバへの問い合わせ(戻り通信)を許可
・source-routeオプション付きIPパケットをルーティングしない
・Directed Broadcast宛のIPパケットをルーティングしない
一番最後の行は、インターフェースLAN2に対しフィルタをアサインする設定となる。

jpmtkigrt01# ip filter 10 pass * * tcp * 22
jpmtkigrt01# ip filter 11 pass * * icmp *
jpmtkigrt01# ip filter 12 pass * 192.168.20.0/24 established * *
jpmtkigrt01# ip filter 13 pass * 192.168.20.0/24 tcp * ident
jpmtkigrt01# ip filter 14 pass * 192.168.20.0/24 tcp ftpdata * 
jpmtkigrt01# ip filter 15 pass * 192.168.20.0/24 udp domain * 
jpmtkigrt01# ip filter 16 pass * 192.168.20.1 4 
jpmtkigrt01# ip filter source-route on
jpmtkigrt01# ip filter directed-broadcast on 
jpmtkigrt01# ip lan2 secure filter in 10 11 12 13 14 15 16 
jpmtkigrt01# 


4.設定後のConfig
ここまで設定を終えたところで、自側(YAMAHA 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-Addre
ss=00:a0:de:83:ab:78
# Reporting Date: Oct 1 17:35:20 2023
administrator password *
login user hoge *
timezone +09:00
console character ascii
console prompt jpmtkigrt01
ip route 192.168.10.0/24 gateway tunnel 1
ip filter source-route on
ip filter directed-broadcast on
ip lan1 address 192.168.20.1/24
lan type lan2 1000-fdx
ip lan2 address 192.168.3.249/24
ip lan2 secure filter in 10 11 12 13 14 15 16
ip lan2 nat descriptor 1
tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint address 192.168.20.1 192.168.3.250
 tunnel enable 1
ip filter 10 pass * * tcp * 22
ip filter 11 pass * * icmp *
ip filter 12 pass * 192.168.20.0/24 established * *
ip filter 13 pass * 192.168.20.0/24 tcp * ident
ip filter 14 pass * 192.168.20.0/24 tcp ftpdata *
ip filter 15 pass * 192.168.20.0/24 udp domain *
ip filter 16 pass * 192.168.20.1 4
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
nat descriptor address inner 1 192.168.20.1-192.168.20.10
nat descriptor masquerade static 1 1 192.168.20.1 4
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
dns server 8.8.8.8
sshd service on
sshd host key generate *
sntpd service on
jpmtkigrt01#


 
至側(YAMAHA vRX)の設定

1.IPIPとトンネルの設定
RTX810と同様に、管理者モードに移行しtunnel select [トンネル番号]コマンドを叩くと、トンネルの設定モードに移行する。
トンネルの設定モードに移行後、自側と同じくIPIPでカプセル化、トンネルの起点と終点を設定し、最後にtunnel enable 1で当設定内容を有効にする。

jpmtkvmrt99> administrator 
Password: 
jpmtkvmrt99# 
jpmtkvmrt99# tunnel select 1
jpmtkvmrt99tunnel1# tunnel encapsulation ipip
jpmtkvmrt99tunnel1# tunnel endpoint local address 192.168.10.1 
jpmtkvmrt99tunnel1# tunnel endpoint remote address 192.168.3.249
jpmtkvmrt99tunnel1# tunnel enable 1 
jpmtkvmrt99tunnel1# tunnel select none
jpmtkvmrt99# 


2.NAT設定の修正
自側のルータと同様に、前回設定したNATタイプはnat-masqueradeで可能な限り1対1で別途指定したIPアドレスを変換するという内容だったが、今回はNATで変換されるIPアドレスとしてLAN2インターフェースのアドレスを使用する設定(nat descriptor address outer 1 primaryコマンドのprimaryが該当)、それに対するアドレス(nat descripter masqerade static 1 1 192.168.10.2 4)を設定する。

jpmtkvmrt99# no nat descriptor type 1 nat-masquerade
jpmtkvmrt99# no nat descriptor address outer 1 192.168.3.102-192.168.3.110
jpmtkvmrt99# nat descriptor type 1 masquerade
jpmtkvmrt99# nat descriptor address outer 1 primary
jpmtkvmrt99# nat descripter masqerade static 1 1 192.168.10.2 4


3.フィルタの設定
自側と同様に以下の設定を投入。
・ポート番号22のTCPの通信を許可する
・ICMPの通信を許可する
一番最後の行は、インターフェースLAN2に対しフィルタをアサインする設定となる。

jpmtkvmrt99# ip filter 10 pass * * tcp * 22
jpmtkvmrt99# ip filter 11 pass * * icmp *
jpmtkvmrt99# ip lan2 secure filter in 10 11
jpmtkvmrt99# 


4.設定後のConfig
ここまで設定を終えたところで、至側(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: Oct 1 20:37:31 2023
administrator password encrypted *
login user hoge *
console prompt jpmtkvmrt99
vrx user jpmtkvmrt99 *
ip route default gateway 192.168.3.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
 tunnel encapsulation ipip
 tunnel endpoint local address 192.168.10.1
 tunnel endpoint remote address 192.168.3.249
 tunnel enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
nat descriptor address inner 1 192.168.10.2-192.168.10.10
nat descripter masqerade static 1 1 192.168.10.2 4
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# 


設定後の動作確認

まずは、IPIPトンネルのカウントを上げる為に自側のサーバから至側のサーバまでpingを飛ばす。
100%リプライ有り。

[hoge@jpmtkrpsv99 ~]$ ping -c 5 192.168.10.2
PING 192.168.10.2 (192.168.10.2): 56 data bytes
64 bytes from 192.168.10.2: seq=0 ttl=42 time=39.136ms
64 bytes from 192.168.10.2: seq=1 ttl=42 time=13.660ms
64 bytes from 192.168.10.2: seq=2 ttl=42 time=12.579ms
64 bytes from 192.168.10.2: seq=3 ttl=42 time=13.305ms
64 bytes from 192.168.10.2: seq=4 ttl=42 time=13.856ms

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

 
前回の記事と同様に、IPアドレスのNAT変換を確認する為に至側のルータ(YAMAHA vRX)にてshow nat descripter addressコマンドを打つ。
Outer Addressに192.168.3.250、Inner欄に192.168.10.2が出力されており、至側のサーバのIPアドレス192.168.10.2が192.168.3.250に変換される事を示す。
尚、YAHAMA vRXのコマンドはsshログインではなくESXiの仮想マシン上で実行している為、日本語の表示になっていない。

jpmtkvmrt99# show nat descriptor address 
NAT/IP masquerade compatibility type : 2
Reference Descriptor : 1, Assigned Interface : LAN2(1)
Masquerade Table
    Outer address: 192.168.3.250
    Port range:  60000-64095, 49152-59999, 44096-49151
 Protocol              Inner         Destination    Masquerade       Type
    [4]       192.168.10.2.*           *.*.*.*.*             *       static
---------------------
NAT Descripter table is 1
jpmtkvmrt99#

  
続けてshow status tunnel 1コマンドを叩き、IPIPのトンネルが張れている事を確認。
Interface typeがIP over IPになっている事、Current StatusがOnLineになっている事が分かる。
また、ReceivedとTransmittedのIPv4の項目にてパケットをカウントしている事から、設定したIPIPトンネルを通過している事が分かる。

jpmtkigrt01> show status tunnel 1
TUNNEL[1]: 
Description: 
  Interface type: IP over IP
  Current status is Online.
  from 2023/10/01 17:03:09.
  26 minutes 46 seconds  connection.
  Received:    (IPv4) 5 packet [420 octet]
               (IPv6) 0 packet [0 octet]
  Transmitted: (IPv4) 5 packets [420 octets]
               (IPv6) 0 packet [0 octet]
jpmtkigrt01> 

 
次に、至側(YAMAHA vRX)にてshow status tunnel 1コマンドを叩き、IPIPのトンネルが張れている事を確認。
インタフェースの種類はIP over IP(IPIP)、「Current status is Online.」になっている。

jpmtkvmrt99> show status tunnel 1
TUNNEL[1]: 
Description: 
  Interface type: IP over IP
  Current status is Online.
  from 2023/10/01 17:04:02.
  30 minutes 26 seconds  connection.
  Received:    (IPv4) 5 packet [420 octet]
               (IPv6) 0 packet [0 octet]
  Transmitted: (IPv4) 5 packets [420 octets]
               (IPv6) 0 packet [0 octet]
jpmtkvmrt99> 

 
続けて、YAMAHA RTX810には無いコマンド、show status ipipコマンドを叩き、現在確立しているIPIPの情報を確認。IPIPトンネル数やトンネルインターフェースの接続状況などが確認出来る。

jpmtkvmrt99> show status ipip 
------------------- IPIP INFORMATION -------------------
Number of IPIP tunnels: 1
TUNNEL[1]: 
  Current status is Online
  from: 2023/10/01 17:04:02
  30 minutes 35 seconds  connection.
  Received:    (IPv4) 5 packet [420 octet]
               (IPv6) 0 packet [0 octet]
  Transmitted: (IPv4) 5 packets [420 octets]
               (IPv6) 0 packet [0 octet]
  Local endpoint address: 192.168.10.1
  Remote endpoint address: 192.168.3.249
jpmtkvmrt99> 


今回はここまで。
自側拠点としてOpenBSDとYAMAHA RTX810のネットワークと、至側拠点としてAlpine LinuxとYAMAHA vRXのネットワークを構築し、拠点間をIPIPトンネリングの基礎的な設定を投入しIPIP VPNの通信を確立する事が出来た。
IPsecやIKE等のもう少し細かな設定を行いたいものの当方の環境では難しい事が分かったが、L3ルーティングは再現可能と思われる為、VyOSやCisco CSR1000v等といった他ベンダのソフトウェアルータとの間でL3ルーティングの設定や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ユーザーガイド
http://www.rtpro.yamaha.co.jp/RT/docs/ipip/index.html IPIP設定例


関連記事
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/20230924/1695541618 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - IPsec設定編
https://debslink.hatenadiary.jp/entry/20231112/1699763296 YAMAHAの仮想ルータ vRX for VMware ESXiを試用する - VyOSと接続編