うちにはテレビを見るためのチューナー機能をもった機器として、ソニーのHDDレコーダーがあります。
外からでもアプリを使ってインターネット経由で操作できて便利なんですが、家にいるときとちがってできる操作に制限があります。そして外から操作ができるのは、家で最後に連携操作をしてから90日という期限もあります。
有効期限の更新方法
ご注意以下の操作は、外出先では行えません。
必ずご自宅のホームネットワーク環境で操作を行ってください。
去年の中南米放浪のとき、途中でサブスマホの方で連携が切れて少しこまったことになったので、家を離れる期間に関係なく旅先から使い続けられるようにできないかと思っていました。
家にいるふりをするしくみ
この前作った金盾越えのためのしくみで、Amazon Prime Videoについては家からのアクセスにうまいこと見せかけられたので、これをもう少し工夫すればこの問題に対応できそうです。
まず、今のしくみのままだとうまくいかないので、HDDレコーダーとスマホが同一サブネットにいないと「家にいる」という扱いにならないみたいです。
ルータをルータとして使うとそこにサブネット境界ができてしまうので、ルータのZeroTierインタフェースをLAN側とブリッジ接続するようにします。
これでスマホからZeroTierにアプリでつなぐと
[スマホ]-(VPN)-[ZeroTier]-(VPN)-[家のルータ(ブリッジ接続)]-(LAN)-[HDDレコーダー]
こんな構成になって確かに同じサブネットにはなりました。
(スマホからHDDレコーダーにtracerouteをすると中間ホップなし。)
でもスマホのVideo & TV SideViewアプリから見ると、VPN越しでの接続なのがばればれだからか、これでも家にいない扱いに。
ということで、旅先ルータでもWi-FiとZeroTierをブリッジ接続させて、
[スマホ]-(Wi-Fi)-[旅先ルータ(ブリッジ接続)]-(VPN)-[ZeroTier]-(VPN)-[家のルータ(ブリッジ接続)]-(LAN)-[HDDレコーダー]
こんな構成にすると、スマホもVPN経由の接続であることを感知できなくなって、家にいる扱いにできました。
少しテクニカルな説明
具体的にどうやるの?というところですが、要点だけメモしておきます。
★機種
家のルータ:GL.iNet GL-A1300 / Slate Plus
旅先ルータ:GL.iNet GL-SFT1200 / Opal
★ルータのLAN側IPアドレス設定
そのまま2台をブリッジ接続して同じサブネットにするとIPアドレスがバッティングしてしまうので、うまいことIPアドレスをずらします。
各ルータで
Admin Panel (LuCIじゃないふつうの管理画面)> NETWORK > LAN > Private Network > Advanced
このあたりをいじって。
それぞれのDHCP配布レンジ(Start IP AddressとEnd IP Address)も調整してかぶらないようにします。
★ZeroTierサーバ側の設定
家のルータも旅先ルータも、ZeroTierサイトのNetworkの設定上で"Allow Ethernet Bridging"と"Do Not Auto-Assign IPs"にチェックをつけてAuthorizeします。
★ルータ側のブリッジ設定
▼家のルータ
LuCI > Network > Interfaces > [ZEROTIER]の[Edit]
[Device]をunspecifiedに変更。
LuCI > Network > Interfaces > [Devices]タブ > [br-lan]の[Configure]
[Bridge ports]にEthernet Adapter: “z*********"(ZeroTierのインタフェース名)を追加。
▼旅先ルータ
LuCI > Network > Interfaces > [LAN]の[Edit] > [Physical Settings]タブ
[Interface]にEthernet Adapter: “z*********"(ZeroTierのインタフェース名)を追加。
(家のルータとの操作のちがいは機種のちがいによるもので、やってることは同じです。)
これでスマホを旅先ルータにWi-Fi接続すると、家にいないとできないはずの「おでかけ転送」が出先でもできるようになりました。本来出先ではストリーミング再生しかできないんですが、ダウンロードもできるようになったということです。
外出先機能の有効期限も延ばせるんですが、いつでも家にいる扱いにできるので外出先機能自体があまり必要ないかも。
nasneでも
うちにはHDDレコーダーのほかにもnasneがあって、こちらも家にいないとスマホとのペアリング操作ができない仕様になっているんですが、このしくみを経由すれば出先からでもペアリングができました。
さらに洗練された構成
今回の構成では、2つのルータのDHCPサービスが両方生きている状態でブリッジ接続されることになるので、旅先ルータに端末を接続したときに、家のルータのDHCPからIPアドレスが配布されてしまったり、その逆も起こりえます。
実際にはそれほど実害はないんですが、きれいにこの問題を回避しようとすると、
- 旅先ルータではゲストWi-Fiの方にZeroTierをブリッジ接続する
- 旅先のゲストWi-Fi側ではDHCPをOFFにする
という設定にするのがいいかと思います。
(実際やってみましたが、この場合、ゲストWi-Fi接続時のIPアドレスは家のルータのDHCPから配布されます。)
これだと家のネットワークに接続したくない場合は、ゲストでないふつうのWi-Fiの方につなげばいいので、切り替えにルータの設定変更がいらなくて楽です。
その代わり、本来のゲストWi-Fiの「ゲストにつないでもらうためのもの」という目的は果たせなくなってしまいますが。
GL-SFT1200(Opal)のZeroTierの挙動が不安定なので、旅先用ルータをGL-A1300(Slate Plus)にしました。
ちなみに今の家のルータは、BUFFALOのWXR-2533DHP2にOpenWrtを入れたものにしています。
旅先ルータ側で
LuCI > Network > Interfaces > LANをEdit > DHCP Server > Advanced Settings > Force
のチェックをはずしておけば、同セグメントでDHCPサービスがバッティングした場合に旅先ルータ側が身を引いてくれます。
コメント