※ 2019 年 10 月 3 日現在の情報をもとに作成しています
1. はじめに
本記事では、Umbrella の DNS サーバー (208.67.222.222/208.67.220.220) がドメインの名前解決に失敗した時の動作について解説します。
2. 名前解決の流れ
Umbrella の DNS サーバーは、ユーザーから DNS リクエストを受け取ると、まずは Umbrella Dashboard のポリシー設定と照らし合わせて、そのドメインが白か黒か (Intelligent Proxy 機能が有効の場合はグレーか) の判定をします。
そして、最終的に黒と判断された場合、ユーザーにブロック ページ用の IP アドレスを返し、Web ブラウザにはブロック画面が表示されます。
一方、最終的に白と判断された場合、Umbrella の DNS サーバーは、一般的なフル サービス リゾルバ (ユーザーの問い合わせに対応するタイプの DNS サーバー) と同様にドメインの名前解決を行い、得られた IP アドレスをユーザーに返します。
3. 名前解決に失敗した時の動作
前項で説明したとおり、Umbrella の DNS サーバーがドメインの名前解決を行うのは、ドメインの白黒判定で最終的に白と判断された場合のみです。そして、この名前解決に失敗した場合、一般的なフル サービス リゾルバと同様に、その結果を伝える応答コード (RCODE) をユーザーに返します。
例えば、問い合わせたドメイン名が存在しない場合、応答コード 3 (NXDOMAIN) を返します。以下は Umbrella の DNS サーバーに対して存在しないドメインの DNS リクエストを送る dig コマンドの出力結果 (一部抜粋) で、応答コードを確認することができます。
>dig sonzaishinai.domain @208.67.222.222
; <<>> DiG <<>> sonzaishinai.domain @208.67.222.222
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 44650
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
また、 Umbrella の DNS サーバーが権威 DNS サーバー (ドメインの管理をするタイプの DNS サーバー) に問い合わせをしたものの、サーバーがダウンしているなどが理由で応答を得られない場合などは、ユーザーに応答コード 2 (SERVFAIL) を返します。
なお、これらの応答コードが返ってきた場合の Web ブラウザの表示ですが、実際の内容は Web ブラウザの実装に依存しますが、一般的に「名前解決に失敗した」や「サイトにアクセスできない」という旨のエラー メッセージが画面に表示されます。
4. 悪意あるドメインが削除された場合
Umbrella が悪意ある未知のドメインを見つけ、そのドメインを Malware などのカテゴリに分類した後に、ドメインの管理者が証拠隠滅を図ってそのドメインを削除するケースがよく見られます。
この場合でも、Umbrella はドメインが復活する可能性があるため、基本的にカテゴリから外しません。そのため、実際にドメインは存在していなくても、Web ブラウザにはブロック ページが表示されることが起こりえます。
5. ドメインがグレーの場合
Umbrella の DNS サーバーが問い合わせを受けたドメインをグレーと判断した場合、ユーザーに Intelligent Proxy サーバーの IP アドレスが返されます。そして、それに基づいて Web ブラウザは Intelligent Proxy サーバーに対して HTTP/S リクエストを送ります。
もし、Intelligent Proxy サーバーが実際の Web サーバーからコンテンツを取得することになった場合、Intelligent Proxy サーバーが名前解決を行うことになります。そして、可能性はまれですが、その名前解決に失敗した場合は、最終的にこちらの記事で紹介されている Intelligent Proxy のエラー画面が Web ブラウザに表示されることになります。