GL.iNet GL-MV1000 で SoftEther VPN Bridge を立ち上げる (TAPなし)

これは、TAPデバイスを使わない「GL.iNet GL-AXT1800 で SoftEther VPN Server を立ち上げる(TAPなし)」の続きである。

GL.iNet GL-MV1000 (Brume) を SoftEther VPN Bridgeとし、 SoftEther VPN Server にカスケード接続をして、2拠点間の Layer 2 Bridge (L2 Bridge)を構築した。備忘録として記録しておく。

環境

GL.iNet GL-AXT1800 で SoftEther VPN Server を立ち上げる(TAPなし)」に書いたことと同じであるが、以下のような構成でテスト環境を構築した。GL-AXT1800のEthernetポートでLAN2と印刷されているポート(3つあるポートの中央)と、GL-MV1000 の3つあるEthernetポートの中央のポートで L2 Bridge を構築する。GL-AXT1800で SoftEther VPN server を動作させ、GL-MV1000で SoftEther VPN bridge を動作させる。SoftEther VPN bridge から SoftEther VPN server にカスケード接続する。IPv4 のポート 443 で接続する。

この記事では、GL-MV1000での SoftEther VPN Bridge の設定を記録する。

デバイスのEthernetポートと内部デバイスの関係

GL-MV1000 (Brume)

印刷表示 内部デバイス名 使用法
地球(?)マーク wan 外部ネットワーク
<…> lan0 SoftEtherの仮想HUBにブリッジ
<…> 端のポート lan1 内部ネットワーク(コンソール)

Dynamic DNS

Dynamic DNSとして、「GL.iNet GL-MV1000 の Dynamic DNS で DuckDNS.org を使う」の記事の設定がしてあるとする。

バージョン

GL.iNet GL-MV1000 のファームウェアのバージョンは、3.212 であった。

内部的には、以下のバージョンを利用している。

  • OpenWrt 19.07.8 r11364-ef56c85848
  • LuCI openwrt-19.07 branch (git-21.189.23240-7b931da)

以下では、OpenWrt の LuCI および PuTTY で ssh を利用して設定する。

SoftEther VPN Bridge の設定

Webサーバーが ポート443 を使わないようにする

GL.iNet GL-MV1000 では、Admin Panel などのために  Web Server の lighttpd が使用され、HTTPS のためにポート 443 を listen している。

PuTTY などの SSH でログインし、 netstat -apn | grep 443 を実行すると次のようになり、nginx が ポート 443 を listen していることがわかる。

そこで、SoftEther VPN でポート 443 を利用するので、lighttpd でポート 443 を利用しないようにする。/etc/lighttpd/conf.d/30-openssl.conf の拡張子を変えて、読み込まれないようにする。

設定ができたら、 GL-MV1000を reboot してから SSH で netstat -apn | grep 443 を実行して、ポート 443 が listen されていないことを確認する。

SoftEther VPN Bridge のインストール

OpenWrt の LuCI の System / Software で softethervpn5 でフィルターして表示し、softethervpn5-bridge をインストールする。使用した softethervpn5-bridge のバージョンは、5.01.9674-1 であった。

 

インストールしてSoftEther VPN Bridge が起動されたら、SSH で netstat -apn | grep 443 を実行して、ポート 443 が vpnbridge によって listen されていることを確認する。

SoftEther VPN Server Manager による設定

SSH で接続後に vpncmd コマンドを利用して設定することもできるが、ここでは、Windows の SoftEther VPN サーバー管理マネージャを使って設定する。

SoftEther VPN サーバー管理マネージャの初期設定

初めて SoftEther VPN Bridge に接続したときは、パスワードを入れずにOKボタンを押し、パスワードを設定する。

仮想HUBへのカスケード接続

SoftEther VPN Server / Bridge 簡易セットアップでは、拠点間接続VPNサーバーまたはブリッジで、各拠点に設置するVPN Bridge の設定を行うために、[次へ]をクリックする。

接続先のVPN Serverへの接続設定

「2. 接続先のVPN Serverへの接続設定」の[接続先のVPN Serverへの接続設定を行う]ボタンをクリックして設定を行う。

