NSレコードを生成するPowerDNSサーバーがあります。私のドメインは次のとおりですexample.com
。
cluster NS node1.cluster.example.com
cluster NS node2.cluster.example.com
node1.cluster A 1.1.1.1
node2.cluster A 1.1.1.2
1.1.1.1と1.1.1.2は外部ネームサーバーです。
私が望むもの:
- Cluster.example.comを発掘してください。
- 私のDNS要求をノード1またはノード2のいずれかに移動する
- DNS要求が解決されました。
私が持っているもの:
Cluster.example.comを発掘してください。
;; QUESTION SECTION: ;cluster.example.com. IN A ;; AUTHORITY SECTION: cluster.example.com. 3600 IN NS node2.cluster.example.com. cluster.example.com. 3600 IN NS node1.cluster.example.com. ;; ADDITIONAL SECTION: node2.cluster.example.com. 3600 IN A 1.1.1.2 node1.cluster.example.com. 3600 IN A 1.1.1.1
掘り下げても答えが得られませんでした。
それでもうまくいきますdig cluster.example.com @1.1.1.2
。
私はDNSの能力があまりないので、助けてくれてありがとう。
答え1
構文を考案すると動作しません。
NSの前にあるのはドメイン名です。ここに入力しない場合、デフォルトは現在の名前です(例:example.com.
。
DNSのデフォルト動作に応じて、現在のドメイン名をオブジェクト(クラスタなど)に追加し、定義しませんcluster.example.com.
。
DNSベースのクラスタを定義するには、次の手順に従います。
NS cluster.example.com.
cluster A 1.1.1.1
cluster A 1.1.1.2
または、自分のコメントをより詳しく説明するには、次の手順を実行します。
example.com. NS cluster.example.com.
cluster A 1.1.1.1
cluster A 1.1.1.2
2つのホストに対して特別に定義し、cluster
NSレコードがCNAMEを指してはいけないため、ノード1とノード2を使用しませんでした。
~からDNSでIN NSがCNAMEを指すことはできますか?
NSレコードがCNAMEを指すのは悪く、現在BINDサーバーと重大な競合を引き起こす可能性があります。実際、現在の BIND 実装ではこれらのレコードを無視するため、不都合な委任が発生する可能性があります。 DNS NS レコードのなりすましを防ぐために、BIND にはさまざまなセキュリティチェックが実装されています。また、以前のBINDサーバーがエイリアスサーバーのアドレスを調べようとする無限クエリループに閉じ込められ、持続的なDNS要求ストリームが送信されることが報告されています。
またはまだ持っているnode1
名前がある場合node2
:
example.com. NS cluster.example.com.
cluster A 1.1.1.1
cluster A 1.1.1.2
node1 A 1.1.1.1
node2 A 1.1.1.2
注:DNSベースのクラスタリングアプローチでは、1つのノードに障害が発生した場合にクライアントが通信するノードを選択するため、期待した結果が得られないことがよくあります。
DNSクラスタを作成するより高度な(より信頼性の高い)方法があります。DNS エニーキャスト、これはこの回答の範囲外です。