どのように8.8.8.8を*常に*維持しますか?


9

会社の任意の作業サイトを指すことができるDNSサーバーが機能している場合、データセンターの冗長性をどのように管理できるか知っています。VRRPやマルチWANなどがあります。しかし、DNSサーバー自体はどのようにオンラインにしておくのでしょうか。これは、誰かがサービスに接続したときに最初にヒットし、実際にはプロビジョニングできません。たとえば8.8.8.8またはを意味し8.8.4.4ます。彼らがダウンしたことを思い出せない。ずっと。ISPは、このようなIPを常にオンラインにしておく方法を教えてください。

おそらく非常に幅広い質問であることはわかっていますが、そのために使用できるプロトコル/テクニックの名前だけを聞きたいのですが。自分で詳細を読むことができます。


3
エニーキャストで読んでください。ショート:同じIPアドレスを持つ複数のホストがあります。これがCloudFlare、Google、YouTube、その他の大規模ネットワークの仕組みです。
GiantTree 2017年

google.comとcloudflareには複数のIPがあります。場所などに応じてさまざまなIPがDNSクエリで返されます。ただし、8.8.8.8は実際には単一のIPです。また、それ自体がDNSであるため、「複数のAレコード」やその他のDNSベースの冗長性を使用できません。単一のIPで複数のサイト/ホストを使用できますか?彼らはマルチISP BGPのようなものを使用していますか?
Lapsio

2
GiantTreeが書いたように、それはAnycastです。エニーキャストはDNSを必要としません。
ダニエルB

IPv4はエニーキャストをネイティブでサポートしていません。ウィキペディアによると、私が正しく理解していれば、BGPを使用して実現されているようです。en.wikipedia.org/wiki/Anycast
Lapsio

データグラムサービスの場合、エニーキャストの特別なサポートは必要ありません。これは、各ルーターが独自の最短パスルート計算を実行した結果として発生します。BGPはエニーキャストをネイティブに「サポート」していません(ユニキャストルートと見なします)が、インターネット全体でそれを行う一般的な方法です。
user1686

回答:


10

まず、VRRPはDNSにまったく依存していません。単一サイト内の冗長性のために、共有VRRPアドレスでDNSサーバーをうまく実行できます。

しかし、他の人がコメントで述べたように、サービスはエニーキャストルーティングも使用します。つまり、同じIPアドレスが世界中の複数の場所に存在することになります。サイト全体がダウンすると、世界中のルートが再計算されるため、パケットは最終的に別の稼働サイトに送信されます。

GoogleのパブリックDNSよりも良い例のようになり、ルート DNSサーバ-役立つもの.にゾーンとホールドポインタをcomorgeu、というように-彼らはので、マップ持っている 13個の論理アドレスのすべてのインスタンスのを。ICANNの「L」は160の異なるサイトで提供されています!

エニーキャストは、DNSベースのラウンドロビン(同じ名前に複数のアドレスがある)とは関係がないことに注意してください。エニーキャストは、基本的にルーティングプロトコルに依存することによって行われます。


インターネットはBGPを使用して、組織間でルーティング情報を交換します。

BGPは本質的に、さまざまな基準に基づいて、同じネットワークに向かう複数のルートから最適なルートを選択することをサポートしています。たとえば、同じ顧客が同じISPへの冗長アップリンクを使用している可能性があります(重み/設定のみが異なる2つのルートを発表します)。または、顧客が複数のISPを介してアップリンクを持ち、全員が優先ルート(主に最短のASパス)を選択する場合があります。これが「真の」マルチWANの要点です。

Multihoming

                  ┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter--+            │
             ¦    │             ¦--DNSserver │
client 2 ---ISP---│--BGProuter--+            │
                  └──────────────────────────┘

ただし、BGPはトラフィックを玄関ドアに導くだけで、それ以降に何が起こるかは気にしません。したがって、同じサーバーへの両方のルートを内部で設定すると、マルチホーミングが発生します。しかし、各「入り口」が異なるサーバー(同じIPに設定されている)につながる場合は、エニーキャストが発生します。

Anycast... kind of?

                  ┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
             ¦    │                          │
client 2 ---ISP---│--BGProuter-----DNSserver │
                  └──────────────────────────┘

