同じ DNS 上の複数のサーバーによる冗長性

同じ DNS 上の複数のサーバーによる冗長性

私は のようなドメイン名を持っていますapi.test.com。また、サーバーも 3 つ持っています。

それらの間に冗長性を持たせたいので、1 つのサーバーがオフラインの場合、ドメイン名はapi.test.comそのサーバーにリダイレクトされず、他のサーバーにのみリダイレクトされます。

A同じドメイン名に複数の/レコードを設定できることがわかりましたAAAAが、コンピューターが ping を実行したかどうかは考慮されず、使用可能なすべての IP のうちの 1 つがランダムに付与されるだけです。

冗長性を持たせるにはどうしたらいいでしょうか? プロキシなど、すべてのリクエストをリダイレクトする別のサーバーを用意する必要がありますか?

答え1

いいえ、そのようには動作しません。ゾーンには、特定のタイプと名前のレコードを複数設定できます。クライアントは通常、そのことを認識せず、特定の名前とタイプを要求します (たとえば、ブラウザは、アドレス ボックスに入力したタイプ A、AAAA の名前を要求します)。

複数のレコードが返された場合、ランダムに 1 つ選択し、そこに接続しようとします。別のレコードがある場合、クライアントは接続を再試行する必要があります。サーバーも、同じクエリに毎回異なる順序のレコードで応答することで、この動作を促します。そのため、一部のクライアントが「常に最初のレコードを選択する」場合でも、サーバー上でランダム化が行われます。このようにして、負荷分散の原始的な形式が実現されます。

特殊な DNS ロード バランサーは、非常に低い TTL で A レコードを返すため、すぐに期限切れになります。そのため、サーバーは、応答からアドレスを省略することで、突然の負荷の急増やバックエンド ノードの停止にすばやく対応できます。Zoom のビデオ会議サーバーを解決しようとすると、これが実際に動作しているのがわかります。この技術が使用されています。ただし、この名前の DNS を管理するには、この特殊なソフトウェア、つまり DNS ロード バランサーが必要です。これは、ほんの始まりにすぎません。

通常、A レコードで受信した最初の試行 IP が応答しない場合、Web クライアントは、試行する他の IP があったとしても、通常は失敗を返します。実際に再試行するソフトウェアもあります。たとえば、OpenVPN は無制限に再試行できますが、これは特殊なケースです。


DNSは、十分に賢いクライアントを想定して、全く異なるメカニズムで冗長性を提供します。DNSレコードには、SRV(サービス) には、優先度、重み、ポート、名前の 4 つのデータ フィールドがあります。

名前は最も単純です。この SRV レコードが記述する A レコードの名前です。ポートは、要求されたサービスがその名前のサーバー上に存在する TCP または UDP ポートです。これは、A または AAAA レコードが関連付けられている名前である必要があります。CNAME は許可されていません。その名前の A または AAAA レコードが複数ある場合、この特定の SRV レコードに対して通常の「1 回試行」DNS 動作が行われます (ただし、クライアントは、優先度の高い値など、他の SRV レコードがある場合はそれを試行する必要があります)。

重みにより、負荷分散をより詳細に制御できます。同じ優先度のレコードが複数ある場合、クライアントは重みに応じて負荷を分散する必要があります。これは、多くの場合、確率的に行われます。

優先順位は冗長性のためです。最初に最も低い値を持つレコードを試行し、次に次の優先順位を持つレコードを試行します。ただし、再試行はクライアント次第です。

記録は次のようになります:

_kerberos._tcp.example.net. SRV 0 100 88 dc.example.net.

レコード名にあるアンダースコアは、実際には文字どおりのアンダースコアです。これは、「kerberos」サービスが dc.example.net ポート 88 で TCP 経由で提供されることを示しています。dc.example.net は A または AAAA レコードである必要があります。この例は MS Active Directory からのもので、適切な動作のために DNS に大きく依存しており、ldap (ディレクトリ) と kerberos (セキュリティ フレームワーク) に使用しています。AD ドメイン コントローラーが複数ある場合は、異なる DC を指すこのようなレコードがさらに存在します。

このタイプのレコードは、例えば、ldap、kerberos、kpasswd(kerberosパスワード変更)、xmpp(jabber)、sip(IPテレフォニー)などに使用されます。その他サービス。

メキシコは「SRV の特別なケース」のようなもので、ポート 25 に結び付けられ、「優先度」フィールドのみを持ち、「重み」はありません。これは単に「古いスタイル」であり、SRV より前に発明されました (そして SRV に影響を与えました)。そして、電子メールにのみ使用されます。

SRV は Web サービスには役立ちません。クライアントが SRV レコードを使用してサーバーを検出することを知っているサービスにのみ役立ちます。Web クライアントはこれを決して行いません。

関連情報