ISP 向け Google Public DNS

インターネット サービス プロバイダ(ISP)や大規模な組織など、誰でも Google Public DNS を自由に使用できますが、サービスを保護するために各クライアントにレート制限が適用されます。1 つの IPv4 アドレス(または IPv6 /64 ネットワーク接頭辞)からの大量のクエリが、これらの上限を超えると、抑制される可能性があります。

Google Public DNS を使用する前に

クライアントがクエリを Google Public に直接送信し、キャリアグレード NAT(CG-NAT)を使用して IPv4 アドレスにマッピングしない場合は、この手順をスキップして、Google Public DNS を直接使用するの手順を行います。

  1. 最大 DNS クエリ/秒(QPS)レートを特定できます。

    これは、ネットワーク デバイスの NetFlow や sFlow データ、またはリゾルバの統計情報やクエリログで測定できます。これらのいずれもできない場合は、DNS クエリレートを推定してください。

    ピークレートでは、瞬間的なバーストはカウントしませんが、最もトラフィックの多い時間帯に 1 ~ 2 秒の平均トラフィックとしてカウントします。Google Public DNS では、短時間のトラフィック バーストが上限を超過することもあります。

  2. DNS クエリを送信できるルーティング可能な IP アドレスの数を確認します。

    共有リゾルバを使用して DNS クエリを集約(およびキャッシュ)する場合は、リゾルバが使用する外部 IP アドレスの数をカウントします。

    デバイスが Google Public DNS に直接 DNS クエリを送信する場合、デバイスが使用する外部 IP アドレスの数をカウントします。このとき、NAT またはキャリア グレードの NAT アドレス マッピングが考慮されます。

  3. IP アドレスごとのレートとデフォルトのレート制限を比較します。

    IP アドレスごとに特定のレートを用意するのが理想的ですが、全体的な QPS レートを IP アドレスの数で割ってもかまいません。

    • IP アドレスごとの QPS レートが 1,500 QPS 未満

      Google Public DNS は自由に構成できます。レート制限の引き上げをリクエストする必要はありません。

    • IP アドレスごとの QPS レートが 1,500 QPS を超える

      ネットワーク上のデバイスが Google Public DNS に直接クエリを実行でき、IP アドレスごとの QPS が制限を下回る場合、レート制限を引き上げずにこのアプローチを使用できます。

      それ以外の場合は、レート制限の増加をリクエストする必要があります。

  4. Google Public DNS の使用を構成する

    次のセクションで説明するいずれかの方法を使用します。

Google Public DNS を構成する

Google Public DNS を直接使用する

ISP は、DHCP などのネットワーク構成インフラストラクチャを構成して、Google Public DNS アドレス(8.8.8.8、8.8.4.4、IPv6)を返すようにして、ネットワーク上のクライアントが Google Public DNS を直接使用できるようにします。これは最もシンプルで信頼性の高いアプローチです。ネットワーク クライアントが DNS クエリを Google Public DNS に直接送信するようにすることで、各クライアントが個別にレート制限され、不正なクライアントによるスロットリングの影響をほとんど受けなくなります。

ローカル リゾルバからの Google Public DNS の使用

ISP がローカル リゾルバをクライアント クエリに使用して、ローカル リゾルバがクエリを Google Public DNS に転送することもできます。これは、規制上の理由や ISP の運用要件によっては必須となる場合があります。

ホームルーター、その他のネットワーク デバイス

ほとんどのローカル リゾルバは、ISP が管理するルーター、ファイアウォール、DSL/ケーブル モデム上で動作します。これらは単一のお客様で、独自の IP アドレスを持っている場合で、Google Public DNS を直接使用するクライアントと同じように機能します。

共有キャッシュ リゾルバ

DNS クエリのレイテンシ、特に Google リゾルバの場所から離れた ISP のレイテンシを短縮するために、ISP はキャッシュ DNS リゾルバを使用して多くのクライアントにサービスを提供します。これにより、Google Public DNS に送信される DNS クエリの量は減りますが、いくつかの IP アドレスに集中すると、スロットリングされる可能性が高くなります。ISP が Google Public DNS にクエリを転送する共有リゾルバを持つ ISP は、DNS クエリレートをモニタリングし、レートが上限を超えた場合、またはレスポンスの 1% を上回るまでレート制限の引き上げをリクエストする必要があります。

ISP が行えるその他の操作

レート制限の引き上げをリクエストする

CG-NAT に対して共有キャッシュ リゾルバまたは IPv4 アドレスを使用している ISP の場合、一貫したサービスを提供するために、レート制限の引き上げが必要になる場合があります。増加をリクエストする前に、キャッシュ リゾルバを使用する ISP はクエリログを確認し、CG-NAT を使用する ISP はネットワーク トラフィック ログをチェックして、リクエスト内の IP アドレスに対して 1,500 QPS を超える状態が維持されていることを確認する必要があります。

Google Public DNS の Issue Tracker を使用して、レート制限の引き上げリクエストを行うことができます。

レート制限の引き上げによってクライアントが抑制された場合に、REFUSE エラーで応答するように Google Public DNS を構成できます。このシグナルが必要な場合は、レート制限の引き上げリクエストにその旨を伝えます。

代替リゾルバを Google Public DNS と一緒に使用する

ISP は、クライアントまたは共有キャッシュ リゾルバのリゾルバ サービスの一つとして Google Public DNS を構成することもできます。これにより、DNS の信頼性が向上し、単一障害点をなくすことができます。よくある質問では、複数の DNS リゾルバを構成する際に考慮すべき問題が取り上げられています。

Google Public DNS を緊急のフォールバックとして使用する

ISP は Google Public DNS を緊急の代替として構成できますが、DNS クエリのボリュームが多い場合、クライアント 1 人あたりの持続するクエリ数がデフォルトのレート上限(1500 QPS)を超えると、Google Public DNS に切り替える際にクエリが抑制される可能性があります。

需要の急増に対応するために Google Public DNS サービスを適切にプロビジョニングするために、Google では正確なベースライン トラフィック レベルを使用しています。トラフィック量を送信していないクライアントに対して、デフォルトのレート制限に近づいていないクライアントには、レート制限の引き上げを行うことはできません。

クエリ量の多い ISP の場合、Google Public DNS を緊急のフォールバックのみとして使用するには、Google Public DNS リゾルバをフォールバックとして複数の代替リゾルバ アドレスに設定します。フォールバックを有効にすると、DNS トラフィックが複数のプロバイダに分散されるため、レート制限に達するリスクが軽減されます。

Google とのピアリング

中規模から大規模の ISP で、DNS の解決に Google Public DNS を使用している場合は、Google とのネットワーク ピアリングを設定する必要があります。これにより、ISP ネットワークから Google のネットワーク(Google Public DNS の IP アドレスを含む)への接続またはネットワーク到達性の問題が発生した場合に、エスカレーションに使用できる Google NOC との関係が確立されます。