Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

DNS フィルタリングをテストする

最終更新 Markdown で表示Agent セットアップ

このセクションでは、Gateway の DNS 設定を検証する方法を説明します。セットアップ後にポリシーをテストすると、本番で使う前に、クエリが想定どおりフィルタリングされていることを確認できます。

前提条件

始める前に、デバイスが Gateway に DNS クエリを送っていることを確認してください。次のいずれかで確認できます。

  • Cloudflare One Client — デバイスで Cloudflare One Client を動かしている場合、DNS クエリは自動的に Gateway 経由になります。
  • DNS ロケーション — Cloudflare One Client を使わない DNS のみの構成の場合は、ネットワークの DNS リゾルバーが Gateway DNS ロケーション の IP アドレスを向いていることを確認します。

DNS ポリシーをテストする

ドメインをブロックする DNS ポリシーを作成したら、dig(macOS と Linux で使えるコマンドラインの DNS 照会ツール)または nslookup(Windows で利用可能)で、ポリシーが意図どおり動いているかを確認できます。

たとえば example.com をブロックするポリシーを作った場合、Gateway が example.com を正しくブロックしているかは、次の手順で確認できます。

  1. ターミナルを開きます。

  2. dig example.com と入力します(Windows の場合は nslookup example.com)。Enter を押します。

  3. dig の出力で、ヘッダー行(;; ->>HEADER<<- で始まる行)の status: フィールドを確認します。ポリシーで ブロックページ がオフの場合、REFUSED と表示されます。これは、サーバーがクエリへの応答を拒否したことを示す DNS 応答コードです。

    dig example.com
    
    ; <<>> DiG 9.10.6 <<>> example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 6503
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;example.com.                   IN      A
    
    ;; Query time: 46 msec
    ;; SERVER: 172.64.36.1#53(172.64.36.1)
    ;; WHEN: Tue Mar 10 20:22:18 CDT 2020
    ;; MSG SIZE  rcvd: 29

    ポリシーで ブロックページ がオンの場合、ヘッダーに NOERROR(クエリが解決されたことを意味します)と表示され、回答として 162.159.36.12162.159.46.12 が返ります。これらは Cloudflare のブロックページ用 IP アドレスです。

    dig example.com
    
    ; <<>> DiG 9.10.6 <<>> example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR id: 14531
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1452
    ;; QUESTION SECTION:
    ;example.com.                   IN      A
    
    ;;ANSWER SECTION:
    example.com.            60      IN      A                  162.159.36.12
    example.com.            60      IN      A                  162.159.46.12
    
    ;; Query time: 53 msec
    ;; SERVER: 172.64.36.1#53(172.64.36.1)
    ;; WHEN: Tue Mar 10 20:19:52 CDT 2020
    ;; MSG SIZE  rcvd: 83

セキュリティカテゴリまたはコンテンツカテゴリをテストする

セキュリティカテゴリ または コンテンツカテゴリ をブロックしている場合は、各カテゴリに紐づく テストドメイン でポリシーが動いているかを確認できます。

Gateway ポリシーでそのカテゴリをブロックしたあと、ブラウザーでテストドメインにアクセスするとブロックページが表示されます。コマンドラインで dig を実行すると REFUSED が返ります。

テストドメインの形式

  • 1 語のカテゴリ — 名前が 1 語のカテゴリ(例: Malware)では、テストドメインは次の形式です。

    <NAME_OF_CATEGORY>.testcategory.com
  • 複数語のカテゴリ — 名前が複数語のカテゴリ(例: Parked & For Sale Domains)では、テストドメインは次の形式です。

    • 単語間のスペースを削除する
    • &and に置き換える
    • すべての文字を小文字にする

よく使うテストドメイン

カテゴリ テストドメイン
Anonymizer anonymizer.testcategory.com
Command and Control & Botnet commandandcontrolandbotnet.testcategory.com
compromised Domain compromiseddomain.testcategory.com
Cryptomining cryptomining.testcategory.com
Malware malware.testcategory.com
New Domains newdomains.testcategory.com
Parked & For Sale Domains parkedandforsaledomains.testcategory.com
Phishing phishing.testcategory.com
Potentially Unwanted Software potentiallyunwantedsoftware.testcategory.com
Private IP Address privateipaddress.testcategory.com
Spam spam.testcategory.com
Spyware spyware.testcategory.com
Unreachable unreachable.testcategory.com

EDNS の設定をテストする

EDNS client subnet(ECS)は、ユーザーの IP アドレスの一部を権威 DNS ネームサーバーに送る DNS 拡張です。地理的に最適な回答を返すために使います。Cloudflare はプライバシーを保ちつつ位置情報を渡すため、ユーザー IP の先頭 /24 だけを送ります。DNS ロケーションで EDNS client subnet を有効にしている 場合は、次の手順で検証できます。

  1. DNS ロケーションの DoH(DNS over HTTPS)サブドメインを確認します。

    1. Cloudflare ダッシュボード で、Zero Trust > Networks > Resolvers & Proxies > DNS locations を開きます。
    2. テスト対象の DNS ロケーションを選択します。
    3. DNS over HTTPS の値を控えます。
  2. ターミナルを開き、次のコマンドを実行します。

    curl 'https://<DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query?type=TXT&name=o-o.myaddr.google.com' -H 'Accept: application/dns-json' | json_pp

    出力に EDNS client subnet が含まれます。

    {
    	"AD": false,
    	"Answer": [
    		{
    			"TTL": 60,
    			"data": "\"108.162.218.211\"",
    			"name": "o-o.myaddr.google.com",
    			"type": 16
    		},
    		{
    			"TTL": 60,
    			"data": "\"edns0-client-subnet 136.62.0.0/24\"",
    			"name": "o-o.myaddr.google.com",
    			"type": 16
    		}
    	],
    	"CD": false,
    	"Question": [
    		{
    			"name": "o-o.myaddr.google.com",
    			"type": 16
    		}
    	],
    	"RA": true,
    	"RD": true,
    	"Status": 0,
    	"TC": false
    }
  3. EDNS client subnet を確認するには、送信元 IP アドレスを取得します。

    curl ifconfig.me
    136.62.12.156%

    送信元 IP アドレスは、EDNS client subnet で指定された /24 範囲に含まれるはずです。

DNS キャッシュをクリアする

最近の Web ブラウザーと OS は、一定時間 DNS レコードをキャッシュします。DNS レコードの要求があると、まずブラウザーキャッシュが確認されます。応答がすでにキャッシュされていると、DNS ポリシーが効いていないように見えることがあります。

DNS キャッシュをクリアするには、次の手順を使います。

ChromeOS

  1. chrome://net-internals/#dns を開きます。
  2. Clear host cache を選択します。

Windows

  1. 管理者のコマンドプロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。
ipconfig /flushdns

macOS

  1. ターミナルを開きます。
  2. 次のコマンドを実行します。
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache

役に立ちましたか?