オフィスのプリンターはデスクのどのアプリケーションにも表示されますが、VPN 上では消えてしまいますが、既知のアドレスには ping が通ります。トンネルの中で壊れているものはありません:検出と到達性は別のサービスであり、既定ではそのうち片方だけがルーティングされたトンネルを越えます。以下の確認手順は、ルートを追加する前に両者を切り分けます。リンクを離れなかった問い合わせを、ルートで直すことはできません。

今日なにが解決され、なにが解決したように見えるだけかを確認する

まず二つの問いを分けます:ホスト名のユニキャスト問い合わせはリゾルバーに尋ね、_ipp._tcp のブラウズはローカルリンクに尋ねます。Linux では avahi-browse -a がマルチキャスト DNS に見えるものを示し、resolvectl query name.local がリゾルバースタックがその名前をどう扱うかを示します。macOS では dns-sd -B _ipp._tcp が、先にアドレスを必要とせずに検出されたサービスを一覧表示します。

アドレスが応答して名前が応答しないなら、ルーティングは機能し、検出は機能していません。.local 名は avahi-browse がインストールされていなくても nss-mdns を介してホスト自身で解決できるため、その名前への getent や ping の成功は、検出がトンネルを越えた証拠にはなりません;ブラウズの結果とリゾルバーの結果は別の証拠です。アプリケーションは検出した内容をキャッシュするので、障害は接続時ではなく接続の数時間後に現れることがよくあります。アプリケーションを終了して開き直し、キャッシュされたエントリが名前かアドレスのどちらを持つかを確認してください、検出が止まった後もアドレスはずっと機能し続けるからです。

問い合わせがトンネルを越えない理由

マルチキャスト DNS は、ローカルネットワーク制御ブロック内の 224.0.0.251 に、UDP ポート 5353 で問い合わせを送ります。ルーターはそのブロックのアドレスを転送しないため、問い合わせは送られたリンクにとどまります。送信側は IP TTL、または IPv6 のホップ制限を 255 に設定し、ルーターをすでに越えたパケットを受信側が拒否できるようにします;プロトコルがリンク外のなりすましを検出するのはこの仕組みであり、ローカルにとどまる理由もここにあります。ローカル性は宛先アドレスから来るのであって、単一ホップの TTL から来るのではありません。

トンネルの種類も重要です。tun 形式のインターフェースは IP パケットだけを運び、それ以外は運ばないため、マルチキャストグループはそこを越えられません。tap 形式のブリッジはブロードキャストドメイン自体を拡張するため、一部の古い設計はルーティングではなくブリッジを行い、ブリッジがもたらす問題をすべて引き継ぎました。

信頼された LAN の例外は、どのトラフィックがトンネルを使えるかを決めるものであってトンネルにマルチキャストの転送を教えるものではないため、これを何も変えません。パケットには依然として、聞かれるための共有セグメントがありません。

支えられる命名設計を選ぶ

企業リソースには、VPN がプッシュするリゾルバーが提供するルーティング済みホスト名が持続的な答えであり、内部名は内部サーバーへ、それ以外はそうでない分割 DNS を併用します。Windows はこれを名前解決ポリシーテーブルとして公開し、macOS はインターフェースごとのスコープ付きリゾルバーを使い、ほとんどのクライアントには同等のプッシュ設定があります。デバイスは内部 DNS に通常の名前を保ち、検出は経路の一部でなくなります。

検出プロキシや mDNS リフレクターはこの隙間を橋渡しできますが、それは独自のホスト、露出、クライアント要件を持つ実際の設計です。ルートを追加したからといって現れるものではありません。.local の問い合わせをパブリックリゾルバーへ転送してはいけません:このドメインは RFC 6762 によりローカルのマルチキャスト用に予約されており、外へ送ると遅い失敗と不要なデータ開示を生みます。

名前ではなくサービスを検証する

ブラウズ一覧に名前があることは検出の段階を証明するだけで、サービスが応答することを証明しません。印刷キューか Web インターフェースを開き、実際の操作を完了してから、再接続後にもう一度繰り返してください。

検出は名前を積極的にキャッシュするため、古いエントリが成功に見えることがあります。証明書や認証のプロンプトが現れたら、それは次の層であり別の問題です。変更した仕組みがリゾルバーか検出かを書き留めておけば、次の人が同じ問いを最初から開き直さずに済みます。

関連記事