こんにちは2つのネームサーバーns1.example.orgとns2.example.orgで私のドメインexample.orgにDNSサーバーを設定しました。レジストラでns1とns2のグルーレコードを設定しようとしました。
今のところ、Dig example.orgを実行すると機能するようですが、whois example.orgを実行すると、ns1.example.orgとns2.example.orgが一覧表示されますが、グルーレコードとして設定する必要があるIPアドレスは表示されません。
では、グルーレコードの存在を確認するにはどうすればよいのでしょうか。 whoisでそれを行うのですか?ドメイン名とネームサーバーのIPアドレスの両方を含む.comおよび.net whoisレコードを確認しましたが、.orgは異なりますか?これをテストする適切な方法は何ですか?
ありがとう。
グルーレコードは、ドメイン名の親ゾーンにのみ存在します。
したがって、あなたの場合はexample.org
ドメイン名、最初に.org
ネームサーバー:
% Dig +short org. NS
a0.org.afilias-nst.info.
a2.org.afilias-nst.info.
b0.org.afilias-nst.org.
b2.org.afilias-nst.org.
c0.org.afilias-nst.info.
d0.org.afilias-nst.org.
次に、テストしたい数だけ、これらのネームサーバーにドメインのNS
レコードを明示的に要求します。
% Dig +norec @a0.org.afilias-nst.info. example.org. NS
「ANSWER SECTION」のNS
レコードの正しいリストを取得する必要があります。正しく接着剤が設定されているネームサーバーの場合、これらの接着剤A
(およびAAAA
)レコードが「ADDITONAL SECTION」に表示されます。
GLUEレコードが設定されているかどうかを確認するには:
Dig +trace @a.root-servers.net ns0.nameserverhere.com
GLUEが設定されている場合は、次で終わるレコードが表示されます。
“Recevied XXX bytes from x.GTLD-SERVERS.NET.”
http://www.intodns.com/ のようなあなたのためにそれを行うサイトもあります。
以下は、Alnitakの答えを実装する小さなシェルスクリプトです。
#!/bin/sh
S=${IFS}
IFS=.
for P in $1; do
TLD=${P}
done
IFS=${S}
echo "TLD: ${TLD}"
DNSLIST=$(Dig +short ${TLD}. NS)
for DNS in ${DNSLIST}; do
echo "Checking ${DNS}"
Dig +norec +nocomments +noquestion +nostats +nocmd @${DNS} $1 NS
done
ドメインの名前をパラメーターとして渡します。
./checkgluerecords.sh example.org
Dig +trace
は通常、委任のチェーンを検査する最も簡単な方法です。ただし、グルーレコードは追加セクションにあり、デフォルトではトレース出力に追加セクションは含まれません。これを出力に含めることを明示的に指定する必要があります。
Dig +trace +additional example.com
アイデアが委任チェーンの健全性をチェックすることである場合、おそらくこの場合、信頼できるNS
レコードも確認する必要があります。
Dig +trace +additional example.com NS
レジストリでサポートされている場合は、whois
を使用して、特定のネームサーバーのグルーの存在を直接確認することもできます。たとえば、serverfault.comのネームサーバーの1つを確認するには、次のようにします。
whois ns-860.awsdns-43.net.
より簡潔な応答の場合:
whois ns-860.awsdns-43.net. | grep "No match\|IP" | xargs
注:これは.netおよび.com名前空間内のネームサーバーでは確実に機能しますが、他のほとんどのレジストリでは機能しない可能性があります。