リゾルバの設定がプライベートアドレスからパブリックアドレスに切り替わり、結論はすぐにやってくる。トンネルが漏れている、と。そうであることもある。しかし多くの場合、フォールバックの問い合わせは依然としてトンネルの中で管理者が選んだリゾルバへ届いていた。それは欠陥ではなくポリシーの判断である。両者を切り分けるには一つの事実ではなく三つの事実が要る。最初は誰が応答したかである。誰が問い合わせを受け取ったのか、どの経路が運んだのか、どの名前が問われたのかを突き止めよう。

フォールバックはポリシーであり、単一の挙動ではない

優先リゾルバが応答をやめたとき、何をするかは各クライアントが決めなければならない。解決を止めることも、再試行することも、設定済みの代替を使うことも、OSに任せることもでき、プライバシーの観点ではこれは四つの別製品である。設定画面を読んでも、どの挙動が設定されているかは分かるが、どれが起きたかは分からない。スイッチが一つしかない画面は四つの可能性を説明していない。

ブラウザは独自の層を加える。 セキュアDNSを有効にしたブラウザ は、OSが別の場所を指していても、自分が選んだプロバイダ経由で名前を解決できる。つまり、本当に重要な要求についてはトンネルクライアントのポリシーが一度も参照されないかもしれない。要求を出したアプリを確認しよう。システム設定だけでは足りない。

代替リゾルバの身元が、まず確かめる価値のある最初の事実である。すでに信頼しているプロバイダの公開リゾルバは、たまたま接続しているネットワークが渡してきたアドレスとは違う状況だ。アドレスそのものは、どちらを見ているかをほとんど語らない。

切り替え後に問い合わせを受け取るのは誰か

受信先と経路は独立しており、その組み合わせだけが露出を表す。トンネル経由で到達する公開リゾルバはあなたのアクセス網アドレスを決して見ないが、同じリゾルバに直接到達すれば見る。どちらも応答は返るので、リゾルバのアドレスだけを報告する漏えいテストは両者を同じように描写してしまう。結果を読むときはアドレスだけでなくインターフェースも確認しよう。

内部名がこの区別を具体的にする。公開リゾルバは通常スプリットホライズンの名前には応答できないため、問い合わせは失敗する。しかしその名前は、見るべき立場になかった相手にすでに開示されている。ここでは可用性とプライバシーは引き換えではなく、同じ方向に動く。

トンネルは問い合わせを、VPN事業者が運用していないリゾルバへ運ぶこともある。トンネルは解決せず転送するからだ。転送するホストは平文の問い合わせを見てから、自分の接続を先へ開く。これは次のホップを守るが、最初のホップは守らない。

経路と受信先を一緒に確認する

設定ではなくパケットを観察する。どのリゾルバが使われるかをシステムに尋ね、次に問い合わせが本当に想定したインターフェースから想定したアドレスへ出たことを確かめる。

resolvectl status | grep -E "Current DNS Server|DNS Servers|DNSOverTLS"
dig +short example.com
tcpdump -ni any udp port 53 or tcp port 853

トンネルが上がっている間に問い合わせが物理インターフェースを出ていると記録が示すなら、リゾルバ一覧が何と言おうとフォールバックはトンネルを迂回した。トンネルのインターフェースに現れるなら、問いは遠端を誰が運用し何を保持するかに変わる。

内部名一つと公開名一つで同じ確認を繰り返す。内部の問い合わせこそ、フォールバック設定が自らを露呈する場所だ。応答できないリゾルバでも問いは受け取るからである。

フォールバックを許すべきか決める

優先リゾルバが使えないときに解決を止めることが要件なら、閉じた側に倒れる強制ポリシーを設定し、結果を受け入れる。障害の間は名前が解決されない。これは不具合ではなく意図した可用性の取引であり、設計は障害の前にそう書いておくべきだ。

要件がトンネルの外へ問い合わせを出さないことだけなら、トンネル経由で到達する公開リゾルバは、運用者とその保持ポリシーを理解している限り許容できる。その許容は暗号についての主張ではなく第三者についての判断であり、プライバシーの主張を持つ人のものだ。内部名が動き続ける必要があるなら、フォールバックは内部ゾーンを持つリゾルバでなければならない。つまり代替先は別のアドレスファミリではなく別のサーバだ。

結果を挙動についての一文として記録する。通常運用でどのリゾルバが問い合わせを受け取るのか、障害後にどれが受け取るのか、二番目の場合に内部名が解決されるのか。最後にページが読めるという漏えいテストは、その一文より弱い証明にしかならない。ページは決して尋ねるべきでなかったリゾルバ経由でも読み込めるからだ。

関連記事