よくある質問

General

Google Public DNS とは

Google Public DNS は無料のグローバル ドメイン ネーム システム(DNS)解決サービスで、現在の DNS プロバイダの代わりに使用できます。

Google が DNS サービスに取り組む理由は何ですか?

より高速で安全な DNS インフラストラクチャにより、ウェブ ブラウジングのエクスペリエンスが大幅に向上すると確信しています。Google Public DNS は、速度、セキュリティ、結果の妥当性の面で多くの改善を行っています。これらの改善はウェブ ドキュメントで公開されており、ウェブ コミュニティでの継続的な会話に貢献しています。

Google Public DNS を使用してドメイン名をホストすることはできますか?

Google Public DNS は権威 DNS ホスティング サービスではないため、使用できません。Google のインフラストラクチャを使用して、大規模でプログラム可能な権威ネームサーバーをお探しの場合は、Google の Cloud DNS をお試しください。

Google Public DNS では、不要なサイトをブロックまたは除外できますか?

Google Public DNS は、純粋な DNS の解決とキャッシュ保存のサーバーです。Google のユーザーをセキュリティの脅威から保護する必要があると判断した場合、異常なケースで特定のドメインを解決できない場合を除き、あらゆる種類のブロックやフィルタリングは実行しません。ただし、ブロック機能は通常、クライアントによって最適に実行されると Google は考えています。このような機能を有効にする場合は、クライアント サイドのアプリケーションまたはブラウザのアドオンをインストールすることを検討してください。

Google Public DNS でプロダクト間の依存関係はありますか。

Google Public DNS は独立したサービスです。

Google Public DNS を使用するには Google アカウントが必要ですか?

Google Public DNS を使用するのにアカウントは必要ありません。

Google Public DNS は、ISP の DNS サービスやその他のオープン DNS リゾルバとどう違うのですか?改善すべきかどうか確認するにはどうすればよいですか?

オープン リゾルバと ISP はすべて DNS 解決サービスを提供しています。Google Public DNS は、プライマリまたはセカンダリ DNS リゾルバとして、他の代替 DNS サービスと一緒に試用することをおすすめします。DNS リゾルバの特定にあたっては、レスポンスの速度、信頼性、セキュリティ、有効性など、さまざまな点を考慮する必要があります。Google Public DNS とは異なり、一部の ISP やオープン リゾルバは、商用目的で DNS レスポンスをブロック、フィルタリング、リダイレクトします。

Google Public DNS は存在しないドメインをどのように処理しますか?

存在しないドメイン名のクエリを発行すると、Google Public DNS は常に DNS プロトコル標準に従って NXDOMAIN レコードを返します。ブラウザでは、このレスポンスが DNS エラーとして表示されます。別のメッセージにリダイレクトされた(別のページにリダイレクトされたなど)場合は、次の原因が考えられます。

  • ブラウザ プラグインなどのクライアント サイド アプリケーションに、存在しないドメイン用の代替ページが表示されています。
  • 一部の ISP では、すべての NXDOMAIN レスポンスをインターセプトして、独自のサーバーに誘導するレスポンスに置き換える場合があります。ISP が Google Public DNS のリクエストまたはレスポンスを傍受していると思われる場合は、ISP にお問い合わせください。

Google Public DNS は今後、広告の配信に使用されますか?

Google は、DNS プロトコルの完全性の維持に努めています。 Google Public DNS は、存在しないドメインに対する広告サーバーのアドレスを返すことはありません。

DNS over HTTPS(DoH)とは

暗号化された HTTPS 接続での DNS 解決。DNS over HTTPS は、スタブ リゾルバと再帰リゾルバの間のプライバシーとセキュリティを大幅に強化し、DNSSEC を補完して、エンドツーエンドで認証された DNS ルックアップを提供します。

使用とサポート

現在、別の DNS サービスを使用しています。Google Public DNS も使用できますか?

Google Public DNS は、現在の DNS リゾルバとともに、プライマリまたはセカンダリ DNS リゾルバとして設定できます。オペレーティング システムは DNS リゾルバの取り扱いが異なることに注意してください。プライマリ リゾルバを優先し、プライマリが応答しなかった場合にのみセカンダリを使用するものと、各リゾルバ間のラウンドロビンを行うものがあります。

構成されたリゾルバのセキュリティやフィルタリングに差異がある場合、すべてのリゾルバのセキュリティ レベルまたはフィルタリングが最も弱くなります。NXDOMAIN のフィルタリングやブロックページへのリダイレクトが機能する場合もありますが、すべてのリゾルバが SERVFAIL を返すまで、SERVFAIL はドメインをブロックしません。

