スマート接続
スマート接続 は、FNOS ネイティブ FPK と OpenWrt ランタイムにおいて、インターネットから直接到達するサブドメインモードで使用できる LAN 向けスプリット DNS 機能です。インターネット側では引き続き nas.example.com が公開エントリーポイントへ名前解決されますが、LAN 内のデバイスはローカルの dnsmasq からデバイスのプライベート IPv4 を取得し、NAT ループバックやインターネットを迂回するアクセスを避けられます。
変更されるのは DNS の名前解決だけです。Host マッピングの作成、公開 DNS の変更、実行モードの切り替えは行いません。
利用条件
次の条件をすべて満たす場合に有効にしてください。
- 現在のモードが
サブドメインモードであり、トンネル → サブドメインマッピングではない。 - 認証 Host と、1 件以上のサービス用 Host マッピングが設定済みである。
- fn-knock を実行するデバイスに、安定したプライベート IPv4 がある。
- LAN 内のクライアントが、このデバイスを DNS サーバーとして使用する。
- ポート
53を、スマート接続で使用するdnsmasqがリッスンしており、他の DNS サービスと競合していない。 - FNOS ネイティブ FPK または OpenWrt で実行しており、root 権限、ホストの
dnsmasq、サービス管理機能を利用できる。
サブドメインのエントリーポイント設定については、サブドメインモードのセットアップとサブドメインマッピングを参照してください。
DNS の経路
インターネット上のデバイス -> 公開 DNS -> 公開エントリーポイント -> fn-knock
LAN 内のデバイス -> ローカル dnsmasq -> 192.168.31.20 -> fn-knockスマート接続は、現在の Host マッピングに含まれる認証 Host とサービス用 Host を自動的に同期します。たとえば次のようになります。
auth.example.com -> 192.168.31.20
nas.example.com -> 192.168.31.20
alist.example.com -> 192.168.31.20以後 Host マッピングを追加または削除すると、再同期が実行されます。利用可能な Host がない場合は有効にできません。
アクセスポリシーへの影響
スマート接続は、経路を短縮するだけの機能ではありません。トラフィックが LAN 経由になると、通常はゲートウェイがクライアントをプライベートネットワークの送信元として認識し、認証結果が local_exempt になります。
ログインを必須にするが有効な Host でも、その LAN 内の送信元には事前ログインを求めません。- 過去の設定にある厳格なホワイトリストルールでも、ローカルの送信元は許可され、LAN 内のデバイスに公開側のホワイトリスト登録を強制しません。
- ブラウザーからログアウトしても終了するのはセッションだけで、ネットワークの
local_exempt属性は解除されません。
そのため、スマート接続を有効にすると、その LAN を信頼境界の内側に含めることになります。ゲスト Wi-Fi、信頼できない VLAN、複数人で共有するネットワークでは、ネットワーク内のデバイスにローカル例外を与えることを受け入れられない限り、同じスプリット DNS を直接使用しないでください。
公開側の認証は、モバイルネットワークなど実際の外部経路から検証する必要があります。スプリット DNS が有効な Wi-Fi 上ではテストできません。
設定
場所:システム設定 → 機能 → スマート接続
スマート接続を有効にします。- リソースの準備ができていないと表示された場合は、先に
dnsmasqをインストールして初期化します。OpenWrt ではファームウェアに用意されたopkgまたはapkを使用し、ページ上のapt-getインストールボタンは使用できません。 - LAN 内のクライアントから実際に到達可能なプライベート IPv4(例:
192.168.31.20)を選択します。 保存と同期をクリックし、同期対象のドメイン数と最終同期時刻を確認します。- ルーターの DHCP で、DNS サーバーをそのプライベート IPv4 に設定します。最初はテスト用デバイス 1 台だけに手動設定することもできます。
- ネットワーク設定を再取得し、キャッシュが更新された後に各サブドメインを照会します。
メインの LAN インターフェースのアドレスを選択してください。Docker ブリッジ、トンネル、内部通信専用の仮想インターフェースは選択しないでください。
クライアントはこの DNS を使用する必要がある
管理画面で保存に成功したことは、ローカルに dnsmasq ルールを書き込み、再読み込みできたことだけを意味します。ルーターが別の DNS をクライアントへ配布している場合や、ブラウザーでローカル DNS を迂回する暗号化 DNS が有効な場合は、引き続き公開アドレスが返される可能性があります。
ローカルルールの TTL は約 30 秒です。変更後はキャッシュの期限切れを待つか、Wi-Fi に再接続するか、OS とブラウザーの DNS キャッシュを更新してください。
検証時には次を照会します。
auth.example.com
nas.example.com返される値が選択したプライベート IPv4 であることを確認します。その後、リクエストログの送信元も LAN で想定した値になっている必要があります。
dnsmasq の状態
| 状態 | 意味 |
|---|---|
未インストール | 利用可能な dnsmasq プログラムがない |
初期化待ち | プログラムは存在するが、サービスまたは初期設定の準備が完了していない |
停止中 | 設定は存在するが、現在サービスが正常に動作していない |
準備完了 | ルールを書き込み、サービスを再読み込みできる |
初期化に失敗した場合は、先に 53/tcp と 53/udp の使用状況を調べ、次に実行環境から dnsmasq サービスを管理できるか確認します。2 つの DNS サービスに同じアドレスとポートを同時にバインドさせないでください。
プラットフォームごとの制限
- FNOS ネイティブ FPK ではスマート接続を使用できます。
dnsmasqがない場合は、ページからapt-getでのインストールを試行できます。 - OpenWrt ランタイムではスマート接続を使用でき、
/etc/dnsmasq.d/fn-knock-smart-connect.confに設定を書き込み、service dnsmasq restartでサービスを再起動します。システムにdnsmasqがインストールされ、有効になっていること、およびメイン設定から/etc/dnsmasq.d/が読み込まれることが必要です。ページの自動インストールはapt-getだけを呼び出すため、OpenWrt では使用できません。 - Docker はサポートされません。コンテナがホストに代わって
dnsmasqとポート53を管理することはできず、バックエンドはこの機能を非表示にするか拒否します。 - 汎用 Linux パッケージではスマート接続を利用できません。必要な場合は、ルーターまたは独立した DNS サーバーでスプリット DNS を設定してください。
- Synology DSM 7 SPK はスマート接続をサポートせず、アプリ内で
dnsmasqまたは LAN DNS を管理する機能もありません。 - Windows x86_64 はスマート接続をサポートせず、アプリ内で
dnsmasqまたは LAN DNS を管理する機能もありません。 - ホスト管理機能のない環境では、スプリット DNS を別途導入してください。
- トンネルモードのサブドメインマッピングはスマート接続をサポートしません。この構成では公開エントリーポイントがトンネルプラットフォームにあるため、LAN 向けスプリット DNS はルーターまたは独立した DNS サーバーで設定する必要があります。
- OpenWrt には Web ターミナルとアプリ内 FPK 更新がありません。これらの制限と、スプリット DNS の可否は別の機能です。
この機能で処理されないもの
- レジストラー、Cloudflare、その他の公開 DNS レコードは変更しません。
- 公開 IPv4 / IPv6 を自動更新しません。DDNS 管理またはCloudflare DDNS の設定を使用してください。
- ルーターのポートやファイアウォールを開放せず、Docker のポートも公開しません。
- アップストリームサービスのリッスンアドレスを変更せず、LAN 内の利用者がゲートウェイを迂回してアップストリームへ直接接続することも防げません。
トラブルシューティング
- ページを利用できない:現在のモードがインターネットから直接到達するサブドメインモードか確認し、デプロイ環境の対応機能を確認します。
- 同期できるドメインがない:先に認証 Host とサービス用 Host を作成します。
- 選択できる IP がない:メインのネットワークインターフェースに
10/8、172.16/12、192.168/16のいずれかのアドレスが割り当てられているか確認します。 - 初期化に失敗する:ポート
53の使用状況とdnsmasqサービスの状態を確認します。OpenWrt では、dnsmasqがインストール済みで、メイン設定から/etc/dnsmasq.d/が読み込まれていることも確認します。 - クライアントが引き続き公開アドレスを名前解決する:DHCP で配布される設定、手動 DNS、暗号化 DNS、キャッシュを確認します。
- ドメインがプライベートアドレスに名前解決されるが開けない:実際のゲートウェイポート、証明書、Host マッピングを確認します。公開 DDNS の調査を続ける必要はありません。
その他の機能スイッチについては、システム設定を参照してください。