重要なのは、これは、ASがまったく隣接していない場合でもBGPが気にしないことを意味します。世界規模の冗長性を得るには、複数の物理的な場所から同じネットワークをアナウンスするだけです–それらの場所を一緒に接続すると(そのネットワークが1つの場所にルーティングされるように)、マルチホーミングが得られます。それらが島である場合、エニーキャストを取得します。

Anycast

                  ┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
             ¦    └──────────────────────────┘
             ¦
             ¦    ┌────────[AS 65535]────────┐
client 2 ---ISP---│--BGProuter-----DNSserver │
                  └──────────────────────────┘

(さらに言えば、同じASである必要はありません。たとえば、6to4リレーは複数の独立した組織によって運営されており、それぞれがへの独自のルートを発表してい192.88.99.0/24ます。)

注意事項:

  • エニーキャストは冗長性を提供しますが、ロードバランシングは提供しません。BGPが収束すると、各ルーターは単一の優先ルート(または場合によってはいくつか)を選択し、ネットワークが変更されるまでそれを使用し続けます。

  • ただし、ルートが安定したままになる期間を予測することはできないため、エニーキャスティングステートフルサービスは扱いにくい場合があります。ステートレスであり、主にUDPを使用しているため、DNSはそれを回避します(EDNSはTCP接続の必要性を減らしました)。

  • サービスがクラッシュした場合にルートが撤回されるように、実際のサービスとBGPルーターの間には調整が必要です。

「4.2.2.2の歴史。ストーリーとは?」もご覧ください。NANOGメーリングリスト:投稿1投稿2


「この1つの奇妙なトリックを使用して60秒未満で回答を受け入れる方法」
user1686

直前の段落で「島」とは何ですか?接続されていないサイトだけですか?
Lapsio

はい–相互に接続されていない、または残りのネットワークの一部。(これは単なる例ですが、1つの大きな相互接続ネットワーク内に内部エニーキャストを実装することも可能です。これもルーティングプロトコルを
だますこと

0

これを実現する1つの方法は、サーバー側バランサーを使用することです。IP 8.8.8.8でゲートウェイに接続すると、システム内の1つの無料サーバーにリクエストが配信されます。その結果、1つのサーバーが停止しても、システム全体がダウンすることはありません。

インターネットサービスの場合、サーバー側のロードバランサーは通常、外部クライアントがサービスにアクセスするために接続するポートでリッスンするソフトウェアプログラムです。ロードバランサーは、リクエストを「バックエンド」サーバーの1つに転送します。バックエンドサーバーは通常、ロードバランサーに応答します。これにより、クライアントが機能の内部分離について知る必要なく、ロードバランサーがクライアントに応答できます。また、クライアントがバックエンドサーバーに直接接続するのを防ぎます。これは、内部ネットワークの構造を隠し、カーネルのネットワークスタックまたは他のポートで実行されている関連のないサービスへの攻撃を防ぐことにより、セキュリティ上の利点があります。

一部のロードバランサーは、すべてのバックエンドサーバーが利用できない場合に特別な処理を行うメカニズムを提供します。これには、バックアップロードバランサーへの転送や、停止に関するメッセージの表示が含まれる場合があります。

ロードバランサー自体が単一障害点にならないことも重要です。通常、ロードバランサーは高可用性ペアで実装され、特定のアプリケーションで必要な場合は、セッションの永続性データも複製される場合があります。[5]


そうですが、ロードバランサーは、VRRP、ルーティングプロトコルなどの他の高可用性技術を使用している場合にのみ、単一障害点ではありません。ただし、VRRPまたはIGPは、むしろLANソリューションです。つまり、データセンターへのISPボーダーWAN接続が失敗したとしましょう。もちろん、会社はマルチWANを持っているので、サイトゲートウェイが別のWANリンクに切り替えることができる限り問題はありませんが、同じIPをキープすることは問題のままです。DNSが利用可能な場合は問題ありません-複数のAまたはAAAAの再試行が行われます。しかし、それがDNSサーバー自体である場合、唯一の解決策は複数のISP間のエニーキャスト/ BGPです。
Lapsio

私はゲートウェイの後の WAN高可用性ソリューションについて言及していました。ISPの災害により、会社のサイト全体が世界から到達できない場合。8.8.8.8は、ISPが機能することを想定できません。文字通り全世界があなたのサービスに依存しているとき、あなたは単一の会社に依存することはできません
Lapsio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.