1. Home
  2. /
  3. ネットワーク
  4. /
  5. Tailscaleの冗長構成を構築

Tailscaleの冗長構成を構築

Tailscaleの冗長構成を構築

我が家のネットワークはマンション回線のためグローバルIPがなく、ポート開放ができません。IPv6周りも宅内には振っていないので利用することができません。

そのため、HTTP/HTTPSの通信にはCloudflare Tunnelを利用しています。それ以外の通信や宅内のSubnetへのアクセスにはTailscaleを利用しています。

今回は自宅SubnetへのアクセスのためのTailscaleの冗長構成を構築します。

Tailscaleとは

Tailscaleは、WireGuardを基盤としたゼロトラストVPNです。各端末、サーバーにアプリを入れてSSOでログインするだけで、NAT越えも含めP2Pメッシュの安全なプライベートネットワークを自動構築できます。ユーザー数が3人までであれば無料で使えます。さらに1ユーザー100台までの接続が可能です。

基本的にはTailscaleのネットワークに属している端末同士がP2Pで通信を行いますが、Subnet Routerを有効にすればTailscaleのネットワークに属していない端末も接続できます。

Exit Nodeを有効にすれば端末のすべての通信がその端末経由で行えますので海外などからの日本経由のアクセスも可能になります。ソフトウェアの出来が大変よく非常に簡便にVPNネットワークを構築でき非常にオススメのサービスです。

無料プランでもGoogleやGitHubアカウント連携で利用できますし、Windows・macOS・Linux・iOS・Androidなど主要OSに対応しています。

現在の構成

自宅ではGL.iNet MT2500にTailscaleを入れて利用しています。宅内のサーバー用VLANのサブネットもSubnet Router経由でアクセスできるようにしています。(GL.iNetでデフォルト対応しているためGUIで設定可能です)

GL.iNet MT2500のログ画面

Tailscaleは動作負荷も低いため、このようなファンレスのルーターやラズパイで快適に利用可能です。しかし、先日利用していたところGL.iNet MT2500が落ちてしまっておりアクセス不可になっていました。

GL.iNet MT2500のログ画面

幸い、前述のCloudflare Tunnel経由で必要なリソースにはアクセスできたので問題なかったのですが今後に備えて冗長構成を組むことにしました。

冗長化構成

Set up high availability · Tailscale Docs

Learn how to set up high availability (HA) for subnet routers and app connectors.

TailscaleのSubnet Routerの冗長構成は同じ設定でTailscaleを複数起動することで実現できます。

「Failover can take up to ~15 seconds after a primary connector is taken offline.」と記載がありますのでストリーミングの通信などで即時切り替わりなどは期待できなさそうですが、まぁ大抵の要素では何も困ることなさそうです。

GL.iNetでのTailscale構築

GL.iNet MT2500A (Brume 2) VPNセキュリティゲートウェイ2.5G WANギガビットLANポート インターネットセキュリティVPNカスケード接続OpenVPNとWireGuard対応ホームオフィスリモートワーク日本語設定画面(アルミニウム合金製ケース)

Amazon

GL.iNetの製品はOpenWrtをベースに構築された小型トラベルルーターが多いです。外出先のホテルなどで接続するとルーター側でVPNを通して端末に通信を提供できることが売りです。

自宅で利用しているのはGL.iNet MT2500A (Brume 2)で、こちらはWi-Fi機能がない代わりに2.5Gbps通信が可能な製品です。1万円程度で購入でき低消費電力のサーバーとして利用可能です。

GL.iNetのステータス画面

RAMも1GBあります。

GL.iNetのメモリ使用量

ストレージは8GBで9割以上空いている状態ですので追加のソフトウェアをいくつか追加可能です。

GL.iNetのストレージ使用量

本来はルーターなのですが、自宅ではTailscaleとDNSサーバーとしてのみ使っているためLAN側には端末を接続せずWANのみを利用しています。

GL.iNetのネットワーク構成

TailscaleはGL.iNetではデフォルトでサポートされています。そのため、Web GUI画面でポチポチ有効化するだけで利用可能です。

「リモートアクセスWANを許可する」を有効にすることでWAN側のネットワークのSubnetをTailscaleのネットワークに追加できます。

ただGUI画面からTailscaleのすべての設定を行えるわけではないため、一部設定ではCLIから設定を行う必要があるかもしれません。(今のところSubnet以外の設定を有効にしていないためCLIから設定を行ったことはありません。)

あとは後述のTailscaleのWeb管理画面からSubnetを有効化します。

ProxmoxのLXCでのTailscale構築

インストール

Tailscale in LXC containers · Tailscale Docs

Learn how to use Tailscale in LXC containers.

続いて何処のご家庭にもある仮想化基盤上でTailscaleを構築します。今回はProxmox上のLXCで構築します。

Proxmox上のLXC一覧

