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サーバーとしては最強製品になるでしょう。
NATテーブル溢れ対策

NATテーブル溢れ対策

最近インターネットの調子が悪い。しょっちゅう通信が詰まる。通信が詰まっても数十秒で復帰するのですが、日に何度も発生しておりかなり困っています。 10GルーターUbiqiti Dream Machine Proを購入した 前回の記事で10G回線導入に向けてUbiquiti Dream Machine Proを購入しました。 自宅の10G回線を検討する 今回の記事は下記記事の続きです。 令和5年最新版 自宅ネットワークまとめ これから自宅のネットワーク環境の話をするときに今住んでいる物件の現況をここで纏めようと思います。 部屋探し 現在のマンションのネットワーク構成を話す前にどういう視点で部屋を探したかを話します。 コロナ禍での引越にあたり下記条件を不動産屋さんに提示して家探しをお願いしました。 ■絶対条件 NTTの光を独自に引ける 40A以上の電源契約が可能 各部屋に1つ以上壁コンセントにアースが来てる ■あると嬉しい条件 NTT以外のファイバーを引ける(NUROなど) 各部屋に有線LANコンセントがある もちろんこれ以外にも居住にあたっての条件はありましたが割愛いたします。 今回は10G回線導入に向けてどこの回線事業者と契約するか、宅内のルーターをどうするか検討します。なお最終的に10G回線を契約しなかったためこの記事はポエムです。 今回は設置作業を行います。 自宅ではUbiquiti Dream Machine Pro(UDM)をルーターとして利用しています。UDMではWANを2系統用意できるため、片方の回線で障害が発生したときに別の回線を利用できます。通信が詰まる時間は数十秒ですが、この機能により主回線 → 副回線にフォールバックしてその後に主回線に復帰するまで1分程度通信が詰まります。