Digまたはnslookupを使用して、サーバーがマスターまたはスレーブのどちらに設定されているかを判断する方法はありますか?サーバーがスレーブの場合、マスターのIPアドレスを返しますか?
私の知る限り、答えはノーです。DNSサーバーには数十億のバリエーションがあるため、確かに標準的な方法はありません。 1つのオプションは、マスターのIPアドレスが含まれていることが保証された「masterdns.mydomain.com」レコードを作成することです(公開しないでください。必要ありません)。次に、必要なのは、マスターに提供するIPへのDNSサーバーで、準備は完了です。エイリアシング/マルチホーミング/何でも(別のサーバーであることを保証することはできません)のため、これも不完全ですが、..
..これらすべてを自分で設定していることを暗示しているようです。その場合は、masterdns.mydomain.comレコードが必要です。
いいえ、方法はありません。 DNSプロトコルは、外部からマスター/スレーブの関係を学習するために何も提供しません。
また、この区別は今日ではしばしばなくなっています。多くのドメインにはマスターのみがあり、共通のデータベースで同期されています。
ヒューリスティックを使用することはできますが(Maasの提案を参照するか、シリアル番号の増加を使用してください。増加する最初のネームサーバーがマスターになります)、明らかに信頼性がありません。
まず、技術的には、DNSサーバーは必ずしもマスターまたはスレーブだけである必要はありません。これは、ドメインごとに異なる場合があります。一部のドメインではマスターであり、他のドメインではスレーブである可能性があります。
ドメイン名のDNSゾーンが正しく構成されている場合は、ゾーンのSOAレコードを要求できます。このレコードには、(とりわけ)プライマリDNSサーバー(マスター)のホスト名が含まれています。
例えば:
C:\>nslookup
Default Server: UnKnown
Address: 192.168.1.1
> set type=SOA
> google.com.
Server: UnKnown
Address: 192.168.1.1
Non-authoritative answer:
google.com
primary name server = ns1.google.com
responsible mail addr = dns-admin.google.com
serial = 1396486
refresh = 7200 (2 hours)
retry = 1800 (30 mins)
expire = 1209600 (14 days)
default TTL = 300 (5 mins)
これで、プライマリサーバー名(SOAレコードから-この場合は「ns1.google.com」から)で別のルックアップを実行して、マスターのIPアドレスを取得できます。
C:\nslookup ns1.google.com.
Server: UnKnown
Address: 192.168.1.1
Non-authoritative answer:
Name: ns1.google.com
Address: 216.239.32.10
この場合の答えは216.239.32.10です。