JP5788497B2 - 動作方法、システム及びコンピュータプログラム - Google Patents

動作方法、システム及びコンピュータプログラム Download PDF

Info

Publication number
JP5788497B2
JP5788497B2 JP2013508173A JP2013508173A JP5788497B2 JP 5788497 B2 JP5788497 B2 JP 5788497B2 JP 2013508173 A JP2013508173 A JP 2013508173A JP 2013508173 A JP2013508173 A JP 2013508173A JP 5788497 B2 JP5788497 B2 JP 5788497B2
Authority
JP
Japan
Prior art keywords
dns
server
query
resolver
data center
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013508173A
Other languages
English (en)
Other versions
JP2013527704A (ja
JP2013527704A5 (ja
Inventor
ホアン チェン
ホアン チェン
レオナルド ホルト ニコラス
レオナルド ホルト ニコラス
ジー.グリーンバーグ アルバート
ジー.グリーンバーグ アルバート
リー ジン
リー ジン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013527704A publication Critical patent/JP2013527704A/ja
Publication of JP2013527704A5 publication Critical patent/JP2013527704A5/ja
Application granted granted Critical
Publication of JP5788497B2 publication Critical patent/JP5788497B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、DNSリフレクションを使用したネットワーク性能の測定に関する。
世界中のユーザに様々な機能を提供するネットワーク化されたサービスが利用可能である。これらのネットワーク化されたサービスは、異なる地理的エリアに置かれたデータセンタ内のサーバコンピュータによってしばしば提供される。ネットワーク化されたサービスの作業負荷は、異なるユーザがこれらのデータセンタの異なるものにアクセスできるように、異なるデータセンタにわたって広がり得る。しかし、複数のデータセンタのうちのどれに個々のユーザがアクセスしようとしているかを判断することは難しいことがある。
本発明の概要を、「発明を実施するための形態」で以下にさらに説明される簡素化された形での概念の選択を紹介するために提供する。本発明の概要は、特許請求される主題の重要な特徴または本質的な特徴を特定するものではなく、特許請求される主題の範囲を限定するために使用されるものでもない。
1つまたは複数の態様によれば、リフレクタドメイン名システム(DNS)サーバおよびコレクタDNSサーバを、データセンタ内に含む。ドメイン名に対応するネットワークアドレスについての第1のDNS要求を、ローカルDNSリゾルバから、リフレクタDNSサーバで受信する。第1の応答をローカルDNSリゾルバに返し、第1の応答はローカルDNSリゾルバにコレクタDNSサーバからネットワークアドレスを取得するように指示する。ドメイン名に対応するネットワークアドレスについての第2のDNS要求を、ローカルDNSリゾルバから、コレクタDNSサーバで受信する。ドメイン名に対応するネットワークアドレスを含む第2の応答を、ローカルDNSリゾルバに返す。第1の要求、第2の要求、第1の応答、および第2の応答のうちの2つ以上に基づいて、ローカルDNSリゾルバとデータセンタの間の通信の1つまたは複数のネットワーク性能測定結果を判定する。
同一番号を、以下の図面を通して同様の特徴を参照するために使用する。
1つまたは複数の実施形態によるDNSリフレクションを使用したネットワーク性能の測定を実装する例示的システムを示す図である。 ローカルDNSリゾルバとデータセンタとの間のネットワーク性能測定結果を1つまたは複数の実施形態にしたがって判定する例示的システムを示す図である。 1つまたは複数の実施形態によるDNSリフレクションを使用したネットワーク性能の測定を実装するデバイスの例示的プロセスを示す流れ図である。 1つまたは複数の実施形態にしたがってDNSリフレクションを使用したネットワーク性能の測定を実装するように構成可能な例示的コンピューティングデバイスを示す図である。
DNSリフレクションを使用したネットワーク性能の測定を本明細書で論じる。ドメイン名システム(DNS)クエリは、そのうちの1つがDNSクエリで要求されたネットワークアドレスを提供する、データセンタ内の複数の異なるDNSサーバに、そのクエリを反射することによって、解決される。ローカルDNSリゾルバとDNSクエリを解決するのに使用されるデータセンタ内の異なるDNSサーバの間の通信の1つまたは複数のネットワーク性能測定結果を、DNSクエリの解決中に判定する。これらのネットワーク性能測定結果は、ローカルDNSリゾルバとデータセンタとの間の通信遅延を示す往復時間、ならびに/または、ローカルDNSリゾルバとデータセンタとの間のパケット損失を含み得る。異なるDNSクエリについて判定されるネットワーク性能測定結果の記録を保持し、かつどのデータセンタがどのコンピューティングデバイスによってアクセスされることになるかを判断するために使用することができる。
図1は、1つまたは複数の実施形態によるDNSリフレクションを使用したネットワーク性能の測定を実装する例示的システム100を示す。システム100は、ローカルDNSリゾルバ104と通信することができる1つまたは複数(m)のコンピューティングデバイス102を含む。ローカルDNSリゾルバ104は、ネットワーク108を介して1つまたは複数(n)のデータセンタ106と通信することができる。ネットワーク108は、インターネット、ローカルエリアネットワーク(LAN)、公衆電話網、イントラネット、他の公衆のおよび/または所有権を主張できるネットワーク、それらの組合せなどを含む、様々な異なるネットワークとすることができる。コンピューティングデバイス102は、ローカルDNSリゾルバ104と直接に、あるいはネットワーク(たとえば、ネットワーク108に類似したネットワーク)を介して、通信することができる。
各コンピューティングデバイス102は、様々な異なるタイプのデバイスとすることができる。たとえば、コンピューティングデバイス102は、デスクトップコンピュータ、移動局、エンターテイメント器具、表示デバイスに通信で結合されたセットトップボックス、テレビジョン、セルラもしくは他のワイヤレス電話、ゲーム機、自動車用コンピュータなどとすることができる。したがって、コンピューティングデバイス102は、かなりのメモリおよびプロセッサリソースを有する豊富なリソースのデバイス(たとえば、パーソナルコンピュータ、ゲーム機など)から、限られたメモリおよび/または処理リソースを有する低リソースのデバイス(たとえば、従来型のセットトップボックス、携帯ゲーム機)まで多岐にわたり得る。異なるコンピューティングデバイス102は、同一あるいは異なるタイプのコンピューティングデバイスとすることができる。
各データセンタ106は、1つまたは複数のDNSサーバ110および1つまたは複数のオペレーションサーバ112を含む。オペレーションサーバ112は、1つまたは複数のサービスをコンピューティングデバイス102に提供するように動作する。たとえば、オペレーションサーバ112は、情報サービス(たとえば、1つまたは複数のウェブページをホスティングする)、ソーシャルネットワーキングサービス、電子メールサービス、メッセージングサービス、画像および/またはビデオ共有サービス、ファイルストレージサービス、ゲームまたは他のエンターテイメントサービスなどのうちの1つまたは複数を提供することができる。DNSサーバ110は、オペレーションサーバ112のアドレスをコンピューティングデバイス102に提供するように動作し、コンピューティングデバイス102がオペレーションサーバ112によって提供されるサービスにアクセスするおよびそれを使用することを可能にする。
前述のコンピューティングデバイス102の論議と同様に、DNSサーバ110およびオペレーションサーバ112は、かなりのメモリおよびプロセッサリソースを有する豊富なリソースのデバイスから限定されたメモリおよび/または処理リソースを有する低リソースのデバイスに及ぶ、様々な異なるタイプのコンピューティングデバイスとすることができる。各データセンタ106は通常は、複数のサーバ(たとえば、約数十、数百、またはそれ以上のサーバ)を含む。
データセンタ106は世界中の様々な場所に位置し得ることに留意されたい。データセンタ106はしばしば、異なるグループのユーザと地理的により近づけるために、世界中に物理的に置かれ得る。しかし、2つ以上のデータセンタ106が、互いに地理的にごく接近して位置付けられ場合もある。多様な地理的存在の利点は、任意の特定のエンドユーザにデータセンタの複数の選択肢を提供することであり、そして、正確に行われれば、エンドユーザは、エンドユーザによって最も良く認識される性能を生み出す「最適な」データセンタからサービスされることになる。
複数のデータセンタ106にわたるオペレーションサーバ112は、集合的に動作して1つまたは複数のサービスをコンピューティングデバイス102に提供する。異なるデータセンタ106内のオペレーションサーバ112は、重複データを記憶すること、および/または、協力して1つまたは複数のサービスをコンピューティングデバイス102に提供することができる。複数のデータセンタ106にわたるオペレーションサーバ112は集合的に動作し、各コンピューティングデバイス102は通常は1つのデータセンタ106のオペレーションサーバ112と通信する。本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法を、特定のコンピューティングデバイス102について、どのデータセンタ106が特定のコンピューティングデバイス102によってアクセスされることになるかを識別するために使用することができる。
本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法は、DNSシステムを利用する。DNSシステムは、ネットワークアドレス(インターネットプロトコル(IP)v4またはv6アドレスなど)よりもユーザによって通常はより容易に使用および参照されるドメイン名(URL(Uniform Resource Locator)など)を使用してサービスを識別することを可能にする。データセンタ106内のオペレーションサーバ112は、異なるネットワークアドレスを有するが、同一ドメイン名に対応する。同様に、集合的に動作して1つまたは複数のサービスをコンピューティングデバイス102に提供する複数のデータセンタ106は、同一ドメイン名に対応する。1つまたは複数のDNSサーバは、特定のオペレーションサーバにアクセスするためにコンピューティングデバイスによって使用可能な、対応するネットワークアドレスに特定のドメイン名をマップするように動作する。対応するネットワークアドレスへのドメイン名のこのマッピングは、DNS解決とも呼ばれる。
本明細書の議論の多くはURLおよびIPアドレスを参照するが、他のドメイン名および/またはネットワークアドレスが本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法とともに使用可能であることが理解されよう。加えて、本明細書で論じられるDNSシステムは、(たとえば、1987年11月、ネットワーク作業グループコメント要求1035で論じられるような)既知のDNSプロトコルにしたがったシステムを参照する。しかし、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法は、DNSプロトコルと同様に、ドメイン名を特定のネットワークアドレスにマップすることを可能にする、他のシステムとともに使用することができる。
ローカルDNSリゾルバ104は、特定のURLのIPアドレスの要求であるコンピューティングデバイス102からのDNSクエリを受信する。ローカルDNSリゾルバ104は、これらのDNSクエリを1つまたは複数のDNSサーバ110に転送する。IPアドレスがDNSクエリに応答してリゾルバ104に返されると、IPアドレスを、DNSクエリを受信した元のコンピューティングデバイス102に返す。加えて、ローカルDNSリゾルバ104は、IPアドレスにURLをマップするキャッシュを任意選択で保持することができ、キャッシュに含まれるURLについてのDNSクエリに応答して、ローカルDNSリゾルバ104がURLのIPアドレスを返すことを可能にする。ローカルDNSリゾルバ104を、インターネットサービスプロバイダ(ISP)のサーバまたは他のデバイス内、コンピューティングデバイス102を含むローカルエリアネットワーク上のデバイス内など、様々な異なるデバイス内に実装することができる。単一のローカルDNSリゾルバ104を図1に示しているが、任意の数のローカルDNSリゾルバ104をシステム100に含むことができることを理解されたい。
たとえば、オペレーションサーバ112が集合的に作動してインターネット検索エンジンを提供すると仮定する。このインターネット検索エンジンは、「www.bing.com」などの単純なURLを使用し、容易に識別することができる。インターネット検索エンジンにアクセスするために、コンピューティングデバイス102が、URL「www.bing.com」のIPアドレスを要求するローカルDNSリゾルバ104へのDNSクエリを提出する。ローカルDNSリゾルバ104は、次いで、URL「www.bing.com」のIPアドレスを要求する1つまたは複数のDNSサーバ110へのDNSクエリを提出する。ローカルDNSリゾルバ104がDNSクエリを提出する先の特定のDNSサーバ110を、以下により詳細に論じる。最終的に、DNSサーバ110が、ローカルDNSリゾルバ104にURL「www.bing.com」のIPアドレスを返す。このIPアドレスは、オペレーションサーバ112のうちの1つのアドレスであり、ローカルDNSリゾルバ104は、DNSクエリを受信した元のコンピューティングデバイス102にこのIPアドレスを返す。IPアドレスがローカルDNSリゾルバ104に返される特定のオペレーションサーバ112を、様々な異なる形で1つまたは複数のDNSサーバ110によって選択することができる。たとえば、特定のオペレーションサーバ112を、DNSクエリを提出したコンピューティングデバイス102とデータセンタ106との間の通信遅延が最も小さいデータセンタ106内のオペレーションサーバ112、DNSクエリを提出したコンピューティングデバイス102とデータセンタ106との間の失われたパケットの数が最も小さいデータセンタ106内のオペレーションサーバ112などとして選択することができる。コンピューティングデバイス102は続いて、DNSクエリに応答して受信したIPアドレスを使用し、インターネット検索エンジンにアクセスしてオペレーションサーバ112のうちの1つにアクセスすることができる。
DNSサーバ110のうちの1つまたは複数は、IPアドレスへのローカルDNSリゾルバのマップを保持する。このマップは、ローカルDNSリゾルバ104からのDNSクエリに応答して返されることになるオペレーションサーバ112の特定のIPアドレスを指示する。このマップは通常はオペレーションサーバIPアドレスへのローカルDNSリゾルバのマッピングであるが、一方で、このマップはオペレーションサーバIPアドレスへのコンピューティングデバイス102のマッピングとすることができることに留意されたい。
DNSサーバがDNSクエリを受信するが、別のDNSサーバにDNSクエリに応答してオペレーションサーバの特定のIPアドレスを返す責任を委譲するという状況が生じ得る。DNSリフレクションは、1つのDNSサーバがクエリを行うローカルDNSリゾルバが応答を受信したときにもう1つのDNS要求を第2の所望のDNSサーバに発行することになるという方法で委譲応答を制御するという、委譲の特定の使用を指す。
システム100の動作中に、ローカルDNSリゾルバ104とデータセンタ106の1つまたは複数のDNSサーバ110との間の通信の1つまたは複数のネットワーク性能測定結果を判定する。これらのネットワーク性能測定結果を、以下にさらに詳しく論じるように、DNSクエリ内で提出されたURLのIPアドレスを返すプロセスの部分として、判定する。これらのネットワーク性能測定結果の記録を保持し、かつDNSサーバ110によって保持されるIPアドレスへのローカルDNSリゾルバのマップの更新の基礎として使用することができる。
図2は、ローカルDNSリゾルバとデータセンタの間のネットワーク性能測定結果を1つまたは複数の実施形態にしたがって判定する例示的システム200を示す。システム200は、コンピューティングデバイス202、ローカルDNSリゾルバ204、トップレベルDNSサーバ206、リフレクタDNSサーバ208、およびコレクタDNSサーバ210を含む。コンピューティングデバイス202は、たとえば、図1のコンピューティングデバイス102とすることができる。ローカルDNSリゾルバ204は、たとえば、図1のローカルDNSリゾルバ104とすることができる。トップレベルDNSサーバ206、リフレクタDNSサーバ208、およびコレクタDNSサーバ210は、各々、たとえば、図1のDNSサーバ110とすることができる。リフレクタDNSサーバ208およびコレクタDNSサーバ210は、同一データセンタ212(たとえば、図1の特定のデータセンタ106)に含まれる。トップレベルDNSサーバ206を、リフレクタDNSサーバ208およびコレクタDNSサーバ210と同じデータセンタ内に、あるいは異なるデータセンタ内に含むことができる。
コンピューティングデバイス202は、特定のURLのIPアドレスを要求するローカルDNSリゾルバ204へのDNSクエリ214を提出する。また、この特定のURLを、クエリURLまたはクエリドメイン名と呼ぶことができる。ローカルDNSリゾルバ204は、DNSクエリ214を受信し、DNSクエリ216としてのDNSクエリをトップレベルDNSサーバ206に提出する。トップレベルDNSサーバ206は、特定のURLの権限をもつネームサーバ(authoritative name server、マスタネームサーバとも呼ばれる)であり、ローカルDNSリゾルバのIPアドレスへのマッピング230を保持する。ローカルDNSリゾルバ204は、トップレベルDNSサーバ206からのIPアドレスの指示の受信、DNSシステムにしたがった(たとえば、図1のネットワーク108などのネットワークを介してアクセスされる)別のデバイスからのIPアドレスの取得など、様々な異なる形でトップレベルDNSサーバ206のIPアドレスを取得することができる。
DNSクエリ216に応答して、トップレベルDNSサーバ206は、コンピューティングデバイス202に返されることになるデータセンタ内のオペレーションサーバのIPアドレスを判定する。トップレベルDNSサーバ206は、マップ230内のローカルDNSリゾルバ204を探索することによって、このIPアドレスを判定する。この探索は、ローカルDNSリゾルバ204の(DNSクエリ216に含まれる)IPアドレス、ローカルDNSリゾルバ204の名または他の識別子などに基づくことができる。マップ230は、コンピューティングデバイス202に返されることになるデータセンタ内のオペレーションサーバのIPアドレスである特定のIPアドレスへのローカルDNSリゾルバ204のマッピングを含む。
トップレベルDNSサーバ206は、DNSクエリ216に応答して、ローカルDNSリゾルバ204に応答218を提供する。応答218は、リフレクタDNSサーバ208の識別子ならびにコレクタDNSサーバ210の識別子を含む。応答218は、トップレベルDNSサーバ206がDNS解決をリフレクタDNSサーバ208に委譲したというローカルDNSリゾルバ204への指示を含む。応答218はまたコンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスを含むが、このIPアドレスを、IPアドレスが応答218に含まれていることがローカルDNSリゾルバ204には分からないような形で、応答218に含めている。したがって、ローカルDNSリゾルバ204は、以下にさらに詳しく論じるように、リフレクタDNSサーバ208にIPアドレスを要求する。
1つまたは複数の実施形態で、応答218は、エイリアスとも呼ばれるCNAMEを含む。CNAMEは、リフレクタDNSサーバ208およびコレクタDNSサーバ210のIPアドレスと、そしてまた(マップ230に基づいて判定されるようにコンピューティングデバイス202に返されることになるデータセンタ内のオペレーションサーバのIPアドレスである)目標IPアドレスを組み込む。サーバ208および210は、トップレベルDNSサーバ206が権限をもつネームサーバであるドメインの部分についてのネットワークアドレスへのローカルDNSリゾルバのマッピングを管理することができるので、リフレクタDNSサーバ208およびコレクタDNSサーバ210をまた、トップレベルDNSサーバ206のサブドメインサーバと呼ぶことができる。応答218はまた、リフレクタDNSサーバ208の名およびIPアドレスである、ローカルDNSリゾルバ204がDNSクエリ220を送信しようとする先のサーバを示すサブドメインサーバ名およびサブドメインIPアドレスを含む。
たとえば、応答218は、rand.lax.reflector−collector−target.msrapollo.netのCNAMEを含み得る。CNAMEにおいて、「reflector」はリフレクタDNSサーバ208のIPアドレスであり、「collector」はコレクタDNSサーバ210のIPアドレスであり、そして、「target」は目標IPアドレスである。さらに、応答218は、ns.reflector−collector−target.msrapollo.netのサーバ名またはNSを含み得る。このサーバ名は、リフレクタDNSサーバ208の名である。応答218はまた、reflectorのサーバアドレスまたはNS_ADDRESSを含み得る。このサーバアドレスは、リフレクタDNSサーバ208のIPアドレスである。
ローカルDNSリゾルバ204は、応答218を受信し、DNS解決がリフレクタDNSサーバ208に委託されたと(応答218内の指示に基づいて)判断する。目標IPアドレスは応答218に組み込まれるが、ローカルDNSリゾルバ204は組み込まれた目標IPアドレスを解釈する仕方を知らない。したがって、応答218の受信に応えて、ローカルDNSリゾルバ204は、リフレクタDNSサーバ208にDNSクエリ220を提出し、特定のURLのIPアドレスを要求する。DNSクエリ220は、コンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスおよびまたコレクタDNSサーバ210の識別子を含み、両方とも(たとえば、CNAMEに組み込まれ)応答218でローカルDNSリゾルバ204によって受信されたものである。したがって、応答218に組み込まれているのがコンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスであっても、ローカルDNSリゾルバ204は組み込まれた目標IPアドレスの解釈の仕方を知らないので、ローカルDNSリゾルバ204はDNSクエリ220をリフレクタDNSサーバ208に提出する。
1つまたは複数の実施形態で、応答218は、リフレクタDNSサーバ208の名およびIPアドレスを含み、DNSクエリ220が提出されようとする先のDNSサーバをローカルDNSリゾルバ204に知らせる。ローカルDNSリゾルバ204は、ネットワークアドレスがそのために要求されるドメイン名として応答218で受信されるCNAMEをDNSクエリ220内に含む。
リフレクタDNSサーバ208は、DNSクエリ220を受信し、DNSクエリ220に応答して、リフレクタDNSサーバ208がDNS解決をコレクタDNSサーバ210に委託したという指示を含む応答222を生成する。これをまた、DNSクエリのコレクタDNSサーバ210への反射と呼ぶ。応答222はまた、(前述のように、トップレベルDNSサーバ206によって判定され、応答218に含まれた)コンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスを含む。
1つまたは複数の実施形態で、応答222は、DNSクエリ220で受信されたCNAMEを含む。応答222はまた、コレクタDNSサーバ210の名およびIPアドレスである、ローカルDNSリゾルバ204がDNSクエリ224を送信しようとする先のサーバを指示するサブドメインサーバ名およびサブドメインIPアドレスを含む。
ローカルDNSリゾルバ204は、応答222を受信し、DNS解決がコレクタDNSサーバ210に委託されたと(応答222の指示に基づいて)判断する。目標IPアドレスは応答222に組み込まれるが、ローカルDNSリゾルバ204は、組み込まれた目標IPアドレスの解釈の仕方を知らない。したがって、応答222の受信に応答して、ローカルDNSリゾルバ204は、DNSクエリ224をコレクタDNSサーバ210に提出して、特定のURLのIPアドレスを要求する。DNSクエリ224は、応答222でローカルDNSリゾルバ204によって受信された(たとえば、CNAMEに組み込まれた)、コンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスを含む。したがって、応答222内に組み込まれたのが、コンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスであっても、ローカルDNSリゾルバ204は組み込まれた目標IPアドレスの解釈の仕方を知らないので、ローカルDNSリゾルバ204は、DNSクエリ224をコレクタDNSサーバ210に提出する。
1つまたは複数の実施形態で、応答222は、コレクタDNSサーバ210の名およびIPアドレスを含み、DNSクエリ224が提出されることになる先のDNSサーバをローカルDNSリゾルバ204に知らせる。ローカルDNSリゾルバ204は、ネットワークアドレスがそのために要求されるドメイン名として応答222で受信されるCNAMEをDNSクエリ224内に含む。
コレクタDNSサーバ210は、DNSクエリ224を受信し、DNSクエリ224に応答してコンピューティングデバイス202に返されることになるオペレーションサーバの(前述のようにトップレベルDNSサーバ206によって判定され、応答218および応答222に含まれる)IPアドレスを含む応答226を生成する。ローカルDNSリゾルバ204は、応答226を受信し、応答して、応答228を生成してコンピューティングデバイス202に送信する。応答228は、前述のようにトップレベルDNSサーバ206によって判定されたコンピューティングデバイス202に返されることになるオペレーションサーバのIPアドレスを含む。
1つまたは複数の実施形態で、コレクタDNSサーバ210は、DNSクエリ224から、DNSクエリ224で受信されたCNAMEに組み込まれた、目標IPアドレスを取得する。コレクタDNSサーバ210は、マップ230に基づいて判定されるようなコンピューティングデバイス202に返されることになるデータセンタ内のオペレーションサーバのIPアドレスとしてローカルDNSリゾルバ204に目標IPアドレスを返す。
加えて、ローカルDNSリゾルバ204およびデータセンタ212の間の通信の1つまたは複数のネットワーク性能測定結果を判定する。これらのネットワーク性能測定結果は、ローカルDNSリゾルバ204とデータセンタ212の間の往復時間(RTT)、ならびに/またはローカルDNSリゾルバ204とデータセンタ212の間のパケット損失測定結果とすることができる。ローカルDNSリゾルバとデータセンタ212の間の通信のネットワーク性能測定結果を、ローカルDNSリゾルバ204とサーバ208および210の間の通信に基づいて判定する。
ローカルDNSリゾルバ204およびデータセンタ212の間の通信の往復時間を、コレクタDNSサーバ210によって、あるいは別のモジュールもしくはデバイスによって、判定することができる。この往復時間を、応答222のローカルDNSリゾルバ204への送信とコレクタDNSサーバ210によるDNSクエリ224の受信の間に経過した時間量として判定する。あるいは、この往復時間を、リフレクタDNSサーバ208によるDNSクエリ220の受信とコレクタDNSサーバ210によるDNSクエリ224の受信の間に経過した時間量など、他の形で判定することができる。ローカルDNSリゾルバ204とデータセンタ212の間の距離、ローカルDNSリゾルバ204とデータセンタ212の間のネットワーク内のデバイスの数および/もしくはタイプ、ローカルDNSリゾルバ204とデータセンタ212の間のネットワークの帯域幅、ローカルDNSリゾルバ204とデータセンタ212との間のネットワークのトラフィックもしくは輻輳の量など、様々な異なる要因がこの往復時間に影響を与え得ることが理解されよう。
ローカルDNSリゾルバ204とデータセンタ212との間のパケット損失測定結果を、異なる形で判定することができる。ローカルDNSリゾルバ204とDNSサーバ(たとえば、サーバ206、208、および210)との間の通信は、ネットワーク(たとえば、図1のネットワーク108)を介してパケットで情報を通信することによって、運ばれる。ネットワークを介して送信される1つまたは複数のパケットが、それらの意図した宛先に到達せず、したがって、失われたパケットと呼ばれるという状況が生じ得る。1つまたは複数のパケットの損失を、異なる方式で識別することができる。
1つまたは複数の実施形態で、リフレクタDNSサーバ208からローカルDNSリゾルバ204への応答222を含むパケットの損失を、識別することができる。ローカルDNSリゾルバ204は通常は、DNSクエリ220の送信の、タイムアウト期間としばしば呼ばれる、特定の時間内にDNSクエリ220への応答222を期待する。ローカルDNSリゾルバ204がこのタイムアウト期間内に応答222を受信しない場合、リゾルバ204がDNSクエリ220を再送する。したがって、リフレクタDNSサーバ208が同一DNSクエリ220を複数回受信した場合、サーバ208は、応答222がローカルDNSリゾルバ204によって受信されなかったと知る。リフレクタDNSサーバ208は、サーバ208が以前に受信した同一DNSクエリ220を受信するたびに、応答222を含むパケットが失われたと見なすことができる。
加えて、異なるローカルDNSリゾルバは異なるタイムアウト期間を実装することができるが、これらのタイムアウト期間は通常は、0.5秒または1秒などの固定された時間量である。これらのタイムアウト期間は通常は、ローカルDNSリゾルバ204とデータセンタ212の間の往復時間よりもはるかに長い。したがって、タイムアウト期間は、往復時間と容易に区別することができる。リフレクタDNSサーバ208は、DNSクエリ220に応答222を送信しないことによってローカルDNSリゾルバ204によって使用されるタイムアウト期間を定めることができる。応答222を送信しなかったとき、ローカルDNSリゾルバ204は、ローカルDNSリゾルバ204によって使用されるタイムアウト期間が経過した後に、DNSクエリ220を再送することになる。リフレクタDNSサーバ208は、最初に送信されたDNSクエリ220と再送されたDNSクエリ220の間に経過する時間をローカルDNSリゾルバ204によって使用されるタイムアウト期間として(たとえば、最も近い2分の1秒単位の時間にして)定めることができる。
1つまたは複数の実施形態で、ローカルDNSリゾルバ204からコレクタDNSサーバ210へのDNSクエリ224を含むパケットの損失を識別することができる。コレクタDNSサーバ210は、応答222がリフレクタDNSサーバ208によって送信された後にDNSクエリ224を予期することを知っている。応答222の送信とDNSクエリ224の受信の間の時間量が閾値を超える場合、コレクタDNSサーバ210は、DNSクエリ224を含むパケットが失われたと見なすことができる。この閾値時間量は、前述のように判定され得る、ローカルDNSリゾルバ204によって使用されるタイムアウト期間に基づくことができる。応答222の送信とDNSクエリ224の受信との間の時間量がローカルDNSリゾルバ204によって使用されるタイムアウト期間を超える場合、コレクタDNSサーバ210は次いで、DNSクエリ224を含むパケットが失われたと見なすことができる。
1つまたは複数の実施形態で、コレクタDNSサーバ210からローカルDNSリゾルバ204への応答226を含むパケットの損失を識別することができる。ローカルDNSリゾルバ204は通常は、DNSクエリ224の送信の、しばしばタイムアウト期間と呼ばれる、特定の時間量内にDNSクエリ224への応答226を期待する。このタイムアウト期間は、DNSクエリ220への応答222を期待しているローカルDNSリゾルバ204によって使用される同一タイムアウト期間、あるいは異なるタイムアウト期間とすることができる。ローカルDNSリゾルバ204がこのタイムアウト期間内に応答226を受信しなかった場合、リゾルバ204はDNSクエリ224を再送する。したがって、コレクタDNSサーバ210が同一DNSクエリ224を複数回受信した場合、サーバ210は、応答226がローカルDNSリゾルバ204によって受信されなかったと知る。コレクタDNSサーバ210は、サーバ210がそれが前に受信した同一DNSクエリ224を受信するたびに、応答226を含むパケットが失われたと見なすことができる。
同様に、複数のパケットの損失を判定することができる。タイムアウト期間は、異なる失われたパケットにより異なる場合がある。たとえば、1秒の第1のタイムアウトは、第1のパケットが失われた後に、使用することができ、2秒の第2のタイムアウトは、その次のパケットが失われた場合に使用することができ、3秒の第3のタイムアウトは、その次のパケットが失われた場合に使用することができるなど。これらの異なるタイムアウト期間は、前述のように識別することができる(たとえば、リフレクタDNSサーバ208は、ローカルDNSリゾルバ204から受信された最初の3つのDNSクエリ220に応答222を送信しないことによってローカルDNSリゾルバ204によって使用されるタイムアウト期間を定めることができる)。
あるいは、ローカルDNSリゾルバ204は、失われたパケットに関する情報を識別および保持するための機能を含み得る。このような状況で、ローカルDNSリゾルバ204はまた、呼び出されて(たとえば、リフレクタDNSサーバ208および/またはコレクタDNSサーバ210によって)ローカルDNSリゾルバ204からの失われたパケットに関する情報を取得することができる、アプリケーションプログラミングインターフェース(API)などのインターフェースを露出することができる。
パケットの損失に関する様々な情報を保持する。パケットの損失に関するこの情報は、たとえば、パケット損失率、またはパケットが失われる頻度、パケット損失パターン(たとえば、失われるパケットの数、失われる連続パケット、パケット損失の時刻、パケット損失の曜日など)などを含み得る。
1つまたは複数のパケットの損失を、通常はリフレクタDNSサーバ208および/またはコレクタDNSサーバ210によって識別するが、一方で1つまたは複数のパケットの損失はデータセンタ212の別のモジュールもしくはデバイスによって識別することができる。1つまたは複数のパケットの損失の識別に加えて、このような損失が生じた方向もまた識別することができる。すなわち、データセンタ212からローカルDNSリゾルバ204に送信されたパケットの損失を、ローカルDNSリゾルバ204からデータセンタ212に送信されるパケットの損失とは別個に識別することができる。このような損失が生じた特定の方向でのパケットの損失に関する様々な情報を保持することができる。
したがって、DNS解決プロセスの部分として、ローカルDNSリゾルバとデータセンタの間の通信のネットワーク性能測定結果を取得する。複数の異なるローカルDNSリゾルバの各々について、ネットワーク性能測定結果を、ローカルDNSリゾルバと複数の異なるデータセンタの間で取得することができる。これらの取得されたネットワーク性能測定結果の記録を保持する。この記録を、1つまたは複数のヒストグラムなどの異なる形で保持することができる。ローカルDNSリゾルバとデータセンタの間のネットワーク性能測定結果は、(リゾルバからアドレスへのマップ230に記憶されるような、)データセンタの特定のオペレーションサーバIPアドレスへの特定のローカルDNSリゾルバのマッピングを判定するために使用することができる。
ローカルDNSリゾルバとデータセンタの間のネットワーク性能測定結果は、様々な異なる形でのデータセンタの特定のオペレーションサーバIPアドレスへの特定のローカルDNSリゾルバのマッピングを判定するために使用することができる。特定のローカルDNSリゾルバについて、ローカルDNSリゾルバと異なるデータセンタの間の取得されたネットワーク性能測定結果は、比較または他の方法で分析されてデータセンタを選択することができる。選択されたデータセンタ内のオペレーションサーバのIPアドレスは、マップ230に含まれる。たとえば、データセンタと特定のローカルDNSリゾルバとの間で最も短い往復時間測定が取得されたデータセンタを選択することができる。別の例として、データセンタと特定のローカルDNSリゾルバとの間の失われたパケットの最小数を取得した(または、データセンタから特定のローカルDNSリゾルバに送信された失われたパケットの最小数を取得した)データセンタを選択することができる。あるいは、取得された往復時間測定結果および/またはパケット損失測定結果を、様々な他の技法またはプロセスとともにデータセンタを選択するために使用することができる。
1つまたは複数の実施形態で、リゾルバからアドレスへのマップ230は、前述のようにネットワーク性能測定結果に基づいて経時的に更新可能な特定のローカルDNSリゾルバの初期のマッピングを含む。特定のローカルDNSリゾルバの初期のマッピングは、様々な異なる形で取得可能であり、地理的位置、他のローカルDNSリゾルバがマップされた先のデータセンタ、無作為抽出、他の基準またはルールなどの様々な異なる基準に基づくことができる。たとえば、トップレベルDNSサーバ206は、リゾルバ204のネットワークアドレス内のプレフィックスを分析すること、および、同一プレフィックスを有する別のローカルDNSリゾルバにマップされたリゾルバ204にオペレーションサーバアドレスをマップすることによって、ローカルDNSリゾルバ204の初期のマッピングを識別することができる。たとえば、ローカルDNSリゾルバ204がaaa.bbb.ccc.dddのネットワークアドレスを有し、マップ230内の別のローカルDNSリゾルバがaaa.bbb.ccc.eeeのネットワークアドレスを有する場合、次いでこれらの2つのローカルDNSリゾルバは、同一プレフィックスaaa.bbb.cccを有するネットワークアドレスを有し、トップレベルDNSサーバ206は、ネットワークアドレスaaa.bbb.ccc.eeeを有するローカルDNSリゾルバがマップされるのと同じオペレーションサーバアドレスにローカルDNSリゾルバ204をマップする。
1つまたは複数の実施形態で、ローカルDNSリゾルバ204を、ローカルDNSリゾルバ204がトップレベルDNSサーバ206に提出する各DNSクエリに応答してリフレクタDNSサーバ208およびコレクタDNSサーバ210に反射することができる。あるいは、トップレベルDNSサーバ206は、ローカルDNSリゾルバ204を特定のDNSクエリについてのみサーバ208および210に反射することになると定めることができる。これらの特定のDNSクエリを、時間間隔に基づいて、DNSクエリが受信される頻度に基づいて、特定のローカルDNSリゾルバについて以前に反射されたDNSクエリの数に基づいてなど、様々な異なる形で識別することができる。たとえば、トップレベルDNSサーバ206は、各ローカルDNSリゾルバについて1時間当たりに1つのDNSクエリをサーバ208および210に反射することになるように定めることができる。別の例として、トップレベルDNSサーバ206は、閾値数のDNSクエリを反射するまで、ローカルDNSリゾルバからの各DNSクエリをサーバ208および210に反射することになるように定めることができ、次いでローカルDNSリゾルバについて1時間当たりに1つのDNSクエリをサーバ208および210に反射することになる。この閾値数は、固定数(たとえば、50DNSクエリ)、あるいは相対数(たとえば、そのドメイン名に対応するデータセンタの数の2倍)とすることができる。
あるいは、他の技法を使用してデータセンタ212とローカルDNSリゾルバ204の間のネットワーク性能測定結果を取得することができ、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法を、このような他の技法が失敗したときに(あるいは、このような他の技法を介して取得されたネットワーク性能測定結果を確認するために)使用する。たとえば、データセンタ212内のデバイス(リフレクタDNSサーバ208およびコレクタDNSサーバ210を含むデバイスなど)は、従来のping要求を使用してデータセンタ212とローカルDNSリゾルバ204の間のネットワーク性能測定結果を取得することができる。ping要求を使用するときの往復時間および/または失われたパケットを、前述のものと同様の技法を使用して、識別することができる。本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法は、ping要求を使用して取得されたネットワーク性能測定結果を確認するために使用することができる、または、ローカルDNSリゾルバ204がping要求に応答しない場合に使用することができる。
別の例として、データセンタ212内のデバイス(リフレクタDNSサーバ208およびコレクタDNSサーバ210を含むデバイスなど)は、ローカルDNSリゾルバ204にDNSクエリを送信することによって、ネットワーク性能測定結果を取得することができる。このDNSクエリは、単純な「.」または「.com」などの様々な異なるドメイン名を解決するための要求とすることができる。このようなDNSクエリを提出するときの往復時間および/または失われたパケットは、前述のものと同様の技法を使用して識別され得る。本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法は、このようなDNSクエリを提出するときに取得されたネットワーク性能測定結果を確認するために使用することができる、または、ローカルDNSリゾルバ204がこのようなDNSクエリを提出するときに応答しなかった場合に使用することができる。
加えて、ローカルDNSリゾルバ204を、1つまたは複数の特定のドメインのDNSクエリに応答してリフレクタDNSサーバ208およびコレクタDNSサーバ210に反射することができることに留意されたい。トップレベルDNSサーバ206がこれらの1つまたは複数の特定のドメインのうちの1つについてのDNSクエリを受信するとき、ローカルDNSリゾルバ204を、前述のように、サーバ208および210に反射する。しかし、トップレベルDNSサーバ206が異なるドメインについてのDNSクエリを受信するとき、サーバ206は、ローカルDNSリゾルバ204を反射することなしにマップ230から要求されたネットワークアドレスを返す。
トップレベルDNSサーバ206に1つまたは複数の特定のドメインのみについてDNSクエリを反射させることは、様々な異なる使用のシナリオをサポートする。たとえば、コンピューティングデバイス202に返されることになるウェブページが、特定のファイルへのURLを組み込んでいる場合がある。この特定のファイルは、サイズは小さくてもよく、ウェブページの部分として表示される必要さえない。しかし、この特定のファイルへのURLは、DNSクエリが反射される1つまたは複数の特定のドメインのうちの1つである。したがって、ウェブページをコンピューティングデバイス202によって要求するとき、ウェブページのURLを解決し、ネットワークアドレスが、DNSクエリを反射することなしにトップレベルDNSサーバ206によって返される。ウェブページは次いで、コンピューティングデバイス202として検索および表示することが可能であり、この検索および表示の部分として、特定のファイルへの組み込まれたURLを識別する。しかしながら、この組み込まれたURLは、前述のようにリフレクタDNSサーバ208およびコレクタDNSサーバ210へのURLを含むDNSクエリを反射することによって解決される。
図2の例では、1つのデータセンタ212を示す。しかしながら、複数のデータセンタが、前述のように特定のドメイン名に対応する。トップレベルDNSサーバ206は、ローカルDNSリゾルバが、時間間隔に基づいて、DNSクエリを特定のデータセンタに反射する頻度に基づいて、各データセンタに前に反射されたDNSクエリの数に基づいて、データセンタの地理的位置に基づいてなど、様々な異なる形で反射される先の特定のデータセンタを判断することができる。たとえば、トップレベルDNSサーバ206は、各ローカルDNSリゾルバについて1時間ごとに1つのDNSクエリを各データセンタに反射することになると判定することができる。別の例として、サーバ206が、DNSクエリを特定のデータセンタに反射することになると判定するたびに、データセンタの順序付きリストで識別される次のデータセンタがDNSクエリを、反射される先のデータセンタとして選択するように、トップレベルDNSサーバ206は、データセンタの順序付きリストを保持し、ラウンドロビン方式でデータセンタを識別することができる。
さらに別の例として、トップレベルDNSサーバ206は、特定のローカルDNSリゾルバがマップされた現在のデータセンタについて取得されたネットワーク性能測定結果が閾値を上回る場合、次いで、特定のローカルDNSリゾルバを、現在のデータセンタの地理的にごく近傍にないデータセンタに反射する必要がないと判断することができる。この閾値は、固定値(たとえば、0.2秒未満の往復時間)、または相対的値(たとえば、マップ230内のその他のマッピングのオペレーションサーバアドレスについての往復時間の少なくとも70%未満の往復時間)とすることができる。データセンタの地理的近傍を、マイルでの直線距離、同市内に置かれたデータセンタ、同大陸内に置かれたデータセンタなど、異なる形で判定することができる。たとえば、特定のローカルDNSリゾルバがマップされた現在のデータセンタについて取得されたネットワーク性能測定結果が閾値を上回り、そして、現在のデータセンタが北米に置かれている場合、そのとき、特定のローカルDNSリゾルバを、ヨーロッパまたはオーストラリアのデータセンタに反射する必要はない。
リフレクタDNSサーバ208およびコレクタDNSサーバ210は、2つの異なるIPアドレスを有し、ローカルDNSリゾルバ204によって2つの異なるサーバとして見られる。それでもなお、1つまたは複数の実施形態で、リフレクタDNSサーバ208およびコレクタDNSサーバ210を両方とも同一コンピューティングデバイスに実装し(たとえば、複数のネットワークインターフェースを有し)、同一クロックを両方のサーバ208および210が使用することを可能にする。サーバ208および210の同一クロックの使用を可能にすることは、2つの異なるデバイスからのクロックを同期化する必要がないので、ネットワーク性能測定結果の取得を単純化する。あるいは、リフレクタDNSサーバ208およびコレクタDNSサーバ210を、2つの異なるコンピューティングデバイス上に、これらの2つの異なるコンピューティングデバイス上のクロックを互いに同期化しながら、実装することができる。
本明細書に記載の技法を使用して取得されたネットワーク性能測定結果は、ローカルDNSリゾルバとデータセンタとの間のネットワーク性能測定結果であることに留意されたい。同様に、リゾルバからアドレスへのマップ230は、データセンタ内のオペレーションサーバのネットワークアドレスへのローカルDNSリゾルバのマッピングである。ローカルDNSリゾルバによって送信される特定のコンピューティングデバイスからのDNSクエリに基づいて取得されるネットワーク性能測定結果は、任意の追加のコンピューティングデバイスに対して使用可能であり、同一ローカルDNSリゾルバを使用することもできる。したがって、同一ローカルDNSリゾルバを使用する様々なコンピューティングデバイスが、同一ネットワークアドレスへとDNSクエリを解決させることになる。たとえば、コンピューティングデバイス202に加えて、複数の追加のコンピューティングデバイスが、ローカルDNSリゾルバ204を使用してDNSクエリを解決することができる。これらの複数の追加のコンピューティングデバイスの各々、ならびにコンピューティングデバイス202は、同一ネットワークアドレスへと同一DNSクエリを解決させる。
前述の議論で、リゾルバからアドレスへのマップ230を、トップレベルDNSサーバ206によって保持するものとして論じている。あるいは、マップ230を、リフレクタDNSサーバ、コレクタDNSサーバ、または、様々なデータセンタ内の他のデバイスなど、他のデバイスによって保持することができる。マップ230を保持する方式に応じて、マップのコピーを、異なるデバイスにわたって同期化することができる。たとえば、様々なデータセンタ内のコレクタDNSサーバはマップ230を保持することができ、特定のコレクタDNSサーバによってマップ230に行われた各変更を、その他のコレクタDNSサーバに通信する。マップ230をトップレベルDNSサーバ206以外のデバイスによって保持する実施形態では、DNSクエリ216内で要求されているネットワークアドレスを、サーバ206によって判定せず、サーバ206が返す応答218に組み込まないことを理解されたい。そうではなくて、DNSクエリ216内で要求されているネットワークアドレスを、別のデバイスによって判定することになる。たとえば、マップ230を様々なデータセンタ内のコレクタDNSサーバによって保持する場合、次いで、コレクタDNSサーバ210はDNSクエリ216内で要求されているネットワークアドレスを判定し、それゆえにネットワークアドレスをDNSクエリ220および224に含まない。
加えて、前述の議論では、DNSクエリを、1つのリフレクタDNSサーバおよび1つのコレクタDNSサーバに反射するものとして論じている。しかし、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法を、データセンタ内の複数の異なるDNSサーバにDNSクエリを反射するために使用することができる。たとえば、ローカルDNSリゾルバ204をコレクタDNSサーバ210に反射するのではなくて、ローカルDNSリゾルバ204を、データセンタ212内の複数の異なるリフレクタDNSサーバ208に反射することができる。これらの追加の反射についてのネットワーク性能測定結果を、測定結果の取得に関する前述の議論に類似して、取得することができる。さらに、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法を、複数の異なるデータセンタの複数の異なるリフレクタおよびコレクタDNSサーバにDNSクエリを反射するために使用することができることを理解されたい。たとえば、要求されたネットワークアドレスを返すのではなくて、コレクタDNSサーバ210は、ドメイン名に対応する追加のデータセンタのリフレクタDNSサーバにローカルDNSリゾルバ204からのDNSクエリを反射することができる。この追加のデータセンタについてのネットワーク性能測定結果を、前述のようにデータセンタ212について取得される測定結果と類似して、取得することができる。
図2の議論で、リフレクタDNSサーバ208およびコレクタDNSサーバ210を、別個のDNSサーバとして論じる。ローカルDNSリゾルバ204を通常は、リゾルバ204がそのDNSサーバから応答を受信した後に、同一DNSサーバにDNSクエリを再送しないように構成する。したがって、2つの異なるDNSサーバ208および210を図2で使用する。ローカルDNSリゾルバ204は、リゾルバ204がDNSサーバから応答を受信した後に、同一DNSサーバへのDNSクエリの再送をサポートすることになり、その場合、リフレクタDNSサーバ208およびコレクタDNSサーバ210は同一DNSサーバとすることができる。
図3は、1つまたは複数の実施形態によるDNSリフレクションを使用したネットワーク性能の測定を実装するデバイスの例示的プロセス300を示す流れ図である。プロセス300を、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せに実装することができる。プロセス300を、1組の動作として示すが、様々な動作の操作を実行するために示された順番に限定しない。プロセス300は、DNSリフレクションを使用したネットワーク性能の測定のための例示的プロセスであり、DNSリフレクションを使用したネットワーク性能の測定の追加の議論が異なる図面を参照して本明細書に含まれる。
プロセス300で、トップレベルDNSサーバは、ドメイン名に対応するネットワークアドレスについてのDNSクエリを受信する(動作302)。このDNSクエリをローカルDNSリゾルバから受信し、ドメイン名を通常は、前述のようにURLとして識別する。要求されるネットワークアドレスは、前述のように、IPアドレスあるいは別のアドレスとすることができる。
トップレベルDNSサーバは、別のサーバにローカルDNSリゾルバを反射してネットワークアドレスを取得するローカルDNSリゾルバに応答を返す(動作304)。この他のサーバは、トップレベルDNSサーバを含むデータセンタとは通常は(但し、その必要はない)異なるデータセンタであるデータセンタ内に含まれるリフレクタDNSサーバである。
リフレクタDNSサーバが、ドメイン名に対応するネットワークアドレスのDNSクエリを受信する(動作306)。動作306のこのDNSクエリを、ローカルDNSリゾルバから受信し、動作306でこのDNSクエリを受信するリフレクタDNSサーバは、動作304でトップレベルDNSサーバが指示するリフレクタDNSサーバである。
リフレクタDNSサーバは、さらに別のサーバにローカルDNSリゾルバを反射してネットワークアドレスを取得するローカルDNSリゾルバに応答を返す(動作308)。ローカルDNSリゾルバが反射される先のこの他のサーバは、リフレクタDNSサーバと同じデータセンタに含まれるコレクタDNSサーバである。あるいは、1つまたは複数のリフレクタDNSサーバは、リフレクタDNSサーバが最終的にローカルDNSリゾルバをコレクタDNSサーバに反射する前に、別のリフレクタDNSサーバにローカルDNSリゾルバを反射することができる。
コレクタDNSサーバが、ドメイン名に対応するネットワークアドレスのDNSクエリを受信する(動作310)。動作310のこのDNSクエリをローカルDNSリゾルバから受信し、動作310でこのDNSクエリを受信するコレクタDNSサーバは、動作308でリフレクタDNSサーバにが指示するコレクタDNSサーバである。
コレクタDNSサーバが、ローカルDNSリゾルバに、ドメイン名に対応する要求されたネットワークアドレスを含む応答を返す(動作312)。コレクタDNSサーバは、前述のように、コレクタDNSサーバによって受信されるDNSクエリに組み込まれたものとしてネットワークアドレスを識別すること、ネットワークアドレスの表または他の記録にアクセスすることによってなど、異なる形でネットワークアドレスを識別することができる。コレクタDNSサーバによって返される応答が実際にDNSリフレクションオペレーションを終了させるので、動作310で受信されるクエリを、最終DNSクエリとも呼び、動作312での応答の返信を、最終DNS応答とも呼ぶ。
加えて、リフレクタDNSサーバおよびコレクタDNSサーバの両方でのローカルDNSリゾルバとの間の通信を、ネットワーク性能測定結果を判定するために使用する(動作314)。これらのネットワーク性能測定結果は、ローカルDNSリゾルバとリフレクタDNSサーバおよびコレクタDNSサーバの両方を含むデータセンタの間の通信のネットワーク性能の測定結果である。異なるネットワーク性能測定結果を、前述のように往復時間およびパケット損失情報など、動作314で識別することができる。
したがって、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法は、DNSシステムを活用して、ローカルDNSリゾルバとデータセンタの間の実際の通信に基づくネットワーク性能測定結果を取得することが理解されよう。DNSクエリの別のサーバへの反射を、それらの正規のオペレーションの部分として標準的なローカルDNSリゾルバによってサポートし、それゆえに、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法をサポートするために、標準的な既存のローカルDNSリゾルバへの改変を行う必要はない。さらに、ローカルDNSリゾルバを、それらが他の点で応答するように構成するようになるのではない追加の要求(ping要求など)に応答するように構成する必要はない。
さらに、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法を、DNS解決プロセスで使用する。データセンタのオペレーションサーバが保持するデータの要求および/または要求への応答は通常は、影響されない。言い換えれば、本明細書で論じられるDNSリフレクションを使用してネットワーク性能を測定する技法は、データセンタのオペレーションサーバから要求されるデータを取得する際にどのサーバをアクセスするかではなく、DNSクエリを解決するときにどのサーバをアクセスするかに影響を与える。
図4は、1つまたは複数の実施形態によるDNSリフレクションを使用したネットワーク性能の測定を実装するように構成可能な例示的コンピューティングデバイス400を示す。コンピューティングデバイス400は、たとえば、図1のコンピューティングデバイス102もしくは図2のコンピューティングデバイス202とすることができ、または、図1のローカルDNSリゾルバ104、DNSサーバ110、およびオペレーションサーバ112のいずれか、もしくは、図2のリゾルバ204、トップレベルDNSサーバ206、リフレクタDNSサーバ208、およびコレクタDNSサーバ210のいずれかを実装するために使用可能である。
コンピューティングデバイス400は、1つまたは複数のプロセッサまたは処理ユニット402、1つまたは複数のメモリおよび/またはストレージ構成要素406を含むことができる1つまたは複数のコンピュータ可読媒体404、1つまたは複数の入力/出力(I/O)デバイス408、ならびに、様々な構成要素およびデバイスが互いに通信できるようにするバス410を含む。コンピュータ可読媒体404および/または1つもしくは複数のI/Oデバイス408を、コンピューティングデバイス400の部分として含むことができ、あるいはそれに結合することができる。バス410は、メモリバスもしくはメモリコントローラ、周辺バス、加速グラフィックポート、プロセッサもしくはローカルバス、および、様々な異なるバスアーキテクチャを使用するその他のものを含む、いくつかのタイプのバス構造体のうちの1つもしくは複数を表す。バス410は、ワイヤードおよび/またはワイヤレスバスを含むことができる。
メモリ/ストレージ構成要素406は、1つまたは複数のコンピュータストレージ媒体を表す。構成要素406は、揮発性媒体(ランダムアクセスメモリ(RAM)など)および/または非揮発性媒体(読取り専用メモリ(ROM)、フラッシュメモリ、光ディスク、磁気ディスクなど)を含むことができる。構成要素406は、固定媒体(たとえば、RAM、ROM、固定ハードドライブなど)ならびに取外し可能な媒体(たとえば、フラッシュメモリドライブ、取外し可能なハードドライブ、光ディスクなど)を含むことができる。
本明細書で論じる技法を、1つまたは複数の処理ユニット402によって実行される命令を有する、ソフトウェアで実装することができる。異なる命令が、処理ユニット402内、処理ユニット402の様々なキャッシュメモリ内、デバイス400(図示せず)の他のキャッシュメモリ内、他のコンピュータ可読媒体内など、コンピューティングデバイス400の異なる構成要素内に記憶可能であることを理解されたい。加えて、命令がコンピューティングデバイス400内で記憶される場所は経時的に変化し得ることを理解されたい。
1つまたは複数の入力/出力デバイス408は、ユーザがコンピューティングデバイス400にコマンドおよび情報を入力できるようにし、そしてまた情報がユーザおよび/または他の構成要素もしくはデバイスに提示されることを可能にする。入力デバイスの例は、キーボード、カーソル制御デバイス(たとえば、マウス)、マイクロフォン、スキャナなどを含む。出力デバイスの例は、表示デバイス(たとえば、モニタもしくはプロジェクタ)、スピーカ、プリンタ、ネットワークカードなどを含む。
様々な技法を、ソフトウェアもしくはプログラムモジュールの一般的状況において本明細書で説明することができる。一般に、ソフトウェアは、特定のタスクを実行するまたは特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造体などを含む。これらのモジュールおよび技法の実装を、ある種の形態のコンピュータ可読媒体に記憶することができ、またはそれらを介して送信することができる。コンピュータ可読媒体は、コンピューティングデバイスによってアクセス可能な任意の利用可能な媒体とすることができる。例として、そして限定ではなく、コンピュータ可読媒体は、「コンピュータストレージ媒体」および「通信媒体」を含むことができる。
「コンピュータストレージ媒体」は、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装される揮発性および非揮発性、取外し可能なおよび取外し不可能な媒体を含む。コンピュータストレージ媒体を、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を記憶するために使用することができる、そしてコンピュータによってアクセス可能な、任意の他の媒体を含むが、これらに限定しない。
「通信媒体」は通常は、搬送波もしくは他の移送機構などの変調されたデータ信号でコンピュータ可読命令、データ構造体、プログラムモジュール、または、他のデータを具現化する。通信媒体はまた、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報をコード化するような方式でその特徴のうちの1つまたは複数をセットまたは変更される信号を意味する。例として、限定ではなく、通信媒体は、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体と、音響、RF、赤外線、および他のワイヤレス媒体などのワイヤレス媒体とを含む。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれる。
概して、本明細書に記載の機能または技法のいずれも、ソフトウェア、ファームウェア、ハードウェア(たとえば、固定論理回路)、マニュアル処理、またはこれらの実装の組合せを使用し、実装することができる。本明細書で使用される「モジュール」および「構成要素」という用語は概して、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを表す。ソフトウェア実装の場合、モジュールまたは構成要素は、プロセッサ(たとえば、1つまたは複数のCPU)で実行されるときに指定されたタスクを実行するプログラムコードを表す。プログラムコードを、そのさらなる説明を図4を参照して見ることができる1つまたは複数のコンピュータ可読メモリデバイスに記憶することができる。本明細書に記載のDNSリフレクションを使用してネットワーク性能を測定する技法の特徴は、プラットフォームに依存しないことであり、その技法が様々なプロセッサを有する様々な商用計算プラットフォームに実装可能であることを意味する。
本主題を構造的特徴および/または方法論的動作に特有の言語で説明するが、添付の特許請求の範囲で定義される主題は前述の特定の特徴または動作に必ずしも限定しないことを理解されたい。そうではなくて、前述の特定の特徴および動作を、本特許請求の範囲を実装する例示的形態として開示する。

Claims (15)

  1. 第1のデータセンタの第1のドメイン名システム(DNS)サーバにおいて、クエリドメイン名に対応するネットワークアドレスを要求する第1のDNSクエリを、ローカルDNSリゾルバから受信するステップと、
    前記ローカルDNSリゾルバを第2のデータセンタの1つ以上のリフレクタDNSサーバに反射させることによって、前記第1のDNSサーバから前記第1のDNSクエリに応答するステップであって、前記第1のデータセンタおよび第2のデータセンタの両方は前記クエリドメイン名に対応し、前記第1のDNSサーバから前記第1のDNSクエリに応答する該ステップは、前記第1のDNSサーバにより前記ローカルDNSリゾルバに返される応答を生成するステップを含み、該応答は、前記1つ以上のリフレクタDNSサーバのうちの何れかの追加的なネットワークアドレスと、最終的なDNSクエリに応じて含められることになる前記クエリドメイン名に対応するネットワークアドレスとの双方を含む、ステップと、
    前記1つ以上のリフレクタDNSサーバにおいて、1つ以上の追加的なDNSクエリを受信するステップと、
    前記クエリドメイン名に対応する前記ネットワークアドレスにより、コレクタDNSサーバから最終的なDNSクエリに応答するステップと、
    前記ローカルDNSリゾルバと、前記第2のデータセンタの前記1つ以上のリフレクタDNSサーバおよび前記コレクタDNSサーバとの間の通信に基づいて、前記ローカルDNSリゾルバと前記第2のデータセンタとの間の通信についての1つ以上のネットワーク性能測定結果を判定するステップと
    を有する方法。
  2. 前記追加的なネットワークアドレスは、前記クエリドメイン名に対応する第3のデータセンタ内のサーバのインターネットプロトコル(IP)アドレスである、請求項1に記載の方法。
  3. 前記1つ以上のネットワーク性能測定結果は、前記第2のデータセンタと前記ローカルDNSリゾルバとの間の通信の往復時間を含み、該往復時間は、前記1つ以上のリフレクタDNSサーバのうちの第1のものにおいて受信される前記ローカルDNSリゾルバからの第1の要求と、前記リフレクタDNSサーバのうちの第2のサーバまたは前記コレクタDNSサーバで受信される前記ローカルDNSリゾルバからの第2の要求との間で経過した時間量として決定される、請求項1に記載の方法。
  4. 前記1つ以上のネットワーク性能測定結果は、前記ローカルDNSリゾルバによって識別される前記ローカルDNSリゾルバと前記第2のデータセンタとの間の通信の往復時間を含む、請求項1に記載の方法。
  5. 前記1つ以上のネットワーク性能測定結果は、前記第2のデータセンタと前記ローカルDNSリゾルバとの間のパケット損失率またはパケット損失パターンを含む、請求項1に記載の方法。
  6. 前記1つ以上のネットワーク性能測定結果は、前記第2のデータセンタ内の1つ以上のDNSサーバから前記ローカルDNSリゾルバに送信されたパケットについてのパケット損失率またはパケット損失パターンの第1の測定結果である第1の数と、前記ローカルDNSリゾルバから前記第2のデータセンタ内の前記1つ以上のDNSサーバに送信されたパケットについてのパケット損失率またはパケット損失パターンの第2の測定結果である第2の数とを含む、請求項5に記載の方法。
  7. 前記第1のDNSクエリに応答するステップは、前記クエリドメイン名に対応する前記ネットワークアドレスを組み込んだエイリアスを前記応答内に含めるステップを含み、1つ以上の追加的なDNSクエリを受信するステップは、前記エイリアスを含む1つ以上の追加的なDNSクエリを受信するステップを含み、当該方法は、前記コレクタDNSサーバにおいて、前記エイリアスから前記クエリドメイン名に対応する前記ネットワークアドレスを取得するステップをさらに有する、請求項1に記載の方法。
  8. 前記1つ以上のリフレクタDNSサーバおよび前記コレクタDNSサーバは、前記第2のデータセンタ内の同一のコンピューティングデバイス上で実装され、前記コンピューティングデバイスは複数のネットワークインターフェースを有する、請求項1に記載の方法。
  9. 前記コレクタDNSサーバは、前記第2のデータセンタ内に含まれる、請求項1に記載の方法。
  10. 第1及び第2のデータセンタとローカルDNSリゾルバとを有するシステムであって、
    前記第1のデータセンタの第1のドメイン名システム(DNS)サーバにおいて、クエリドメイン名に対応するネットワークアドレスを要求する第1のDNSクエリを、前記ローカルDNSリゾルバから受信するステップと、
    前記ローカルDNSリゾルバを第2のデータセンタの1つ以上のリフレクタDNSサーバに反射させることによって、前記第1のDNSサーバから前記第1のDNSクエリに応答するステップであって、前記第1のデータセンタおよび第2のデータセンタの両方は前記クエリドメイン名に対応し、前記第1のDNSサーバから前記第1のDNSクエリに応答する該ステップは、前記第1のDNSサーバにより前記ローカルDNSリゾルバに返される応答を生成するステップを含み、該応答は、前記1つ以上のリフレクタDNSサーバのうちの何れかの追加的なネットワークアドレスと、最終的なDNSクエリに応じて含められることになる前記クエリドメイン名に対応するネットワークアドレスとの双方を含む、ステップと、
    前記1つ以上のリフレクタDNSサーバにおいて、1つ以上の追加的なDNSクエリを受信するステップと、
    前記クエリドメイン名に対応する前記ネットワークアドレスにより、コレクタDNSサーバから最終的なDNSクエリに応答するステップと、
    前記ローカルDNSリゾルバと、前記第2のデータセンタの前記1つ以上のリフレクタDNSサーバおよび前記コレクタDNSサーバとの間の通信に基づいて、前記ローカルDNSリゾルバと前記第2のデータセンタとの間の通信についての1つ以上のネットワーク性能測定結果を判定するステップと
    実行するシステム
  11. 前記リフレクタDNSサーバおよび前記コレクタDNSサーバの両方は、複数のネットワークインターフェースを有する同一のコンピューティングデバイスに実装されている、請求項10に記載のシステム
  12. 第1のDNSクエリと前記1つ以上の追加的なDNSクエリに含まれる第2のDNSクエリとの両方は、前記のDNSサーバから前記ローカルDNSリゾルバによって取得されるエイリアスを含み、前記クエリドメイン名に対応する前記ネットワークアドレスである目標アドレスは、前記エイリアスに組み込まれる、請求項10に記載のシステム
  13. 前記リフレクタDNSサーバおよび前記コレクタDNSサーバの両方は、同一のデータセンタに含まれ、前記1つ以上のネットワーク性能測定結果は前記データセンタと前記ローカルDNSリゾルバとの間の通信の往復時間を含み、該往復時間は前記第1のDNSクエリ前記1つ以上の追加的なDNSクエリに含まれる第2のDNSクエリとの間で経過した時間量として決定され、前記第1のDNSクエリおよび前記第2のDNSクエリは、前記ローカルDNSリゾルバからの2つの後続するクエリである、請求項10に記載のシステム
  14. 前記リフレクタDNSサーバおよび前記コレクタDNSサーバの両方は、同一のデータセンタ内に含まれ、前記1つ以上のネットワーク性能測定結果は、前記データセンタと前記ローカルDNSリゾルバとの間のパケット損失に関する情報を含む、請求項10に記載のシステム
  15. システムに動作方法を実行させるコンピュータプログラムであって、前記動作方法は、
    第1のデータセンタの第1のドメイン名システム(DNS)サーバにおいて、クエリドメイン名に対応するネットワークアドレスを要求する第1のDNSクエリを、ローカルDNSリゾルバから受信するステップと、
    前記ローカルDNSリゾルバを第2のデータセンタの1つ以上のリフレクタDNSサーバに反射させることによって、前記第1のDNSサーバから前記第1のDNSクエリに応答するステップであって、前記第1のデータセンタおよび第2のデータセンタの両方は前記クエリドメイン名に対応し、前記第1のDNSサーバから前記第1のDNSクエリに応答する該ステップは、前記第1のDNSサーバにより前記ローカルDNSリゾルバに返される応答を生成するステップを含み、該応答は、前記1つ以上のリフレクタDNSサーバのうちの何れかの追加的なネットワークアドレスと、最終的なDNSクエリに応じて含められることになる前記クエリドメイン名に対応するネットワークアドレスとの双方を含む、ステップと、
    前記1つ以上のリフレクタDNSサーバにおいて、1つ以上の追加的なDNSクエリを受信するステップと、
    前記クエリドメイン名に対応する前記ネットワークアドレスにより、コレクタDNSサーバから最終的なDNSクエリに応答するステップと、
    前記ローカルDNSリゾルバと、前記第2のデータセンタの前記1つ以上のリフレクタDNSサーバおよび前記コレクタDNSサーバとの間の通信に基づいて、前記ローカルDNSリゾルバと前記第2のデータセンタとの間の通信についての1つ以上のネットワーク性能測定結果を判定するステップと
    を有する、コンピュータプログラム。
JP2013508173A 2010-04-28 2011-04-26 動作方法、システム及びコンピュータプログラム Active JP5788497B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/769,270 2010-04-28
US12/769,270 US8326980B2 (en) 2010-04-28 2010-04-28 Using DNS reflection to measure network performance
PCT/US2011/034007 WO2011139723A2 (en) 2010-04-28 2011-04-26 Using dns reflection to measure network performance

Publications (3)

Publication Number Publication Date
JP2013527704A JP2013527704A (ja) 2013-06-27
JP2013527704A5 JP2013527704A5 (ja) 2014-05-22
JP5788497B2 true JP5788497B2 (ja) 2015-09-30

Family

ID=44859185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013508173A Active JP5788497B2 (ja) 2010-04-28 2011-04-26 動作方法、システム及びコンピュータプログラム

Country Status (6)

Country Link
US (1) US8326980B2 (ja)
EP (1) EP2564559B1 (ja)
JP (1) JP5788497B2 (ja)
CN (1) CN102859942B (ja)
HK (1) HK1179780A1 (ja)
WO (1) WO2011139723A2 (ja)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8832283B1 (en) * 2010-09-16 2014-09-09 Google Inc. Content provided DNS resolution validation and use
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
WO2012063099A1 (en) * 2010-11-08 2012-05-18 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for enabling dns redirection in mobile telecommunication systems
US8671221B2 (en) * 2010-11-17 2014-03-11 Hola Networks Ltd. Method and system for increasing speed of domain name system resolution within a computing device
US8452874B2 (en) * 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8825839B2 (en) * 2010-11-24 2014-09-02 Unisys Corporation Snooping DNS messages in a server hosting system providing overlapping address and name spaces
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
JP5795690B2 (ja) * 2011-11-02 2015-10-14 アカマイ テクノロジーズ インコーポレイテッド エッジ・ネットワーク・サーバにおけるマルチ・ドメイン構成処理
US8819209B1 (en) * 2011-11-22 2014-08-26 Google Inc. Name server property tracking
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
CN104303489A (zh) * 2012-04-30 2015-01-21 Nec欧洲有限公司 在网络中执行dns解析的方法、内容分发系统和用于在内容分发系统中进行部署的客户端终端
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
WO2013189024A1 (en) * 2012-06-19 2013-12-27 Hewlett-Packard Development Company, L.P. Server site selection
US9608886B2 (en) 2012-08-26 2017-03-28 At&T Intellectual Property I, L.P. Methods, systems, and products for monitoring domain name servers
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10951688B2 (en) * 2013-02-27 2021-03-16 Pavlov Media, Inc. Delegated services platform system and method
US20140244670A1 (en) 2013-02-27 2014-08-28 Pavlov Media, Inc. Ontological evaluation and filtering of digital content
WO2014185889A1 (en) 2013-05-13 2014-11-20 Empire Technology Development, Llc Datacenter health analysis using dns switching
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10749772B1 (en) * 2013-09-16 2020-08-18 Amazon Technologies, Inc. Data reconciliation in a distributed data storage network
GB2521883B (en) * 2014-05-02 2016-03-30 Imagination Tech Ltd Media controller
US20160171415A1 (en) * 2014-12-13 2016-06-16 Security Scorecard Cybersecurity risk assessment on an industry basis
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
CN104639366B (zh) * 2014-12-31 2017-03-15 北京奇虎科技有限公司 Dns灾备系统孤岛应答自动切换方法及装置
US10050831B2 (en) * 2015-02-26 2018-08-14 Verisign, Inc. Query latency of a DNS service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10530852B2 (en) 2016-05-19 2020-01-07 Level 3 Communications, Llc Network mapping in content delivery network
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
CN106789435B (zh) * 2016-12-29 2020-03-31 深信服科技股份有限公司 一种状态监控方法及其装置、数据中心及多活数据中心
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
EP3704594A4 (en) * 2017-11-02 2021-06-23 Nokia Technologies Oy METHODS AND SYSTEMS FOR LINKING A DISTRIBUTED UNIT AND A VIRTUAL MACHINE IN A WIRELESS COMMUNICATION NETWORK
CN107819895B (zh) * 2017-11-16 2019-12-31 哈尔滨工业大学(威海) 基于域资源记录的顶级域名配置及安全的分析方法
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10375016B1 (en) 2018-04-02 2019-08-06 Cloudflare, Inc. Managing domain name system (DNS) record cache across multiple DNS servers using multicast communication
CN110661677B (zh) * 2018-06-29 2023-04-18 贵州白山云科技股份有限公司 一种dns测试方法、装置和系统
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
CN111314221A (zh) * 2018-12-11 2020-06-19 北京京东金融科技控股有限公司 业务处理方法、装置、设备及计算机可读存储介质
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN111385369B (zh) * 2018-12-28 2021-06-22 华为技术有限公司 一种域名服务器的分配方法和装置
CN110049049B (zh) * 2019-04-22 2021-05-11 中国互联网络信息中心 一种dns区数据校验的方法和装置
CN110166581B (zh) * 2019-04-30 2022-03-29 大唐软件技术股份有限公司 一种域名解析服务器访问频次占比获取方法及装置
CN110868450B (zh) * 2019-10-15 2022-09-23 平安科技(深圳)有限公司 双机房多入口会话保持方法、系统、装置及存储介质
US10951576B1 (en) * 2019-12-10 2021-03-16 Oracle International Corporation Method and apparatus for accurate GLB achieved by using distributed DNS reflection
US11297131B2 (en) * 2019-12-10 2022-04-05 Oracle International Corporation Method and apparatus for multi-vendor GTM fabric
CN111726428B (zh) * 2020-06-12 2023-09-22 网宿科技股份有限公司 一种权威服务器的选择方法、装置、设备及存储介质
US11729276B2 (en) * 2020-11-10 2023-08-15 Paypal, Inc. Rapid online variable sourcing infrastructure (ROVS) for decision systems
US11546290B1 (en) 2021-07-19 2023-01-03 Cisco Technology, Inc. Adjusting DNS resolution based on predicted application experience metrics
US20240073177A1 (en) * 2022-08-29 2024-02-29 Cisco Technology, Inc. Name resolution triggered monitoring agent selection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6415323B1 (en) 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US7565450B2 (en) 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7574499B1 (en) 2000-07-19 2009-08-11 Akamai Technologies, Inc. Global traffic management system using IP anycast routing and dynamic load-balancing
US7725602B2 (en) 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
US7363367B2 (en) * 2000-10-17 2008-04-22 Avaya Technology Corp. Systems and methods for robust, real-time measurement of network performance
US7237017B1 (en) 2001-03-13 2007-06-26 Panamsat Corporation Micronode in a satellite based content delivery system
AU2002338270A1 (en) 2001-04-02 2002-10-15 Akamai Technologies, Inc. Scalable, high performance and highly available distributed storage system for internet content
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
JP4160506B2 (ja) 2001-09-28 2008-10-01 レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. 構成可能な適応型広域トラフィック制御および管理
US7305429B2 (en) 2002-06-10 2007-12-04 Utstarcom, Inc. Method and apparatus for global server load balancing
US7143170B2 (en) * 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US7730187B2 (en) * 2006-10-05 2010-06-01 Limelight Networks, Inc. Remote domain name service
US20100088405A1 (en) * 2008-10-08 2010-04-08 Microsoft Corporation Determining Network Delay and CDN Deployment

Also Published As

Publication number Publication date
JP2013527704A (ja) 2013-06-27
WO2011139723A3 (en) 2012-01-19
US8326980B2 (en) 2012-12-04
CN102859942A (zh) 2013-01-02
EP2564559B1 (en) 2020-02-26
HK1179780A1 (en) 2013-10-04
WO2011139723A2 (en) 2011-11-10
EP2564559A2 (en) 2013-03-06
CN102859942B (zh) 2014-07-16
US20110270964A1 (en) 2011-11-03
EP2564559A4 (en) 2015-10-28

Similar Documents

Publication Publication Date Title
JP5788497B2 (ja) 動作方法、システム及びコンピュータプログラム
US10523783B2 (en) Request routing utilizing client location information
US9800539B2 (en) Request routing management based on network components
US8489724B2 (en) CNAME-based round-trip time measurement in a content delivery network
US9525659B1 (en) Request routing utilizing point of presence load information
AU2011307319B2 (en) Request routing in a networked environment
US8938526B1 (en) Request routing management based on network components
US8458298B2 (en) Failover in an internet location coordinate enhanced domain name system
EP3567881B1 (en) Request routing and updating routing information utilizing client location information
US9444759B2 (en) Service provider registration by a content broker
KR101914318B1 (ko) 수정된 호스트네임을 사용하는 글로벌 트래픽 관리 기법
US20120246290A1 (en) Dns application server
US20040249971A1 (en) Methods and systems for providing dynamic domain name system for inbound route control
US11570278B1 (en) Dynamic content delivery network selection using DNS
US20150095494A1 (en) Server Selection
US11297131B2 (en) Method and apparatus for multi-vendor GTM fabric
CN112333299A (zh) 一种域名解析方法、配置方法及设备
US11641410B1 (en) Distributed metric collection for dynamic content delivery network selection using DNS

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150609

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150729

R150 Certificate of patent or registration of utility model

Ref document number: 5788497

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250