※ 2019 年 10 月 8 日現在の情報をもとに作成しています
1. はじめに
Umbrella の DNS サーバー (208.67.222.222/208.67.220.220) は、ユーザーから送られた DNS リクエストのドメインについて白黒の判定を行いますが、DNS レコードの種類 (A レコードなど) に応じて、判定結果とその後の処理を変える場合があります。本記事では、その詳細について取り上げたいと思います。
2. ブロック ページの IP アドレスを返す場合
ユーザーが Web ページにアクセスする際、ドメイン名の IP アドレスを調べるために、「A レコード」を指定した DNS リクエストが Umbrella の DNS サーバーに送られますが、この「A レコード」も DNS レコードの一種です。
Umbrella の DNS サーバーは、このドメインが「白」であると判断した場合、正しい IP アドレスをユーザーに返しますが、「黒」であると判断した場合、ブロック ページ用のサーバーの IP アドレスをユーザーに返します。
そして、後者の場合、ユーザーが受け取った IP アドレスをもとに Web アクセスを行い、最終的にユーザーの Web ブラウザにブロック ページが表示されます。

以上のような「ブロック ページ用のサーバーの IP アドレスを返す仕組み」は、Web アクセスの際に使われる A レコード (または AAAA レコード) の場合に有効な方法となります。
3. REFUSED を返す場合
Web アクセス以外の通信における DNS リクエストでは、A レコード以外のレコードの種類が使われる可能性があります。そのような場合、その後に Web アクセスが行われないため、ブロック ページ用のサーバーの IP アドレスを返す方法は必ずしも有効ではありません。
そこで、Umbrella の DNS サーバーでは、ANY、CNAME、PTR、RRSIG、SPF、SRV、TXT などの DNS リクエストが黒と判断された場合、基本的に DNS レスポンスの応答コード (RCODE) に「REFUSED (拒否)」を設定してユーザーに返します。
以下は、具体的に dig コマンドを使って、フィッシング サイトのドメインを TXT レコードで問い合わせた際の出力結果例 (一部抜粋) です。
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 22821
このように DNS レスポンスが REFUSED となった場合、本来返されるべき情報が返らないため、それ以降のユーザー側の処理を防げます。
ただし、コンテンツ カテゴリによるフィルタリング、およびセキュリティ カテゴリの Dynamic DNS は REFUSED の対象外となっており、以下の出力結果のように拒否されることなく NOERROR などが返ります。
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35022
なお、この中の TXT レコードの挙動については、別途、以下のサポート文書にも説明があります。
Why doesn't Umbrella block TXT records?
https://support.umbrella.com/hc/en-us/articles/115005949046-Why-doesn-t-Umbrella-block-TXT-records-
4. 全くブロックしない場合
MX レコードなどのそれ以外のレコードに関しては、主にサービスの継続性の観点から DNS レベルでのブロックが妥当ではないと考えられることが多く、Umbrella でも基本的にブロックはされません。
以下は、フィッシング サイトのドメインを MX レコードで問い合わせた際の出力結果例です。
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27460
ただし、セキュリティ カテゴリの DNS Tunneling VPN に該当する場合は例外で、基本的にどのレコードの種類でも REFUSED となります。
5. 一覧表
これまで説明してきた内容を以下の表にまとめました。〇となっているアクセスが防がれます。
レコードの種類
|
セキュリティ カテゴリ (DNS Tunneling VPN)
|
Destination Lists の Block list
|
セキュリティ カテゴリ (その他)
|
セキュリティ カテゴリ (Dynamic DNS)
|
コンテンツ カテゴリ
|
黒の場合に行われる処理
|
A、AAAA
|
〇
|
〇
|
〇
|
〇
|
〇
|
ブロック ページ用の サーバーの IP アドレスを返す
|
ANY、CNAME、PTR、RRSIG、SPF、SRV、TXT
(それ以外にも、OBSOLETE、EXPERIMENTAL の扱いになっているものなど)
|
〇
|
〇
|
〇
|
×
|
×
|
応答コードに REFUSED を入れて返す
|
その他 (MX など)
|
〇
|
×
|
×
|
×
|
×
|
応答コードに REFUSED を入れて返す
|
※ 一部の Network Devices では、ANY、CNAME、PTR、RRSIG、SPF、SRV、TXT などの DNS リクエストに対して、Umbrella の DNS サーバーへの転送そのものを行わず、結果として REFUSED とはならない場合があります
なお、これまで取り上げてきた各レコードの種類の説明が、以下のサポート記事にあります。
Common DNS Request Types
https://support.umbrella.com/hc/en-us/articles/232252848-Common-DNS-Request-Types