発掘紹介: Dig は、Unix ライクなコマンドライン モードで NS レコード、A レコード、MX レコード、その他の関連情報を含む DNS を照会するツールです。 Dig のマニュアル ページのドキュメントはまだ不足しているため、この記事は dig の使用ガイドとして役立ちます。 Dig のソース コードは ISC BIND パッケージの一部ですが、Bind のコンパイルとインストールに関するほとんどのドキュメントには含まれていません。ただし、Linux システムでは、通常、Gentoo の bind-tools、Redhat/Fedora の bind-utils、Debian の dnsutils などのパッケージの一部です。 Bind の設定方法に関する情報をお探しの場合は、私の記事「ショッピングモール LAN の Bind (http://www.madboa.com/geek/soho-bind/)」を参照してください。デフォルトの出力を理解する: 最も単純で一般的なクエリは単一のホストをクエリすることですが、デフォルトでは、Dig の出力は非常に詳細です。すべての出力が必要ないかもしれませんが、知っておく価値はあります 注釈付きのクエリは次のとおりです。 $ www.isc.org を掘り下げる 上記は、dig を呼び出すために使用したコマンド ラインです。 ; <<>> DiG 9.2.3 <<>> www.isc.org ;; グローバルオプション: printcmd dig 出力の一部には、バージョン (バージョン 9.2.3) とグローバル設定に関する情報が示されています。コマンド ラインの最初のパラメータが +nocmd である場合、+nocmd を追加することで、出力のこの部分を照会できます。 ;; 回答が得られました: ;; ->>HEADER<<- オペコード: QUERY、ステータス: NOERROR、ID: 43071 ;; フラグ: qr rd ra; クエリ: 1、回答: 1、権限: 3、追加: 3 ここで、Dig は DNS から返されたいくつかの技術情報を示します。この情報はオプション +[no]comments で制御できますが、コメントを無効にすると他のオプションも無効になる可能性があるので注意してください。 ;; 質問セクション: ;www.isc.org. IN A このクエリ セクションでは、Dig はクエリの出力を表示します。デフォルトのクエリは A レコードをクエリすることです。+[no]question オプションを使用して、これらを表示または無効にすることができます。 ;; 回答セクション: www.isc.org. 600 IN A 204.152.184.88 最後に、クエリの結果を取得します。 www.isc.org のアドレスは 204.152.184.8 です。なぜこの出力をフィルタリングするかはわかりませんが、+[no]answer でこれらのオプションを保持できます。 ;; 権限セクション: isc.org. 2351 IN NS ns-int.isc.org. isc.org. 2351 IN NS ns1.gnac.com. isc.org. 2351 IN NS ns-ext.isc.org. この権威あるステートメントは、どの DNS サーバーが権威ある回答を提供するかを示します。この例では、isc.org には 3 つのネーム サーバーがあります。この出力を保持するには、+[no]authority オプションを使用できます。 ;; 追加セクション: ns1.gnac.com. 171551 IN A 209.182.216.75 ns-int.isc.org. 2351 IN A 204.152.184.65 ns-int.isc.org. 2351 IN AAAA 2001:4f8:0:2::15 これらの追加オプションには通常、リストされている権限のある DNS サーバーの IP アドレスが含まれており、この出力は +[no]additional オプションを使用して保持できます。 ;; クエリ時間: 2046 ミリ秒 ;; サーバー: 127.0.0.1#53(127.0.0.1) ;; 日時: 2004 年 8 月 27 日金曜日 08:22:26 ;; 受信したメッセージサイズ: 173 デフォルト出力の最後のセクションにはクエリ統計が含まれており、+[no]stats で保持できます。 何を照会できますか? Dig を使用すると、DNS を効率的にクエリできます。最もよく使用されるクエリは、A レコード、TXT (テキスト コメント)、MX レコード、NS レコード、または包括的なクエリです。 yahoo.com の A レコードを見つけます: (これはドメインであり、ホストではありません。たとえば、私の会社は xinpindao.com です) yahoo.com MXレコードのリストを見つける: yahoo.com の権威 DNS を見つける: 上記のすべてのレコードをクエリします: IPv4 と IPV6 が混在している現在の状況では、AAAA オプションを使用してホストの IPv6 AAAA レコードを照会することもできます。 www.isc.orgを掘る AAAA +short 照会したいドメインが転送を許可している場合は、インターネット上の DNS レコードの有効期間などの関連情報も照会できますが、無制限の転送を許可している DNS は現在ごくわずかです。 どうやって確認するのでしょうか?簡潔な回答をご希望ですか? すぐに回答が必要な場合は、+short オプションが最適です。 www.isc.org を掘り下げる +short 204.152.184.88 あまり簡潔ではない答えがありますか? 簡潔な答えを持つことと、答えが 1 つしかないことは違います。 追加情報なしで詳細な回答を得るには、必要な出力のみを保持する +noall オプションを使用します。 $ dig fsf.org mx +short 20 mx20.gnu.org です。 30 mx30.gnu.org です。 10 mx10.gnu.org です。 $ dig +nocmd fsf.org mx +noall +answer fsf.org. 3583 IN MX 30 mx30.gnu.org. fsf.org. 3583 IN MX 10 mx10.gnu.org. fsf.org. 3583 IN MX 20 mx20.gnu.org. 詳しい回答をご希望ですか? マニュアル ページでは、+multiline オプションを使用して、DSN の SOA レコードの長い複数行のわかりやすい解説を取得できます。一般的に、+multiline オプションで取得される情報は、BIND 構成ファイルと同様に、多くの情報を表示できます。 $ dig +nocmd ogi.edu 任意 +複数行 +noall +回答 ogi.edu. 14267 IN A 129.95.59.31 ogi.edu. 14267 IN MX 5 cse.ogi.edu. ogi.edu. 14267 IN MX 15 hermes.admin.ogi.edu. ogi.edu. 14267 IN SOA zeal.admin.ogi.edu. hostmaster.admin.ogi.edu. ( 200408230 ; シリアル 14400; リフレッシュ(4時間) 900 ; 再試行 (15 分) 3600000; 有効期限(5週間6日16時間) 14400; 最低(4時間) ) ogi.edu. 14267 IN NS zeal.admin.ogi.edu. ogi.edu. 14267 IN NS cse.ogi.edu. ogi.edu. 14267 IN NS fork.admin.ogi.edu. PTR レコードを探していますか? -x オプションを使用して、IP アドレスのホスト名を見つけることができます。 $ dig -x 204.152.184.167 +ショート mx-1.isc.org をご覧ください。 このループでは、スクリプトは指定されたサブネット内の名前を柔軟にマッピングします。 #!/bin/bash NET=18.7.22 $(seq 1 254)のnに対して アドレス=${NET}.${n} echo -e "${ADDR}\t$(dig -x ${ADDR} +short)" 終わり 別のネーミング サーバーを照会しますか? クエリコマンドは次のとおりです。 dig @ns1.google.com www.google.com /etc/resolv.confのレコードを使用してクエリを実行します ホストは/etc/resolv.confファイルからDNSレコードを自動的に照会します。 $ ホスト www www.madboa.com のアドレスは 65.102.49.170 です ただし、デフォルトでは、dig は予期しない出力を生成します。完全なドメイン名ではなくローカルホスト名を検索する場合は、+検索オプションを使用します。 wwwを掘る +検索 ほとんどのクエリを処理しますか? 多数のホスト名を照会する場合は、それらをテキスト ファイル (1 行に 1 つのレコード) に保存し、dig で -f パラメータを使用して 1 つずつ照会することができます。 # 多数のホスト名を照会する dig -f /path/to/host-list.txt # 同じだが、より明示的な出力 dig -f /path/to/host-list.txt +noall +answer ただし、dig 9.2.3 以降のバージョンでは、-f オプションを使用した逆クエリはサポートされていないことをお伝えしておきます。 DNSマッピングを確認する DNS 設定が正しくないと、多くの問題が発生する可能性があります。次の 2 つの方法で DNS 設定を確認できます。 1. 各ホスト名は IP アドレスに解決される必要があり、その IP アドレスもそのホスト名を指す必要があります。 2. サブネット上のアドレスがホスト名を指している場合は、そのホスト名もこの IP を指している必要があります。これら 2 つのルールにはいくつか例外があります。たとえば、CNAME は最初に別のホスト名に解決され、1 つの IP のみを指すことができます。複数のホスト名が同じ IP アドレスを指す場合もありますが、その IP には 1 つの PTR レコードしか設定できません。これらを組み合わせることで、DNS マッピングが期待どおりに機能しているかどうかを確認できるようになります。また、以下に示すように、既知のホスト名を書き込むテスト スクリプトを作成することもできます。これは非常に単純で、実行すると、CNAME をキャッチしたときに中断し、複数のホスト名が同じ IP アドレスを指している場合はエラーを報告します。ホスト名を含むファイルは named-hosts と呼ばれていると想定します。 #!/bin/bash # # DNSの順方向マッピングと逆方向マッピングをテストする # # この変数を編集して、ローカルクラス C サブネットを反映させます NETS="192.168.1 192.168.2" # 名前からアドレス、名前の有効性をテストする エコー echo -e "\tname -> アドレス -> 名前" エコー '----------------------------------' Hを読んでいる間、 ADDR=$(dig $H +short) テスト -n "$ADDR"; の場合 HOST=$(dig -x $ADDR +short) テスト「$H」=「$HOST」の場合、 echo -e "ok\t$H -> $ADDR -> $HOST" elif test -n "$HOST"; その後 echo -e "失敗\t$H -> $ADDR -> $HOST" それ以外 echo -e "fail\t$H -> $ADDR -> [未割り当て]" フィ それ以外 echo -e "fail\t$H -> [未割り当て]" フィ 完了 < 名前付きホスト # アドレスから名前、アドレスの有効性をテストする エコー echo -e "\tアドレス -> 名前 -> アドレス" エコー '-------------------------------------' $NETSのNETの場合、 $(seq 1 254)のnに対して A = ${NET}.${n} HOST=$(dig -x $A +short) テスト -n "$HOST"; の場合 ADDR=$(dig $HOST +short) テスト「$A」=「$ADDR」の場合、 echo -e "ok\t$A -> $HOST -> $ADDR" elif test -n "$ADDR"; その後 echo -e "fail\t$A -> $HOST -> $ADDR" それ以外 echo -e "fail\t$A -> $HOST -> [未割り当て]" フィ フィ 終わり 終わり 興味深い掘り出し物 独自のnamed.rootファイルを作成する インターネットに接続されている DNS サーバーには、インターネットのルート DNS をすべてリストした InterNIC の named.root ファイルのコピーが必ず存在します。面倒なことが嫌いでなければ、いつでも InterNIC の ftp サーバーからダウンロードできます。または、dig コマンドを使用して独自のおしゃれな named.root を作成することもできます。 # ftp://ftp.internic.net/domain/named.root と比較する dig +nocmd . NS +noall +answer +追加 ここでの TTL 値は非常に小さいかもしれませんが、これは見つかった最新の named.root ファイルです。 digのクエリパスの追跡 あなたはトレースルートの愛好家であり、ポイント A からポイント B に接続する方法を頻繁に確認したいかもしれません。 dig +trace オプションを使用して同様の操作を行うことができます。 gentoo.de を掘り下げる +トレース dig 出力のヘッダーでルート DNS を確認し、すべての *.de を解決する DNS を見つけ、最後に gentoo.de のドメイン IP を見つけることができます。 SOAレコードを取得 DNS 管理者として、変更を加えることがありますが、DNS 解決によって古いデータがまだ出力されているかどうかを確認したい場合があります。+nssearch オプションを使用すると、パブリック サーバーの明確な統計情報を提供できます。 # ありのままの真実 cse.ogi.edu を掘る +nssearch # 同じ、シリアル番号とホスト名のみ表示 cse.ogi.edu を dig +nssearch | cut -d' ' -f4,11 TTL値の解釈 私が Google を気に入っている理由はたくさんありますが、その 1 つは、Google が私の Web ログに正確なリンクを提供してくれるので、どのような種類のクエリによって人々がこのサイトのページにたどり着いたのかを簡単に特定できることです。 驚いたことに、TTL 値に関するリクエストをたくさん目にしました。TTL が最も人気になるとは思っていませんでしたが、毎日新しいことを学ぶので、ここで、よくあるリクエストに応えて TTL について少し紹介します。 ローカル DNS からインターネット アドレスをクエリすると、サーバーは信頼できる回答をどこで取得するかを判断し、アドレスを取得します。サーバーは回答を認識すると、その回答をローカル キャッシュに保存し、後で同じアドレスを再度クエリしないようにします。この方法により、インターネットから再度クエリするよりもはるかに速く、必要な回答をキャッシュからすばやく取得できます。 ドメイン管理者は DNS レコードを構成する際に、レコードをキャッシュ内に保持する期間を決定できます。これが TTL 値です (通常は秒単位で表されます)。 通常、リモート サーバーは TTL 値と同じ期間だけレコードをキャッシュします。時間が経過すると、サーバーはローカル キャッシュを更新し、信頼できる回答を再度クエリします。 dig を使用して DNS サーバーにレコードを照会すると、サーバーはレコードをキャッシュ内に保持できる期間を dig に伝えます。たとえば、上記のように、gmail.com ドメインの MX レコードの TTL 値は 300 秒です。gmail.com ドメインの管理者は、リモート サーバーが MX レコードを 5 分を超えてキャッシュできないようにすることを要求しているため、そのレコード (gmail.com の MX レコード) を初めてクエリすると、dig は TTL が 300 であると通知します。 $ dig +nocmd gmail.com MX +noall +answer gmail.com。300 IN MX 20 gsmtp57.google.com。 gmail.com。300 IN MX 10 gsmtp171.google.com。 しばらくしてから再度確認すると、TTL 値が 280 (20 秒間隔) に減少していることがわかります。 $ dig +nocmd gmail.com MX +noall +answer gmail.com。280 IN MX 10 gsmtp171.google.com。 gmail.com。280 IN MX 20 gsmtp57.google.com。 タイミングが十分に計算されていれば、レコードの最後の寿命が得られます。 $ dig +nocmd gmail.com MX +noall +answer gmail.com。1 IN MX 10 gsmtp171.google.com。 gmail.com。1 IN MX 20 gsmtp57.google.com。 その後、クエリを実行した DNS サーバーはこの質問に対する回答を「忘れ」、次にこのレコードをクエリしたときに、サイクル全体が再び開始されます (この例では 300 番台)。 Unix および Linux では、nslookup の代わりに dig コマンドを使用することをお勧めします。 dig コマンドは nslookup よりもはるかに強力です。多くの設定が必要な nslookup とは異なり、非常に面倒です。 以下に、最もよく使用される dig コマンドをいくつか示します。 # dig の最も基本的な使用法: dig @server qianlong.com # dig を使用してゾーンデータ転送を表示します dig @server qianlong.com AXFR # dig を使用してゾーンデータの増分転送を表示します dig @server qianlong.com IXFR=N # digを使用して逆解像度を表示します dig -x 124.42.102.203 @server # ドメインの権威DNSサーバーを探す dig qianlong.com +nssearch # ルートサーバーからドメイン名の解決プロセスをトレースする dig qianlong.com +trace # 使用しているFルートDNSサーバーを確認します dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT # bindのバージョン番号を確認する dig @bind_dns_server CHAOS TXT version.bind ******************************** 使用 DNS クエリ ユーティリティ。 文法 dig [@server] [-b アドレス] [-c クラス] [-f ファイル名] [-k ファイル名] [ -n ][-p ポート番号] [-t タイプ] [-x アドレス] [-y 名前:キー] [名前] [タイプ] [クラス] [クエリオプション...] 掘る [-h] dig [グローバルクエリオプション...] [クエリ...] 説明する dig (Domain Information Searcher) コマンドは、DNS ネーム サーバーを照会するための柔軟なツールです。 DNS 検索を実行し、要求されたネーム サーバーから返された応答を表示します。ほとんどの DNS 管理者は、柔軟性、使いやすさ、明確な出力のため、DNS の問題のトラブルシューティングに dig を使用します。 dig は通常、コマンドライン引数とともに使用されますが、バッチモードでファイルから検索要求を読み取ることもできます。以前のバージョンとは異なり、dig の BIND9 実装では、コマンド ラインから複数のクエリを発行できます。特定のネーム サーバーを要求するように指示されない限り、dig は /etc/resolv.conf にリストされているすべてのサーバーを試行します。コマンドライン引数またはオプションが指定されていない場合、dig は "." (ルート) の NS クエリを実行します。 ロゴ -b アドレス 照会するアドレスの送信元 IP アドレスを設定します。これは、ホストのネットワーク インターフェイス上の有効なアドレスである必要があります。 パラメータ global-queryopt... グローバルクエリオプション (複数のクエリを参照)。 クエリのオプション (クエリ オプションを参照)。 クエリオプション dig は、検索の実行方法と結果の表示に影響するクエリ オプション番号を提供します。クエリ要求ヘッダーのフラグを設定またはリセットするものもあれば、表示される応答メッセージを決定し、タイムアウトと再試行戦略を決定するものもあります。各クエリ オプションは、先頭に (+) が付いたキーワードによって識別されます。一部のキーワードはオプションを設定またはリセットします。通常、プレフィックスはキーワードの意味を否定する文字列 no です。その他のキーワードは、タイムアウト間隔などのオプションに値を割り当てます。形式は + キーワード = 値 です。クエリ オプションは次のとおりです。 複数のクエリ dig の BIND9 は、コマンド ラインで複数のクエリを指定することをサポートしています (-f バッチ ファイル オプションをサポートする追加機能付き)。各クエリでは、独自のフラグ、オプション、およびクエリ オプションを使用できます。 この場合、上記のコマンドライン構文では、各クエリ引数は個別のクエリを表します。各エントリは、標準オプションとフラグ、クエリするクエリの名前、オプションのクエリ タイプとクラス、およびクエリに適用可能なクエリ オプションで構成されます。 すべてのクエリに適用されるグローバルなクエリ オプション セットを使用することもできます。グローバル クエリ オプションは、コマンド ラインの名前、クラス、タイプ、オプション、フラグ、およびクエリ オプションの最初のタプルの前に置く必要があります。グローバル クエリ オプション (+[no]cmd オプションを除く) は、以下のクエリ固有のオプションによって上書きできます。例えば: dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr は、dig がコマンド ラインから 3 つのクエリ (www.isc.org の any クエリ、127.0.0.1 の逆クエリ、および isc.org の NS レコードのクエリ) を実行する方法を示しています。 dig が各クエリの初期クエリを表示できるように、+qr のグローバル クエリ オプションが適用されます。最後のクエリには +noqr というローカル クエリ オプションがあり、これは isc.org の NS レコードを検索するときに初期クエリを表示しないように dig に指示します。 例 典型的な dig コールは次のようになります。 dig @サーバー名タイプ: サーバ 照会するネーム サーバーの名前または IP アドレス。ドットで区切られた IPv4 アドレスまたはコロンで区切られた IPv6 アドレスになります。ホストによってサーバー引数が提供されると、dig はネーム サーバーを照会する前にその名前を解決します。サーバー引数が指定されていない場合、dig は /etc/resolv.conf を参照し、そこにリストされているネーム サーバーを照会します。ネームサーバーからの応答を表示します。 名前 タイプ 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: Windows での MySQL 5.7.18 インストール チュートリアル
>>: Alibaba Cloud Centos 7.5 に MySQL をインストールするチュートリアル
この記事の例では、双方向データバインディングを実現するためのjsの具体的なコードを参考までに共有して...
目次バックグラウンドで10,000個のデータが失われた再帰法非再帰的方法要約するバックグラウンドで1...
まず Linux に ssh をインストールします。例として Centos を使用します。ポータル:...
この記事では、ドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...
<br /> 英語原文: http://desktoppub.about.com/od/...
序文以前、Docker の 2375 Remote API を有効にしていました。会社のセキュリティ...
目次1. スタイル属性をバインドして変更するhtml:対応するjs:達成された効果:次に、refを使...
前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...
目次1. MySQLイメージを取得する2. ダウンロードが完了したか確認する3. MySQLはローカ...
目次1. 概要2. nginx.conf 1) 設定ファイルの場所2) ワーカープロセス3) イベン...
この記事では、参考までにMySQL 8.0.11のインストール手順を紹介します。具体的な内容は次のと...
この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...
チャンクファイブフリータイプファミリーCuprum JAH I フリーフォントイェセヴァブークレフィ...
インストールと設定Apacheの公式ウェブサイトには多くのミラーダウンロードアドレスが用意されており...
mysql5.7.17無料インストールバージョンのインストールに関する最近の経験1.ダウンロードして...