web-dev-qa-db-ja.com

すべてのDNSレコードを一覧表示する方法

ドメインのすべてのDNSレコードを一覧表示する方法はありますか?

私はDigやnslookupのようなものについては知っていますが、それらはこれまでのところ行きます。たとえば、サブドメインAレコードが

test A somedomain.co.uk

特に私がそれを要求しない限り。

Dig any test.somedomain.co.uk

見えません。

すべてのDNSレコードが正確に何であるかを正確に確認するには、(DNSマネージャーにアクセスしてレコードを見る以外に)方法はありますか?

152
Ken

ANYを照会すると、そのレベルのすべてのレコードのリストが表示されますが、その下には表示されません。

# try this
Dig google.com any

ドメイン名が正確に "google.com"の場合、Aレコード、TXTレコード、NSレコード、MXレコードなどが返されることがあります。ただし、子レコードは返されません(例:www.google.com)。より正確には、これらのレコードが存在する場合は取得することができます。ネームサーバは、そうしないことを選択した場合(たとえば、応答のサイズを小さくするため)、これらのレコードを返す必要はありません。

AXFRはゾーン転送であり、おそらくあなたが望むものです。ただし、これらは通常制限されており、ゾーンを制御しない限り使用できません。通常は権限のあるサーバー(@ ns1.google.com)から直接ゾーン転送を行い、公開されない可能性があるネームサーバー(ステルスネームサーバー)からゾーン転送を行うことがよくあります。

# This will return "Transfer failed"
Dig @ns1.google.com google.com axfr

ゾーンを管理している場合は、TSIGキーで保護されている転送を取得するように設定できます。これは、転送を許可するためにクライアントがサーバーに送信できる共有秘密です。

170
denis phillips

Josh の答えを改善しました。私はDigが照会されたネームサーバーのキャッシュに既に存在するエントリーのみを表示することに気づいたので、(デフォルトのネームサーバーに頼るよりも)SOAから正式なネームサーバーを引き出すほうが良いです。また、通常は設定の正確さに関心があるため、ワイルドカードIPのフィルタリングも無効にしました。

新しいスクリプトは、拡張出力用の-x引数と、特定のネームサーバーを選択するための-s NS引数を取ります。Dig -x example.com

#!/bin/bash
set -e; set -u
COMMON_SUBDOMAINS="www mail mx a.mx smtp pop imap blog en ftp ssh login"
EXTENDED=""

while :; do case "$1" in
  --) shift; break ;;
  -x) EXTENDED=y; shift ;;
  -s) NS="$2"; shift 2 ;;
  *) break ;;
esac; done
DOM="$1"; shift
TYPE="${1:-any}"

test "${NS:-}" || NS=$(Dig +short  SOA "$DOM" | awk '{print $1}')
test "$NS" && NS="@$NS"

if test "$EXTENDED"; then
  Dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
  wild_ips=$(Dig +short "$NS" "*.$DOM" "$TYPE" | tr '\n' '|')
  wild_ips="${wild_ips%|}"
  for sub in $COMMON_SUBDOMAINS; do
    Dig +nocmd $NS "$sub.$DOM" +noall +answer "$TYPE"
  done | cat  #grep -vE "${wild_ips}"
  Dig +nocmd $NS "*.$DOM" +noall +answer "$TYPE"
else
  Dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
fi
21
dan3

ゾーン転送を実行する機能がないので、この小さなbashスクリプトdgを書きました。

#!/bin/bash
COMMON_SUBDOMAINS=(www mail smtp pop imap blog en ftp ssh login)
if [[ "$2" == "x" ]]; then
    Dig +nocmd "$1" +noall +answer "${3:-any}"
    wild_ips="$(Dig +short "*.$1" "${3:-any}" | tr '\n' '|')"
    wild_ips="${wild_ips%|}"
    for sub in "${COMMON_SUBDOMAINS[@]}"; do
        Dig +nocmd "$sub.$1" +noall +answer "${3:-any}"
    done | grep -vE "${wild_ips}"
    Dig +nocmd "*.$1" +noall +answer "${3:-any}"
else
    Dig +nocmd "$1" +noall +answer "${2:-any}"
fi

今、私はdg example.comを使ってきれいできれいなDNSレコードのリストを得るか、dg example.com xを使って他の人気のあるサブドメインをたくさん取り入れます。

grep -vE "${wild_ips}"は、* 10800 IN A 1.38.216.82などのワイルドカードDNSエントリの結果である可能性があるレコードを除外します。それ以外の場合は、ワイルドカードを入力すると、各$COMMON_SUBDOMANにレコードがあるように見えます。

注:これは CloudFlareなどの一部のDNSプロバイダーによってブロックされている であるANYクエリに依存しています。

15
Zaz
  1. ゾーン転送は、すべてのサブドメインレコードがあることを確認する唯一の方法です。 DNSが正しく設定されていれば、通常は外部ゾーン転送を実行できないはずです。

  2. scans.io プロジェクトには、ダウンロードしてサブドメインを検索できるDNSレコードのデータベースがあります。これには、87GBのDNSデータをダウンロードする必要があります。あるいは、 https://hackertarget.com/find-dns-Host-records/ でデータのオンライン検索を試すこともできます。

