回答:
はい、現在、この問題に対する2つの一般的なソリューションがあります。
最初のものはと呼ばれAnycast
、同じIPブロックが文字通り世界中の複数の場所で使用されています。つまり、ドメインのネームサーバーは常に同じIPアドレスを返しますが、そのIPアドレスは実際には複数の物理サーバーのセットに割り当てられます。
詳細については、http://en.wikipedia.org/wiki/Anycastをご覧ください。
2番目の手法にもAnyCastが関係しますが、今回は、エニーキャストされるIPアドレス範囲はネームサーバー自体を参照します。ネームサーバーは(BGPの魔法によって決定される)最も近いクライアントからのみ要求を行うため、クライアントに対して論理的にローカルなIPアドレスを返すことができます。
この例は、googleのl.google.comドメインです
オーストラリアのホストから
crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104
米国のホストから
[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103
したがって、のCNAMEはにwww.google.com
解決されwww.l.google.com
ますが、それを解決すると、場所に応じて、クライアントは異なるIPアドレスのセットを受け取ります。これは、要求を受信したネームサーバーが、クライアントに相対的なローカルネームサーバーでwww.l.google.com
あったためです。
アジア、北米、およびヨーロッパのサーバーのみをローカライズする場合は、webappとDNSの両方を自分で実行することを決定できます。
DNSを使用すると、スプリットホライズンDNSアプローチのようなものを使用できます。これは、DNSサーバーの統合機能(GeoDNSと呼ばれることもあります)、または異なるIPアドレス範囲を異なる実行にリダイレクトするファイアウォールを介して実現できますDNSサーバーのインスタンス(ローカルマシン上でサーバーの複数の異なるコピーを実行でき、異なるローカルIPアドレスでリッスンします)。
RIPEおよびAfriNIC IPアドレスからのDNSリクエストにA
、ヨーロッパのホストの記録、APNICからのリクエスト—アジアのホスト、およびIPアドレスからのリクエストで返信することにより、おそらく約90%のケースで期待される結果を得ることができます。ARIN、LACNIC、および北米のサーバーのレコードを含む/ 8アドレス空間の残りによって管理される/ 8ブロック。これは特定の状況でいくつかの間違った結果になります(ヨーロッパと北米の間でいくつかの/ 8ブロックが共有され、一部のアドレス空間はエニーキャストなどです)が、最悪の事態は影響を受ける当事者への余分なレイテンシです。大したことではありません。A
(そして、はい、これらのことを簡単にする方法があるはずですが、これまでのところ、何もないようです。)