OSはUbuntu 24.04、CPU2コア、メモリ256MBで構築しました。ストレージはとりあえず16GBにしましたが、恐らく4GBもあれば十分です。

LXCを起動後、apt update && apt upgradeを実行して更新を取っておきます。更新後はLXCを終了します。このままだとTailscaleを動かすには権限が足りませんのでconfに設定を追加します。

nano /etc/pve/lxc/{LXCのID}.conf

このconfに下記設定を末尾に追加します。

lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

confを保存してLXCを起動します。続いて公式ドキュメントどおりTailscaleをインストールします。

Install Tailscale on Ubuntu 24.04 (noble) · Tailscale Docs

Install the Tailscale client on Ubuntu 24.04 (noble).

LXCのUbuntuはcurlが入っていないのでインストールしておきます。試したことはないですがLinux用のワンライナーが用意されていますので下記のコマンドでもcurlを入れていればインストールが通るかもしれません。

curl -fsSL https://tailscale.com/install.sh | sh

インストール後はtailscale upでログインし、tailscale ip -4でIPアドレスが割り当てられているか確認します。

Subnet Routerの設定

Subnet routers · Tailscale Docs

Use subnet routers to give devices outside your local network access to services within specific subnets. Extend your private network with Tailscale.

続いてSubnet Routerの設定を行います。

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

上記のconfを設定後に下記コマンドで共有したいSubnetを追加します。

tailscale set --advertise-routes=192.168.130.0/24

あとは後述のTailscaleのWeb管理画面からSubnetを有効化します。

Apple TVにTailscaleをインストール

ここまでは変な機材ばかりで設定していましたが、一般のご家庭にあるApple TVもTailscaleをインストールすることで利用可能です。

Apple TVでお手軽にVPNサーバーを構築

Apple TVでお手軽にVPNサーバーを構築

先日、TailscaleというVPN構築サービスのドキュメントを読んでいるとおもしろいページがありました。 Secure your internet traffic on public Wi-Fi using an Apple TV · Tailscale Docs Route Tailscale traffic through your Apple TV for secure, private browsing and access to region-locked content. Apple TVにアプリを入れるだけでVPNサーバーを構築できる……? まじ? Apple TVであれば常時電源ONの状態でTVに繋いでおり、サーバーとして理想的です。一般のご家庭向け製品で改造等も不要でアプリを入れるだけで導入できるVPNサーバーとしては最強製品になるでしょう。

で解説していますので上記記事をご参照ください。

Webの管理画面でSubnetの有効化

先ほど同じApple TVでのTailscale設定記事でWeb管理画面の設定方法を記載していますので参考に設定してください。

動作確認

上記の設定を行い、実際に冗長構成が機能しているか確認します。まずTailscaleネットワーク経由でHLSの映像をセルラー回線接続のスマホで受信します。

そして通信量を確認して今回構築した中から恐らく繋がってそうなTailscaleを落とします。予想どおり通信が切れました。HLSを受信しているページを更新すると何事もなかったかのように再接続されました。 HLSの受信クライアントの実装の問題もあるかもしれませんが自動で映像受信の復帰はしませんでした。

というわけで無事冗長構成が組めてそうなのでこれで安心です。

Exit Nodeの方は自宅を出口にすることがあまりないのでApple TVの単体構成でいきます。

まとめ

TailscaleのSubnet Routerの冗長構成は同じ設定のTailscaleを複数立てるだけで実装可能で大変お手軽です。先日構築したCloudflare Tunnelも同じように複数立てるだけで冗長構成が組めましたし便利な時代です。

サイト内の商品リンクは一部アフィリエイトリンクとなっています

関連記事

Apple TVでお手軽にVPNサーバーを構築

Apple TVでお手軽にVPNサーバーを構築

先日、TailscaleというVPN構築サービスのドキュメントを読んでいるとおもしろいページがありました。 Secure your internet traffic on public Wi-Fi using an Apple TV · Tailscale Docs Route Tailscale traffic through your Apple TV for secure, private browsing and access to region-locked content. Apple TVにアプリを入れるだけでVPNサーバーを構築できる……? まじ? Apple TVであれば常時電源ONの状態でTVに繋いでおり、サーバーとして理想的です。一般のご家庭向け製品で改造等も不要でアプリを入れるだけで導入できるVPNサーバーとしては最強製品になるでしょう。
UniFi Express レビュー

UniFi Express レビュー

UniFi Expressとの出会い ドデカい誤家庭用機器が多数展示されているInterop Tokyo 2024にて一般家庭でも置けそうな小さなルーターが展示されていました。 それがUniFi Expressです。(写真一番左の機器) この小ささでDream Machine Proと同じUniFi OSが動作し、WiFi6対応のAPが内蔵されているという夢のある製品です。というわけで実家のルーターを(不必要に)UniFi Expressに買い替えました。