Home Assistantへのtailscale VPN導入とSubnet Routerで拠点丸ごと接続

公開

自宅に仮想マシンで運用している Home Assistant を tailscale VPN へ接続。Subnet Router機能を活用して、拠点丸ごと tailscale からアクセスできるようにします。

Home Assistant tailscaleアドオン導入

Home Assistanttailscaleへ接続するのに必要なのは、統合(インテグレーション)ではなくアドオンの方です(インテグレーションについては後述)。

図01.HA設定メニュー

図01.HA設定メニュー

アドオン一覧下にある アドオンストア を押下。

図02.アドオン一覧

図02.アドオン一覧

数が多いのでキーワード検索で絞り込むと、Tailscaleアドオンが容易に見つかります。

図03.アドオンストアで検索

図03.アドオンストアで検索

インストール、開始直後はオプションスイッチが全て切れているので、起動時に開始とウォッチドッグを有効にしておきます。

図04.Tailscaleアドオン状態

図04.Tailscaleアドオン状態

Tailscaleアドオンのログタブを開くとデバイス初回認証に必要な認証URLが見つかるので、これをコピー。

図05.ログの中に認証URL

図05.ログの中に認証URL

認証URLをブラウザで開き、Tailscaleに登録したGoogleアカウントでログイン。

図06.tailscaleログイン

図06.tailscaleログイン

Connet ボタンを押してデバイスと接続します。

図07.tailnetへデバイスを接続

図07.tailnetへデバイスを接続

tailscale admin console上にもHome Assistantが現れました。

図08.tailscaleマシン一覧に出現

図08.tailscaleマシン一覧に出現

アドオンの設定はまだ触っていませんが、tailscale側ではSubnet RouterとExit-nodeが既に検出されています。

 

Subnet RouterやExit-nodeの設定

マシン一覧右のメニューから Edit Route Settings 開き、Subnet Router機能で繋がるサブネットを有効にするも、これだけでは疎通しませんでした。

図09.マシンのルート設定

図09.マシンのルート設定

そこで、Home Assistant Tailscaleアドオンの設定を開き、 未使用の設定オプションを表示する のトグルを有効にして全項目を表示させた上で、 Advertise as an exit node を有効化、その下の Advertise subnet routes にLANサブネットを明記しました。

図10.Tailscaleアドオンの設定

図10.Tailscaleアドオンの設定

これで繋ぎ直すと、tailnetからHome Assistantの属するLANサブネットへの疎通が確保されました。

 

LANルータにtailnetの静的ルート設定

ここまでで確立されたのは、 tailnet LANサブネット の通信です。さらにこの逆向き LANサブネット→tailnet を実現させることで、LAN上の任意のデバイスがtailscaleクライアントをインストールせずとも、tailnetへアクセス可能になるはずです。

そのためには、LAN上のデフォルトゲートウェイ(ルータ)に、tailnetへの静的ルートを設定する必要があります。tailscaleが採用している見慣れないIPアドレスは以下の範囲で、これはキャリアグレードNATと呼ばれるのだそう。

OpenWrtルータでは、 NetworkRouting ページでIPv4ルートを以下の要領で新規作成します( 192.168.51.8 はHome AssistantのLAN IPアドレス)。

図11.New Static Routing

図11.New Static Routing

図12.Static IPv4 Routes

図12.Static IPv4 Routes

この逆方向を実際にどれだけ利用するかはともかく、以上でtailnetとLANサブネットの双方向通信が実現されました。

 

サブネット上のpi-holeをtailnetのDNSに指定

この拠点サブネットには、pi-hole広告ブロックDNSが立っています。ここまでで拠点は丸ごとtailscaleに繋がったので、このpi-holeをtailnetのDNSに設定、tailscaleに繋ぐだけで広告ブロックの恩恵を受けるようにしてみましょう。

tailscale admin consoleの DNS タブを開き、 Nameservers 項にある Global nameservers に、pi-holeのLAN IPアドレスを指定します。 Override DNS を有効にするのを忘れずに。

図13.tailnet Global Nameserver

図13.tailnet Global Nameserver

以前、Androidスマートフォンにtailscaleを入れた際、それまで広告ブロックアプリAdAway(関連記事はこちら)と同時利用できない問題がありましたが、tailnet上に広告ブロックDNSを配置することで、この問題は解消されることになります。

 

次ページでは、Home Assistantのtailscaleインテグレションを入れてみます。

Home Assistantへのtailscale VPN導入とSubnet Routerで拠点丸ごと接続」への3件のフィードバック

  1. HighShinku

    この記事を真似して無事Home Assistantにtailscaleを導入できましたありがとうございました。

    返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA