1 つの IP を複数のドメイン ネーム サーバーに割り当てるにはどうすればよいですか?
たとえば、Google には IPv4 8.8.8.8 があり、多くの DNS が同じアドレスを持っています。
私が Google の DNS にドメイン検索リクエストを行うと、私の地理的位置に基づいて、リクエストは私の場所に最も近い Google DNS の場所にリダイレクトされます。
答え1
関連する技術はエニーキャストルーティング。
エニーキャストは、BGPルーティングプロトコルの本来の振る舞いを巧みに利用します。関連するアドレスを含むネットワークプレフィックスが複数の場所から広告されます。インターネット上の他のBGPルータは、同じ宛先への複数のパスを認識し、最短のパス(距離の観点から)を選択することに慣れています。としてホップ) パスです。ただし、この場合、この「 1 つの」宛先への複数のパスが、実際にはネットワーク上の異なる場所で終了することになります。
注目すべきは、地理的な近さではなく、むしろ数による近さに基づいて運営されていることです。自律システム(BGP ルーティングを実行する ISP などのエンティティ) がネットワークへのネットワーク パス上に存在します。多くの場合、これは地理的な近接性と多少相関しますが、必ずしもそうとは限りません。
また、BGP テーブル内のルートの可用性が時間の経過とともに必然的に変化すると、「最も近い」エニーキャストの宛先が、おそらくセッションの途中で変化する可能性が十分にあることも注目に値します。この状況が発生すると、状態を維持するプロトコル (TCP ベースのものを含む) は、発生すると明らかに機能しなくなります。DNS は特に適したプロトコルの例ですが (主に UDP を使用し、現在のクエリで受信した 1 つの情報のみに応答します)、接続があまり長く続かないものであれば、十分に機能します (CDN は HTTP/HTTPS を実行することが知られていますが、これは明らかに少し賭けです)。
答え2
質問のタイトルはまったく異なることを示唆しています。1 つの DNS 名に複数の IP アドレスがあるということです。実際の質問は DNS について言及しているわけではなく、DNS を例として使用しているだけです。http(s) のコンテンツ配信ネットワークでも同じものが使用されます。
世界中に同じ目的の異なるサーバーが存在する場合、ルーターにはそれぞれ最も近いサーバーを指す異なるルーティング ターゲットが設定されます。
通常、各ルーターが同じ宛先を指す IP アドレスが必要です。ここでは、ルーターは異なる宛先を指していますが、同じ機能を指しています。
答え3
エニーキャストルーティングが利用できない場合のもう1つのオプションは、地理的に分散したサーバーを実行し、DNSシステムを構成することです。DNS スプリット ホライズン