Google Public DNS は、あらゆる種類のインターネット対応デバイスに適していますか?

Google Public DNS は、標準に準拠したネットワーク デバイスで使用できます。Google Public DNS が機能しない状況を見つけた場合は、お知らせください。

オフィスのパソコンで Google Public DNS を実行できますか?

一部のオフィスでは、プライベート ネットワークを使用して、仕事以外でアクセスできないドメインにアクセスできます。Google Public DNS を使用すると、これらのプライベート ドメインへのアクセスが制限される可能性があります。オフィスのパソコンで Google Public DNS を使用する前に、IT 部門のポリシーをご確認ください。

Google Public DNS はどの国で利用できますか?

世界中のインターネット ユーザーが利用できますが、実際のエクスペリエンスはユーザーのロケーションによって大きく異なる場合があります。

Google Public DNS はすべての ISP で使用できますか?

Google Public DNS は、ネットワーク DNS 設定を変更できることを前提としていますが、ほとんどの ISP で機能します。

Google Public DNS の両方の IP アドレスを使用する必要はありますか?

いずれかの IP アドレスを使用するだけで、Google をプライマリ サービスとして使用できます。ただし、プライマリ サーバーとセカンダリ サーバーの両方に同じアドレスを指定しないように注意してください。

IP アドレスを指定する順序は重要かどうか。

順序は関係ありません。IP はプライマリまたはセカンダリ ネームサーバーにできます。

サービスの SLA はどうなっていますか。

無料の Google Public DNS サービスには、サービスレベル契約(SLA)はありません。

ISP を実行しています。ユーザーを Google Public DNS にリダイレクトできますか?

ISP で Google Public DNS を使用する場合は、ISP の手順に沿って、Google Public DNS にクエリを送信する前に何も行う必要があるかを確認する必要があります。

Google Public DNS チームからサポートを受けるにはどうすればよいですか?

Google グループに参加して、チームから役立つ最新情報を入手したり、不明な点がないか質問したりすることをおすすめします。問題が発生したため、報告する場合は、問題の報告をご覧ください。

技術

Google Public DNS はクエリの送信先をどうやって知るのですか?

エニーキャスト ルーティングにより、クエリが最も近い Google Public DNS サーバーに転送されます。エニーキャスト ルーティングの詳細については、Wikipedia のエントリをご覧ください。

Google Public DNS は、DNS ルートゾーンとトップレベル ドメインのゾーンで公開されているネームサーバー(NS)レコードを使用して、任意のドメインの権威 DNS サーバーの名前とアドレスを検索します。これらのネームサーバーの一部は、エニーキャスト ルーティングも使用しています。

現在のサーバーの場所

Google Public DNS サーバーは世界中で利用できます。この質問には 2 つの答えがあります。1 つはクライアント用、もう 1 つは DNS サーバー用で、Google Public DNS はそれをクライアントに返す回答を返します。

クライアントが Google Public DNS にクエリを送信すると、使用されたエニーキャスト アドレス(8.8.8.88.8.4.4、または 2001:4860:4860:: の IPv6 アドレス)をアドバタイズする最も近い場所にルーティングされます。これらのエニーキャスト アドレスにアドバタイズする特定のロケーションは、ネットワーク状態とトラフィック負荷に応じて変化し、Google エッジ ネットワークのほぼすべてのコア データセンターとエッジ拠点(PoP)が含まれます。

Google Public DNS は、コアデータセンターと Google Cloud リージョンのロケーションから信頼できるサーバーにクエリを送信します。Google は、Google Public DNS が権威 DNS サーバーにクエリする際に使用できる IP アドレス範囲のリストを公開しています(このリストに含まれる範囲がすべて使用されるわけではありません)。EDNS クライアント サブネット(ECS)のデータがない DNS クエリの地理的位置を確認したり、Google Public DNS からのより高いクエリレートを許可するように ACL を構成したりできます。

このよくある質問に加えて、Google はリストを DNS の「TXT」レコードとして公開します。 Google では、毎週ソースを追加、変更、削除して更新します。 各 IP アドレス範囲のエントリには、最寄りの空港の IATA コードが含まれています。 GeoIP データまたは ACL の自動化では、このウェブページをスクレイピングするのではなく、DNS を介してこのデータを取得します(下記の例を参照)。

Google Public DNS がクエリの送信に使用する IP アドレス範囲のロケーション

    

プログラムによる位置情報の取得

アドレス範囲は JSON ファイルとして取得できます。

curl https://www.gstatic.com/ipranges/publicdns.json

