本文へ移動

スマート接続

スマート接続 は、FNOS ネイティブ FPK と OpenWrt ランタイムにおいて、インターネットから直接到達するサブドメインモードで使用できる LAN 向けスプリット DNS 機能です。インターネット側では引き続き nas.example.com が公開エントリーポイントへ名前解決されますが、LAN 内のデバイスはローカルの dnsmasq からデバイスのプライベート IPv4 を取得し、NAT ループバックやインターネットを迂回するアクセスを避けられます。

変更されるのは DNS の名前解決だけです。Host マッピングの作成、公開 DNS の変更、実行モードの切り替えは行いません。

利用条件

次の条件をすべて満たす場合に有効にしてください。

  1. 現在のモードが サブドメインモード であり、トンネル → サブドメインマッピング ではない。
  2. 認証 Host と、1 件以上のサービス用 Host マッピングが設定済みである。
  3. fn-knock を実行するデバイスに、安定したプライベート IPv4 がある。
  4. LAN 内のクライアントが、このデバイスを DNS サーバーとして使用する。
  5. ポート 53 を、スマート接続で使用する dnsmasq がリッスンしており、他の DNS サービスと競合していない。
  6. FNOS ネイティブ FPK または OpenWrt で実行しており、root 権限、ホストの dnsmasq、サービス管理機能を利用できる。

サブドメインのエントリーポイント設定については、サブドメインモードのセットアップサブドメインマッピングを参照してください。

DNS の経路

text
インターネット上のデバイス -> 公開 DNS -> 公開エントリーポイント -> fn-knock
LAN 内のデバイス            -> ローカル dnsmasq -> 192.168.31.20 -> fn-knock

スマート接続は、現在の Host マッピングに含まれる認証 Host とサービス用 Host を自動的に同期します。たとえば次のようになります。

text
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 上ではテストできません。

設定

場所:システム設定 → 機能 → スマート接続

  1. スマート接続 を有効にします。
  2. リソースの準備ができていないと表示された場合は、先に dnsmasq をインストールして初期化します。OpenWrt ではファームウェアに用意された opkg または apk を使用し、ページ上の apt-get インストールボタンは使用できません。
  3. LAN 内のクライアントから実際に到達可能なプライベート IPv4(例:192.168.31.20)を選択します。
  4. 保存と同期 をクリックし、同期対象のドメイン数と最終同期時刻を確認します。
  5. ルーターの DHCP で、DNS サーバーをそのプライベート IPv4 に設定します。最初はテスト用デバイス 1 台だけに手動設定することもできます。
  6. ネットワーク設定を再取得し、キャッシュが更新された後に各サブドメインを照会します。

メインの LAN インターフェースのアドレスを選択してください。Docker ブリッジ、トンネル、内部通信専用の仮想インターフェースは選択しないでください。

クライアントはこの DNS を使用する必要がある

管理画面で保存に成功したことは、ローカルに dnsmasq ルールを書き込み、再読み込みできたことだけを意味します。ルーターが別の DNS をクライアントへ配布している場合や、ブラウザーでローカル DNS を迂回する暗号化 DNS が有効な場合は、引き続き公開アドレスが返される可能性があります。

ローカルルールの TTL は約 30 秒です。変更後はキャッシュの期限切れを待つか、Wi-Fi に再接続するか、OS とブラウザーの DNS キャッシュを更新してください。

検証時には次を照会します。

text
auth.example.com
nas.example.com

返される値が選択したプライベート IPv4 であることを確認します。その後、リクエストログの送信元も LAN で想定した値になっている必要があります。

dnsmasq の状態

状態意味
未インストール利用可能な dnsmasq プログラムがない
初期化待ちプログラムは存在するが、サービスまたは初期設定の準備が完了していない
停止中設定は存在するが、現在サービスが正常に動作していない
準備完了ルールを書き込み、サービスを再読み込みできる

初期化に失敗した場合は、先に 53/tcp53/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 内の利用者がゲートウェイを迂回してアップストリームへ直接接続することも防げません。

トラブルシューティング

  1. ページを利用できない:現在のモードがインターネットから直接到達するサブドメインモードか確認し、デプロイ環境の対応機能を確認します。
  2. 同期できるドメインがない:先に認証 Host とサービス用 Host を作成します。
  3. 選択できる IP がない:メインのネットワークインターフェースに 10/8172.16/12192.168/16 のいずれかのアドレスが割り当てられているか確認します。
  4. 初期化に失敗する:ポート 53 の使用状況と dnsmasq サービスの状態を確認します。OpenWrt では、dnsmasq がインストール済みで、メイン設定から /etc/dnsmasq.d/ が読み込まれていることも確認します。
  5. クライアントが引き続き公開アドレスを名前解決する:DHCP で配布される設定、手動 DNS、暗号化 DNS、キャッシュを確認します。
  6. ドメインがプライベートアドレスに名前解決されるが開けない:実際のゲートウェイポート、証明書、Host マッピングを確認します。公開 DDNS の調査を続ける必要はありません。

その他の機能スイッチについては、システム設定を参照してください。

QQ コミュニティ:1081609274