新しい接続設定のプロパティのパネルで、接続設定名を指定する。ここでは ivy1 としている。

また、SoftEther VPN Server のホスト名を入力し、そこで作成した仮想 HUB 名を選択する。ここでは、ホスト名を XXXXXX-ivy1.duckdns.org、仮想HUB名は IVY-BRIDGEとしている。

さらに、SoftEther VPN Server で作成しておいたユーザ名とパスワードを[ユーザ認証]に入力する。必要な情報の入力が終わったら[OK]ボタンをクリックすることで、BRIDGE上のカスケード接続にその接続設定が表示されるはず。

サーバーの設定が済んでいて、うまくカスケード接続ができれば、[状態]がこの例のように、「オンライン(接続済み)」になるはず。

簡易セットアップの[接続先のVPN Serverへの接続設定を行う]が終わったら、次はローカルブリッジの設定をする。

ローカルブリッジの設定

「3. ローカルブリッジの設定」で、Ethernetデバイス(LANカード)として、ここでは Ethernet ポートの lan0 を選択する。

簡易セットアップの[閉じる]ボタンをクリックすると次のパネルが表示された。

ブリッジの確認

ここで、ローカルブリッジが考えていた通りに作られていることを確認する。仮想HUBとしてあらかじめ作成されている BRIDGE を選択し、[ローカルブリッジの設定]ボタンをクリックする。

仮想HUBのブリッジ先が この例では lan0 になっていることを確認する。

OpenWrt での設定

OpenWrt での SoftEther VPN Bridge の設定保存

SoftEther VPN Server Manager による設定は、サーバーを停止させないとファイルに反映されないらしい(Softether+GL iNet GL-AR750で拠点側VPNルータを作る)。LuCI の System / Startup の Initscripts タブの softethervpnbridge をまずStopさせる。その後、GL-MV1000を reboot する。

OpenWrt でのインタフェース LAN の設定

OpenWrt で、ブリッジデバイスとして働いている LAN の設定をする。Ethernetポート lan0 が LAN と L2VPNの両者に含まれないように、LANから外す。

Network / Interfaces の Interfaces タブの LAN の[Configure]ボタンを押し、Physical Settings タブの Interface から lan0 を外す。この例では、lan1 と usb0 がLANに含まれるようにしている。

OpenWrt でのインタフェース L2VPN の作成

OpenWrt で、インタフェース L2VPN を作成する。

Network / Interface の Interfaces タブで[Add new interface…]ボタンを押し、Name に L2VPN、Protocol に Unmanaged 、Device に lan0 を選択する。

[Create interface]ボタンを押して、インタフェース L2VPN を作成する。

[Protocol]には Unmanaged を選択し、Bridge interfaces にチェックを入れ、Interface には Ethernet ポート lan 0 を選択する。

[Physical Settings] で設定する場合には、Bridge Interfaces にチェックを入れて、Interface に Ethernet ポート lan 0 を設定する。

他のタブの設定は以下の通りであった。

設定を保存して、Network / Interfaces のページに戻って L2VPN (br-L2VPN) ができていることを確認する。

ちなみに、通信が行われると RX の値は大きくなるが、TXの値は0のままであるようだ。

[Save & Apply]ボタンを押して設定を反映させる。

OpenWrt での Firewall の設定

WANからの Port 443 の通信を許可するルールを作成する。ここでは Allow-Port-443 という名前のルールとする。

LuCI の Network / Firewall の Traffic Rules タブで、「Add」ボタンを押し、Name を Allow-Port-443、Source zone が wan、Destination zone が Device (input)、Destination Port が 443、Action が accept のルールを作成する。

「Save & Apply」ボタンを押して設定を反映させる。

動作確認

これまでの設定で SoftEther VPN Server (GL-AXT1800)の Ethernet ポート(eth1 (筐体の表示はLAN2))と、SoftEther VPN Bridge (GL-MV1000)の Ethernet ポート(lan0 (3つあるEthernetポートの中央))の間で、Layer 2 Bridge ができているはずである。