次の Python スクリプトを使用して、Google Public DNS が権威 DNS サーバーへのクエリに使用する IP アドレス範囲のリストを作成できます。

このデータは、locations.publicdns.goog. で TXT レコードとしても利用できます。ただし、データサイズとは、DNS TXT レコードが適切な形式ではなくなったことを意味します。TXT レコードは、上記の JSON 形式のファイルに置き換えられます。TXT レコードを使用している場合は、今後 TXT レコードを削除する予定であるため、JSON ファイルに切り替えてください。

コマンドライン

curljq ツールを使用して、コマンドラインから Google Public DNS の IP 範囲を抽出できます。

curl https://www.gstatic.com/ipranges/publicdns.json | jq '.prefixes[]  | .ipv4Prefix // .ipv6Prefix '

これには、以下のものが必要です。

Python

次の Python スクリプトを使用して、Google Public DNS で使用される IP アドレス範囲のリストを作成できます。

#!/usr/bin/env python3
"""An example to fetch and print the Google Public DNS IP ranges."""

import ipaddress
import json
import urllib.request

publicdns_url = 'https://www.gstatic.com/ipranges/publicdns.json'


def read_url(url):
  try:
    s = urllib.request.urlopen(url).read()
    return json.loads(s)
  except urllib.error.HTTPError:
    print('Invalid HTTP response from %s' % url)
    return {}
  except json.decoder.JSONDecodeError:
    print('Could not parse HTTP response from %s' % url)
    return {}


def main():
  publicdns_json = read_url(publicdns_url)
  print('{} published: {}'.format(publicdns_url,
                                  publicdns_json.get('creationTime')))

  locations = dict()
  ipv4, ipv6 = set(), set()
  for e in publicdns_json['prefixes']:
    if e.get('ipv4Prefix'):
      ip = ipaddress.IPv4Network(e.get('ipv4Prefix'), strict=False)
      ipv4.add(ip)
    if e.get('ipv6Prefix'):
      ip = ipaddress.IPv6Network(e.get('ipv6Prefix'), strict=False)
      ipv6.add(ip)
    locations[ip] = e.get('scope')
  print('IP ranges used by Google Public DNS for contacting '
        'authoritative DNS servers:')
  for i in list(ipv4) + list(ipv6):
    print(i, locations[i])


if __name__ == '__main__':
  main()

macOS の場合、このスクリプトを使用するには、次の構成の Python 3 ランタイムが必要です。

  • macOS 用 Python 3 ランタイムの現在のバージョンをインストールします。
  • Applications フォルダの Python フォルダにある Install Certificates.command を実行し、Python ランタイムで使用する信頼できるルート証明書のリスト(cert.pem)をインストールします。VERSION は、インストールした Python のバージョン(3.8 など)で置き換えます。
    sudo "/Applications/Python VERSION/Install Certificates.command"

Google Public DNS は BIND などのオープンソース ソフトウェアをベースにしていますか?

Google Public DNS は、DNS 標準の Google 独自の実装です。

Google Public DNS コードをオープンソース ソフトウェアとしてリリースする予定はありますか?

現時点では、Google Public DNS をオープンソース化する予定はありません。ただし、スピード、セキュリティ、標準のコンプライアンスを高めるために行ったすべての手順を詳細に説明しています。

Google Public DNS は IPv6 をサポートしていますか?

Google Public DNS は、IPv6 接続のあるクライアントからの受信リクエスト用に IPv6 アドレスを設定し、IPv6 アドレスに対するすべてのリクエストに応答して AAAA レコードを返します(存在する場合)。IPv6 専用の権威ネームサーバーを完全にサポートしています。IPv6 リゾルバ アドレスは、Google Public DNS のスタートガイドに記載されています。

IPv6 結果は Google のウェブサイトで表示されない場合があります。 ユーザー エクスペリエンスを最適化するため、Google は優れた IPv6 接続を持つクライアントにのみ AAAA レコードを提供しています。このポリシーは、Google Public DNS から完全に独立しており、Google の権威ネームサーバーによって適用されます。詳細については、Google over IPv6 のページをご覧ください。

IPv6 のみのネットワークおよびシステムの場合、Google Public DNS64 を使用して、A レコードを持つドメイン名の合成 AAAA レコードを取得できますが、AAAA レコードは取得できません。合成された AAAA レコードは、NAT64 サービス用に予約されたよく知られた IPv6 接頭辞を使用して、IPv6 のみのクライアントを NAT64 ゲートウェイに転送します。スタートガイドの手順に沿ってシステムを構成するだけで、リゾルバのアドレスは DNS64 IPv6 構成に置き換えられます。

