nasneをTailscale VPNにつなぐ

Page content

自宅に置いているnasneを、VPNサービスのTailscale経由であらゆるところから使おうという試みです。試みを実現するための仕組みは、nasneと同じくTailscaleを直接導入できない、NASやネットカメラ (例: ATOM Cam 2) やその他IoT機器にも応用できると思います。

設定してみよう

前提条件

今回の試みには、前提として次の3つが必要です。Tailscaleという、非常に楽にVPNが張れるこのサービスについては、他に様々なところで紹介されているので説明を省略します。

  1. Tailscaleを利用していること (まだの場合はサインアップをどうぞ): Tailscale · Best VPN Service for Secure Networks
  2. 自宅LAN内にLinux機が稼働していること
  3. 自宅LAN内にTailscale経由で使いたいネットワーク機器があること

3の機器は今回、初期型nasne 1TBモデル (SIE CECH-ZNR2J) です。そのファイル共有機能 (共有フォルダー) をTailscale経由で使うことにします。

【余談】現時点で購入できるnasneは、BUFFALO製nasne NS-N100です。

バッファロー nasne HDDレコーダー 2TB 地デジ / BS / CS チューナー torne ニコニコ実況 【 PS5 / PS4 / iPhone / iPad / Android / Windows 対応 】 NS-N100

バッファロー nasne HDDレコーダー 2TB 地デジ / BS / CS チューナー torne ニコニコ実況 【 PS5 / PS4 / iPhone / iPad / Android / Windows 対応 】 NS-N100

バッファロー

設定手順

次のような状態の2台のマシンとnasneを例に進めます。

マシン場所LANでのIPアドレスTailscaleでのIPアドレス
machine-cloudインターネット100.x.x.C
machine-lan (Linux)自宅192.168.1.L100.x.x.L
nasne自宅192.168.1.N(割当不可)

machine-cloudからnasneの共有フォルダーが使えるように、次の順で設定を行います。

  1. machine-cloudとmachine-lanにTailscale clientを導入して、Tailscaleでの通信が行えるようにする
  2. Subnet routers and traffic relay nodes · TailscaleでのStep 2以降の設定を実施する
    • Step 2にて必要最小限の設定を行うならば、サブネットマスク/32を用いてsudo tailscale up --advertise-routes=192.168.1.N/32となる
    • Optionalとなっている部分は行わなくても構わない
  3. machine-cloudからnasneのIPアドレスに対し、nmapでのポートスキャンを行うと次の結果となります
$ nmap 192.168.1.N
Starting Nmap 7.80 ( https://nmap.org ) at 2021-08-09 12:51 JST
Nmap scan report for 192.168.1.N
Host is up (0.024s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 0.45 seconds
  1. これはつまり、TailscaleのVPNにおいてmachine-lanがRelay Nodeとして介在することで、machine-cloudからnasneの139/tcp, 445/tcp等が見えている状態です。したがって、machine-cloudからnasneの共有フォルダーを使うことができます

まとめ

Tailscaleを用いると、どこからでも自宅LAN機器へアクセスできる経路を作れるし、その設定は簡単ということがわかりました。もちろん、SSHのポートフォワーディングやらrouting設定やらを駆使しても技術的にはできないことはないでしょうが、Tailscaleは、設定作業が劇的にわかりやすいところが秀逸だと思います。

参考情報) ファイル名の文字化け解決はあきらめた

Tailscaleのレイヤーの問題ではなく、SMBプロトコルかnasneのDLNA機能かメディアファイルを参照するソフトの問題ですが、参考として。

machine-cloud (Ubuntu) からnasneに保存するメディアファイルのファイル名に、日本語文字 (多バイト文字) を含む場合、私の家のテレビ (LGの2020年型) のメディアサーバ画面でnasneのメディアファイルを参照すると、ファイル名が文字化けするようで、この文字化けをなんとか回避しようと考えました。

しかし、私の初期型nasneのSMBプロトコルは「SMB 1.0」とバージョンが古いことが関係するのか、mount時のオプションにcodepage=cp932を設定できない?ようで、苦肉の策でconvmvfsという変換ツール (Ubuntuではaptで導入可能) を見つけて、

次のようにmachine-cloudでの設定をいろいろ試みたのですが、解決せずです。現時点ではファイル名の文字化けは諦めています。

## 1) machine-cloudでのマウント
sudo mount -t cifs -o guest,rw,vers=1.0 //192.168.1.N/share1 /mnt/nasne_direct

## 2-a) convmvfsを用いた多重マウント1 → NG (テレビで文字化け)
convmvfs /mnt/nasne_convert -o icharset=CP932,srcdir=/mnt/nasne_direct

## 2-b) convmvfsを用いた多重マウント2 → NG (テレビで文字化け)
convmvfs /mnt/nasne_convert -o icharset=EUCJP-MS,srcdir=/mnt/nasne_direct

参考リンク