13
squizzy99

あなたが欲しいものは ゾーン転送 と呼ばれます。 Dig -t axfrを使ってゾーン転送をリクエストできます。

zone はドメインであり、その下の別のサーバーに委任されていないすべてのドメインです。

ゾーン転送は常にサポートされているわけではないことに注意してください。通常の検索では使用されず、サーバー間でDNSデータを複製する場合にのみ使用されます。しかし、そのために使用できるプロトコルは他にもあります(rsync over sshなど)。名前を公開することによるセキュリティ上のリスクがある可能性があり、ゾーン転送応答の生成と送信に通常のDNSルックアップよりもコストがかかります。

11
deltab

Host -aDig anyと同様にうまく動作します。

例えば:

$ Host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:
;google.com.            IN  ANY

;; ANSWER SECTION:
google.com.     1165    IN  TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com.     53965   IN  SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com.     231 IN  A   173.194.115.73
google.com.     231 IN  A   173.194.115.78
google.com.     231 IN  A   173.194.115.64
google.com.     231 IN  A   173.194.115.65
google.com.     231 IN  A   173.194.115.66
google.com.     231 IN  A   173.194.115.67
google.com.     231 IN  A   173.194.115.68
google.com.     231 IN  A   173.194.115.69
google.com.     231 IN  A   173.194.115.70
google.com.     231 IN  A   173.194.115.71
google.com.     231 IN  A   173.194.115.72
google.com.     128 IN  AAAA    2607:f8b0:4000:809::1001
google.com.     40766   IN  NS  ns3.google.com.
google.com.     40766   IN  NS  ns4.google.com.
google.com.     40766   IN  NS  ns1.google.com.
google.com.     40766   IN  NS  ns2.google.com.
10
Datavar

Windowsの場合

ドメインのDNSレコードのステータスを確認する必要がある場合や、ネームサーバーを調べてサーバーがどのレコードを取得しているかを確認する必要がある場合があります。

  1. [スタート]> [コマンドプロンプト]または[実行]> [CMD]を選択して、Windowsのコマンドプロンプトを起動します。

  2. NSLOOKUPと入力してEnterキーを押します。デフォルトのサーバーはローカルのDNSに設定され、アドレスはローカルのIPになります。

  3. Set type = ##と入力して検索するDNSレコードタイプを設定します。##はレコードタイプです。次にEnterキーを押します。 A、AAAA、A + AAAA、ANY、CNAME、MX、NS、PTR、SOA、またはSRVをレコードタイプとして使用できます。

  4. ここであなたが問い合わせたいドメイン名を入力してEnterを押してください。この例では、Managed.comを使用します。

  5. NSLOOKUPはあなたが入力したドメインのレコードエントリを返します。

  6. 照会しているネームサーバーを変更することもできます。これは、DNSが完全に伝播する前にレコードを確認している場合に役立ちます。ネームサーバーを変更するには、server [ネームサーバー]と入力します。 [ネームサーバー]を使用したいネームサーバーに置き換えます。この例では、これらをNSA.managed.comとして設定します。

  7. 変更したら、必要に応じてクエリタイプを変更し(ステップ3)、新しいドメインを入力します(ステップ4)。

Linuxの場合

1)Digコマンドを使用してDNSレコードを確認するDigは、ドメイン情報の略語です。groperは、DNSネームサーバに問い合わせるための柔軟なツールです。 DNSルックアップを実行し、照会されたネームサーバーから返された回答を表示します。ほとんどのDNS管理者は、その柔軟性、使いやすさ、明確な出力のために、Digを使用してDNSの問題をトラブルシューティングします。他の検索ツールはDigより機能が少ない傾向があります。

2)NSlookupコマンドを使用してDNSレコードを確認するNslookupは、インターネットドメインネームサーバーに照会するプログラムです。 Nslookupには、対話型と非対話型の2つのモードがあります。

対話モードでは、ユーザはネームサーバにさまざまなホストやドメインに関する情報を問い合わせたり、ドメイン内のホストのリストを印刷したりできます。

非対話モードは、ホストまたはドメインの名前と要求された情報だけを印刷するために使用されます。 DNS関連の問題を確認してトラブルシューティングするのに役立つネットワーク管理ツールです。

3)ホストコマンドを使用してDNSレコードをチェックするホストはDNSルックアップを実行するためのシンプルなユーティリティです。通常、名前からIPアドレスへの変換、およびその逆の変換に使用されます。引数やオプションが与えられていない場合、Hostはそのコマンドライン引数とオプションの簡単な要約を表示します。

1
Kervin L

1つのインスタンスでドメインのすべてのDNSレコードを取得する簡単な方法はありません。例えば、特定のドメインのAレコードを見たい場合は、特定のレコードのみを表示できます。Dig a(レコードの種類)domain.comを使用できます。これは、そのドメインについて見たい他のすべてのタイプのレコードについても同じです。

コマンドラインインターフェイスに慣れていない場合は、mxtoolbox.comなどのサイトも使用できます。 Wichはドメインの記録を取得するための非常に便利なツールです。

これであなたの質問に答えられると思います。

0
Mike Fraanje