Google Public DNS は DNSSEC プロトコルをサポートしていますか?

Google Public DNS は検証可能なセキュリティに対応したリゾルバです。DNSSEC で署名されたゾーンからのすべてのレスポンスは、クライアントが DNS リクエストで明示的に CD フラグを設定して検証を無効にしない限り、検証されます。

DNSSEC を使用しているかどうかを確認するには、どうすればよいですか?

http://www.dnssec-failed.org/ にアクセスすると、簡単なテストを行うことができます。このサイトは、認証チェーンの破損による DNS エラーを返すように特別に構成されています。エラーが返されない場合は、DNSSEC を使用していません。

Google Public DNS は、DNSSEC 検証で不合格だったルックアップをどのように処理しますか?

Google Public DNS は、(構成の誤り、RRSIG レコードの欠落や誤りなどにより)レスポンスを検証できない場合は、代わりにエラー レスポンス(SERVFAIL)を返します。ただし、影響が大きかった場合(たとえば、非常に人気のあるドメインが検証で不合格だった場合など)は、問題が解決されるまでゾーンでの検証が一時的に無効になることがあります。

特定のドメインが DNSSEC 検証で不合格だった理由を知るにはどうすればよいですか?

Verisign Labs' DNS Analyzer と Sandia National Laboratories' DNSViz は、任意のドメインの DNSSEC 認証チェーンを表示する 2 つの DNSSEC 可視化ツールです。破損箇所を示し、DNSSEC エラーの原因を調査するのに役立ちます。

Google Public DNS が古いデータを提供データを強制的に更新できますか?

フラッシュ キャッシュ ツールを使用して、一般的なレコードタイプとほとんどのドメイン名の Google Public DNS キャッシュを更新できます。フラッシュするためにドメインの所有権を証明する必要はありませんが、サービスの自動悪用を制限する reCAPTCHA を解決する必要があります。

登録またはサブ委任されたドメインのレコードタイプを NS レコードでフラッシュすると、そのタイプのキャッシュ内のレスポンスはフラッシュされます。また、そのドメインのネームサーバーに関する委任情報もフラッシュされます。ネームサーバーを(登録事業者または DNS ホスティング プロバイダを変更して)最近変更した場合は、www のようなサブドメインをフラッシュする前に、ネームサーバーが古い DNS サーバーの古いデータから更新されないようにすることが重要です。

Google Public DNS が古い CNAME レコードを使用して回答を返す場合は、各 CNAME ドメインの CNAME レコードタイプをフラッシュし、チェーン内の最後の CNAME から開始して、クエリ名に戻す必要があります。すべての CNAME をフラッシュした後、古い CNAME で応答するレコードタイプでクエリ名をフラッシュします。

フラッシュできるものにはいくつかの制限があります。

  • 位置情報に EDNS クライアント サブネット(ECS)を使用するドメインはフラッシュできません。ECS を使用するすべてのドメインでは、ECS 対応レコードの TTL は、フラッシュする必要のない短い(15 分以内)ように設定します。

  • すべてのサブドメイン、またはドメイン名のすべてのレコードタイプをフラッシュする唯一の方法は、フラッシュするドメイン名ごとに各レコードタイプをフラッシュすることです。これが実用的でない場合、レコードの TTL が期限切れになるまで常に待機できます(これは、実際の TTL が長い場合でも、通常 6 時間に制限されます)。

  • пример.example などの国際化ドメイン名をフラッシュするには、ピュニコード化されたフォーム(上記の例では xn‑‑e1afmkfd.example)を使用します。ASCII 文字、数字、ハイフン、アンダースコア以外の文字を含むドメインはフラッシュできません。

Google Public DNS では、クライアントとの通信を暗号化することで、いわゆる「ラストホップ」を保護していますか?

従来の DNS トラフィックは、暗号化されずに UDP または TCP 経由で転送されます。また、DNS over TLSDNS over HTTPS も用意されており、クライアントと Google Public DNS 間のトラフィックを暗号化しています。https://dns.google でお試しください。

DNSSEC がすでに維持されているのに、HTTPS over DNS が必要なのはなぜですか?

DNS over HTTPS と DNSSEC は補完しています。Google Public DNS は、可能な限り DNSSEC を使用して、ネームサーバーからのレスポンスを認証します。ただし、Google Public DNS からの従来の UDP または TCP レスポンスを安全に認証するには、クライアントが DNSSEC 検証自体を繰り返す必要があります。現在、クライアント リゾルバはこれをほとんど行いません。DNS over HTTPS は、スタブ リゾルバと Google Public DNS 間のトラフィックを暗号化し、DNSSEC を補完して、エンドツーエンドで認証される DNS ルックアップを行います。

Google Public DNS のパフォーマンスを他の DNS サービスのパフォーマンスと比較するために使用できるツールはありますか?

Google Public DNS の応答時間の測定に使用できる多数の無料ツールが用意されています。Namebench をおすすめします。使用するツールに関係なく、統計的有意性のある結果を得るには、5, 000 個を超える多数のドメインに対してツールを実行する必要があります。 テストの実行には時間がかかりますが、少なくとも 5,000 ドメインを使用することで、ネットワーク レイテンシ(パケットロスと再送信)による変動が最小限に抑えられ、Google Public DNS の大規模なネーム キャッシュが十分に処理されます。

Namebench にドメイン数を設定するには、テスト数 GUI オプションまたは -t コマンドライン フラグを使用します。詳細については、Namebench のドキュメントをご覧ください。

Google Public DNS リゾルバに対して ping または traceroute を実行すると、レスポンスのレイテンシが他のサービスのレイテンシよりも長くなります。Google Public DNS が常に遅くなるという意味ですか?

ping 時間に加えて、名前を解決するための平均時間も考慮する必要があります。 たとえば、ISP の ping 時間が 20 ミリ秒で、名前の平均解決時間が 500 ミリ秒の場合、全体の平均レスポンス時間は 520 ミリ秒です。Google Public DNS の ping 時間は 300 ミリ秒で、多くの名前を 1 ミリ秒で解決する場合、全体的な平均応答時間は 301 ミリ秒です。より良いテスト名を設定することをおすすめします。

Google Public DNS は CDN の位置情報でどのように機能しますか?

ダウンロード可能なマルチメディア サービスやストリーミング マルチメディアを提供する多くのサイトは、Akamai などの DNS ベースのサードパーティ コンテンツ配信ネットワーク(CDN)を使用してコンテンツをホストします。DNS リゾルバが、CDN の IP アドレスの権威ネームサーバーに照会すると、ネームサーバーは、ユーザーではなく、リゾルバに最も近い(ネットワーク距離内の)アドレスを返します。ISP ベースのリゾルバと Google Public DNS などのパブリック リゾルバが、ユーザーの近くにないことがあります。このような場合、ブラウジング体験が多少遅くなる可能性があります。 Google Public DNS は、この点で他の DNS プロバイダと同じです。

DNS サーバーとユーザーの間の距離を短縮するため、Google Public DNS はサーバーを世界中にデプロイしています。特に、ヨーロッパのユーザーはヨーロッパの CDN コンテンツ サーバーに、アジアのユーザーはアジアの CDN サーバーに転送され、米国東部、中部、西部のユーザーは各リージョンの CDN サーバーに転送する必要があります。また、CDN がマルチメディア ユーザーに優れた DNS 結果を提供できるように、この情報も公開されています。

また、Google Public DNS は、RFC に記載されている EDNS クライアント サブネットと呼ばれる技術ソリューションを使用します。これにより、リゾルバは DNS メッセージの送信元 IP としてクライアントの IP アドレスの一部(IPv4/IPv6 の場合はそれぞれ最初の 24/56 ビット以下)を渡すことができるため、ネームサーバーはリゾルバのアドレスではなく、ユーザーのロケーションに基づいて最適化された結果を返すことができます。

プライバシー

Google Public DNS サービスを使用すると、どのような情報が Google に記録されますか?

Google が収集する情報の一覧については、Google Public DNS のプライバシー ページをご覧ください。Google Public DNS は、Google のプライバシー センターに掲載されている Google のメインのプライバシー ポリシーを遵守しています。

クライアント IP アドレスは、一時的に(1 ~ 2 日以内に)消去されます。ただし、ISP と都市/大都市圏レベルのロケーションの情報は、Google のサービスの迅速化、改善、セキュリティ強化のために長く保持されます。

収集した情報は Google アカウントに保存されますか?

保存されているデータが Google アカウントに関連付けられることはありません。

Google は、Google Public DNS サービスから収集した情報を Google 以外のユーザーと共有しますか?

いいえ。ただし、法的手続きや強制執行可能な政府の要請など、Google のプライバシー ポリシーに記載されている限られた状況を除きます。(ユーザーデータのリクエストに関する Google の透明性レポートもご覧ください)。

Google は、一時的または永続的なログからの情報を、他のサービスに対して Google に提供した個人情報と関連付けたり、組み合わせたりしますか?

プライバシー ページに記載されているとおり、Google がこのようにログデータを結合または関連付けすることはありません。