目次

NanoPi R2SでSoftEther VPNの拠点間L2-VPN中継器を作る

知り合いの会社では、遠隔地という名の役員宅にデータバックアップサーバーを設置している。昨今の電気代高騰と猛暑による廃熱問題のため、バックアップ開始時に自動的にサーバーの電源が入り、終わったら自動で電源が切れるようにできないか、という相談を受けた。

サーバーにはBMC/IPMIが載ってるので、リモートで電源ON/OFFをするのは造作もない。問題は現状BMC NICが物理的に繋がっておらず、また仮に繋いだとしてもルータ越しでアクセスできないってこと。ポートフォワードなりしてやれば技術的にはアクセス可能だけど、さすがにBMCをインターネッツに解き放つのはどうかと思うわけ。

バックアップサーバー自体はOS上のSoftEther VPN Client経由で社内に繋がっている。であるならば、BMC側もSoftEtherで社内に繋がってくれれば都合がよい。かと言って、BMCで動くSoftEtherなんてものは当然存在しないので、NanoPi R2SでSoftEther VPN Bridgeを動かし、BMCを社内LANにVPN接続してしまおうというわけで記事タイトルに繋がる。

試した環境

ネットワークの構成図は以下のような感じ。

NanoPi R2SのWAN側を宅内LANセグメント、LAN側をSoftEther VPN BridgeのL2ブリッジによる社内LANセグメントとし、宅内サーバのBMCネットワークを社内LANに中継してやる。

こんなこともあろうかと、サーバ設置の時点でBMCには社内セグメントのIPアドレスを振った状態だったりする。もしDHCP使うにしても、社内側のDHCPサーバから降ってくるので、FriendlyWrtの余計なサービスは止め、NanoPi R2SはVPNブリッジ箱に徹してもらう。

手順

FriendlyWrtの準備と起動

NanoPiの各モデルのページからダウンロードページをたどり、FriendlyWrtのSDカードイメージをダウンロードする。

何種類かあるようだけど、最新版で軽量そうなFriendlyWrt 23.05を選んだ。

gzを展開したimgファイルをDD for WindowsなりでmicroSDカード(8GB以上)に書き込んで、NanoPiにmicroSDカードを挿入、USB-C経由で電源を供給すればFriendlyWrtが起動する。

初回は初期設定で少し時間がかかるが、完了すればNanoPiのLAN側のEthernetポートから192.168.2.1で管理Webページにアクセスできるようになる。また、この時点でWAN側のDHCPクライアント、LAN側のDHCPサーバ、WAN-LAN間のNAPTが動いている。つまり、PC ←→ [LAN] NanoPi [WAN] ←→ ルータ と接続し、PCのIPアドレスをDHCP取得にしておけば、何も考えずにPCからFriendlyWrtの設定とインターネットアクセスができる状態となる。名前のとおり大変フレンドリーでありますね。

ファイヤウォールの停止

NanoPiのWAN側ポートを宅内LANセグメント、LAN側ポートをSoftEther VPN Bridgeによる社内LANセグメントとする。

つまり、ここからはWANポート側からFriendlyWrtの管理Webページにアクセスする必要がある。デフォルトではファイヤウォールで遮断されているため、ファイヤウォール自体を止めてしまう。生かしたままポリシーを変える方法もあるが、なるべくシンプルに行きたいので止めてしまう。

FriendlyWrtの管理画面のシステムメニュー→スタートアップページと遷移し、firewallの停止ボタンを押し、「有効」ボタンを押して「無効」にする。下図は既に無効状態である。

WAN側ポートに振られたIPアドレスで管理画面にアクセスできることを確認する。

DNSサーバ、DHCPサーバの停止

LAN側ポートは社内LAN側で管理を掌握したいので、DNSサーバ、DHCPサーバを停止する。

上記ファイヤウォール同様、スタートアップページでdnsmasq, odhcpdを停止、無効にする。

ブリッジの削除とLAN側インタフェースの追加

FriendlyWrtのデフォルト状態では、LAN側(eth1)はブリッジbr-lanが割り当てられている。今回はシンプルにSoftEtherの仮想NICとeth1をL2ブリッジしたいので、br-lanは消す。

FriendlyWrtの管理画面のネットワークメニュー→インタフェース→インタフェースタブでbr-lanを削除する。同じくデバイスタブの方でも設定解除する(こっちに残っててもダメっぽい)。

その後、インタフェースタブの「インタフェースを新規作成」からeth1を追加する。

項目
名前 lan (何でも良い)
プロトコル アンマネージド
デバイス eth1

最終的にインタフェース画面は以下のようになっていればよい。

SoftEther VPN Bridgeのインストールと設定

FriendlyWrtの管理画面のシステムメニュー→ソフトウェアページから、SoftEther VPN Bridgeをインストールする。

接続先のSoftEther VPN Serverが4系統なのに合わせ、NanoPi側は2024-07-21現在最新のsoftethervpn-bridge 4.38-9760-2を選択した。

無事インストールが終われば、https://WAN側IPアドレス:5555でSoftEtherのWeb管理ページが表示される。

SoftEther VPN Bridgeの設定方法は割愛するが、要旨は以下のとおり。

NanoPi R2S経由で社内LANに接続

NanoPi R2SのWAN側ポートを宅内LANのルータ、LAN側ポートを適当なPCに接続し、PCのNICはDHCPでIPアドレスを取得するように設定する。

正しく設定されていれば、NanoPiの電源を抜き差し後、ほどなくしてPCのNICに社内LANのIPアドレスが降ってきて、社内にアクセスできるようになる。

気になる速度はNTttcpの計測で30Mbpsほど。この時のNanoPi R2Sのロードアベレージは1に達しない程度だったので、もうちょい速くなってもよさそうな…?BMC/IPMI用途には十分ですけどね。

参考サイト