前回は、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と接続編