自宅に仮想マシンで運用している Home Assistant を tailscale VPN へ接続。Subnet Router機能を活用して、拠点丸ごと tailscale からアクセスできるようにします。
Home Assistant tailscaleアドオン導入
Home Assistantがtailscaleへ接続するのに必要なのは、統合(インテグレーション)ではなくアドオンの方です(インテグレーションについては後述)。
アドオン一覧下にある アドオンストア を押下。
数が多いのでキーワード検索で絞り込むと、Tailscaleアドオンが容易に見つかります。
インストール、開始直後はオプションスイッチが全て切れているので、起動時に開始とウォッチドッグを有効にしておきます。
Tailscaleアドオンのログタブを開くとデバイス初回認証に必要な認証URLが見つかるので、これをコピー。
認証URLをブラウザで開き、Tailscaleに登録したGoogleアカウントでログイン。

図06.tailscaleログイン
Connet ボタンを押してデバイスと接続します。

図07.tailnetへデバイスを接続
tailscale admin console上にもHome Assistantが現れました。
アドオンの設定はまだ触っていませんが、tailscale側ではSubnet RouterとExit-nodeが既に検出されています。
Subnet RouterやExit-nodeの設定
マシン一覧右のメニューから Edit Route Settings 開き、Subnet Router機能で繋がるサブネットを有効にするも、これだけでは疎通しませんでした。
そこで、Home Assistant Tailscaleアドオンの設定を開き、 未使用の設定オプションを表示する のトグルを有効にして全項目を表示させた上で、 Advertise as an exit node を有効化、その下の Advertise subnet routes にLANサブネットを明記しました。
これで繋ぎ直すと、tailnetからHome Assistantの属するLANサブネットへの疎通が確保されました。
LANルータにtailnetの静的ルート設定
ここまでで確立されたのは、 tailnet → LANサブネット の通信です。さらにこの逆向き LANサブネット→tailnet を実現させることで、LAN上の任意のデバイスがtailscaleクライアントをインストールせずとも、tailnetへアクセス可能になるはずです。
そのためには、LAN上のデフォルトゲートウェイ(ルータ)に、tailnetへの静的ルートを設定する必要があります。tailscaleが採用している見慣れないIPアドレスは以下の範囲で、これはキャリアグレードNATと呼ばれるのだそう。
|
1 2 |
100.64.0.0/10 (255.192.0.0) 100.64.0.0 - 100.127.255.255 |
OpenWrtルータでは、 Network → Routing ページでIPv4ルートを以下の要領で新規作成します( 192.168.51.8 はHome AssistantのLAN IPアドレス)。
この逆方向を実際にどれだけ利用するかはともかく、以上で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 を有効にするのを忘れずに。
以前、Androidスマートフォンにtailscaleを入れた際、それまで広告ブロックアプリAdAway(関連記事はこちら)と同時利用できない問題がありましたが、tailnet上に広告ブロックDNSを配置することで、この問題は解消されることになります。
次ページでは、Home Assistantのtailscaleインテグレションを入れてみます。













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