OpenWrtへtailscale VPNを入れて拠点接続やジオブロック回避ゲートウェイ化

公開

WiFiアクセスポイントに特化して運用している、 OpenWrt トラベルルータGL-iNet GL-AR750Sに tailscale VPN を導入。Subnet Router機能で拠点丸ごと接続させたり、Exit-nodeを有効にして ジオブロック 回避のゲートウェイにしました。

OpenWrtへのtailscale導入

今回tailscaleを導入するのは前回、Home Assistantとは別拠点でWiFiアクセスポイント専用として稼働しているGL-iNet GL-AR750S Slateです。

元々入っていたメーカー謹製ファームウェアから、素のOpenWrt v22.03へ入れ替え済みです。

 

OpenWrtへのtailscale導入は、OpenWrt側より導入ガイドが公開されており、基本的に次の2つのパッケージをインストールするだけ。

tailscaleサービスが動いているのを確認したら、初回接続をリクエストして認証URLを得ます。

コピーした認証URLをブラウザで開き直し、tailscaleに登録しているGoogleアカウントでログイン。

図01.tailscaleログイン

図01.tailscaleログイン

Connect ボタンを押してインスタンスをtailnetに繋げます。

図02.tailnetへインスタンスを接続

図02.tailnetへインスタンスを接続

tailscale admin consoleページに、このOpenWrtデバイスが現れました。

図03.tailscaleデバイス一覧

図03.tailscaleデバイス一覧

単にこのデバイスをtailscaleへ繋げるだけでよければ、作業はこれだけです。

 

tailscale用仮想インターフェイスの作成

ローカルサブネットを丸ごとtailnetへ繋げるSubnet Router機能や、他のtailscaleデバイスが外向きゲートウェイとして利用できるExit-node機能を利用するには、以前OpenWrtにWireguard VPNを導入した時のような、仮想インターフェイスの作成とゾーン定義が必要になります。

まず、OpenWrtのWebUIの NetworkInterfaces を開き、 Add new interface ボタンを押下。

図04.インターフェイス一覧

図04.インターフェイス一覧

tailscaleパッケージインストール時に作成されたデバイス、 tailscale0 と紐付いた tailscale インターフェイスを作成。

図05.新規インターフェイス作成

図05.新規インターフェイス作成

設定はまだ反映せず、このままファイアウォールゾーンの設定へ移ります。

図06.追加されたインターフェイス

図06.追加されたインターフェイス

この作業で、 /etc/config/network に以下の項目が追加されました。

 

ファイアウォールゾーンの設定

次に、 NetworkFirewall へ移動してファイアウォールゾーンを設定します。ここは以前、APモードした時にファイアウォールを撤廃していたので、ご覧の通り空っぽです。

図07.空のファイアウォールゾーン

図07.空のファイアウォールゾーン

まず一つ目、 lan ゾーンを作成。

図08.lanゾーンの作成

図08.lanゾーンの作成

続いて、作成した tailscale インターフェイスと紐付いた tailscale ゾーンを作成。ここでは、 MasqueradingMSS clamping にチェックを入れ、 lan ゾーンとの通信を許可します。

図09.tailscaleゾーンの作成

図09.tailscaleゾーンの作成

組み上がったゾーン設定は次の通り。ここで設定を反映させます。

図10.ファイアウォールゾーン設定後

図10.ファイアウォールゾーン設定後

/etc/config/firewall に追加されたのは、以下のとおり。

 

Subnet RouterとExit-nodeの有効化

tailscaleのためのインターフェイスとゾーン設定が終わったので、Subnet RouterとExit-nodeを有効にするオプションを添えて接続します。

次にtailscale admin console上で、提案されたSubnet RoutesやExit-nodeを承認します。

図11.tailscale Edit route settings

図11.tailscale Edit route settings

接続に問題がないことを確認したら、以降はデバイスの起動後自動接続されるよう、スタートアップスクリプト /etc/rc.local に記述しておきます。

図12.スタートアップスクリプトに記述

図12.スタートアップスクリプトに記述



 

光ルータに静的ルート設定

仕上げにこの拠点のデフォルトゲートウェイを担う光ルータPR-600MI(関連記事はこちら)に、tailnet向きトラフィックの静的ルートを作成しておきます( 192.168.1.251 がこのOpenWrtデバイスのIPアドレス)。

図13.光ルータ静的ルート設定

図13.光ルータ静的ルート設定

ちなみに他の静的ルートも、別のOpenWrtデバイスによるVPN用です。

 

Exit nodeを使ったジオブロック回避

Androidスマートフォンのtailscaleアプリを開き、右上のメニューから Use exit node をタップ、Exit nodeを有効にしたGL-AR750Sを選択すると、Exit nodeが有効になります。

図14.Android端末からExit-node利用

図14.Android端末からExit-node利用

香港からtailnetを介し、このOpenWrtデバイスのある日本経由でインターネットへ出ることで、ジオブロックが設定されているサイトへもアクセスできるようになりました(東京ガスのmyTOKYO GASは本来、日本国外からアクセス不能)。

図15香港からジオブロック回避テスト

図15香港からジオブロック回避テスト

コメントを残す

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

CAPTCHA