UbuntuでのDNSサービスの構築

DNS紹介#

DNS(ドメインネームシステム):C / Sモード[ドメイン名解決](https://cloud.tencent.com/product/cns?from=10680)サービスに基づいて、ポート53 / udp、53 / tcpでリッスンします。ここで、tcpはゾーン転送に使用され、udpは解決に使用されます。実際にはTCP / IPプログラムの分散データベースであるデータベースも重要なネットワークプロトコルです。DNSは、ネットワーク内のIPアドレスと対応するホストに関する情報、メールルーティング情報、およびその他のネットワークアプリケーション情報を格納します。提供されるサービスは、トランスレータのように、ホスト名とドメイン名をIPに変換するために使用されます

DNSクエリプロセス##

DNS解決は2つのタイプに分けられます

再帰クエリ:

クライアントはローカルに設定されたDNSサーバーへの要求を開始し、DNSサーバーはその要求に応答します。クエリレコードがローカルキャッシュレコードにある場合は直接返されます。そうでない場合、DNSサーバーは仲介者やプロキシなどのルートネームサーバーに順番に移動します。トップレベルのネームサーバーである権威あるネームサーバーがリクエストを送信します。たとえば、DNSサーバーはルートネームサーバーにリクエストを送信し、ドメイン名に対応するIPアドレスを要求します。ルートネームサーバーは、ローカルにレコードがあるかどうかを照会し、レコードがある場合は、DNSサーバーに直接戻り、次にDNSに戻ります。サーバーは、探しているIPアドレスをクライアントに通知します。ルートが不明な場合は、ドメイン名に対応するIPアドレスが見つかるまで、DNSサーバーに要求を続け、順番に要求し、最後にクライアントに戻ります。

反復クエリ:

再帰クエリとの最大の違いは、すべてのクエリプロセスがクライアント自体によって行われ、違いを生む仲介者がなく、ルートサーバーであるトップサーバーに直接アクセスすることです。 。 。 。結果が出るまで待って順番に聞いてください。

分析方法##

ドメイン分類##

DNSレコードタイプ##

シンプルなビルド#

インストール##

1 sudo apt install bind9 bind9utils bind9-doc

構成##

.confという名前のメイン構成ファイルを変更します

1234 include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/ etc / bind /named.conf.log”;#ログレコードを追加

named.conf.localファイルを変更します

1 2 3 4 5 6 7 8 9101112131415161718192021 # ゾーンを追加するには、構成の記述についてzones.rfc1918を参照してください。ここでは、順方向の解像度を定義することを意味します。 //組織では使用されていません// include "/etc/bind/zones.rfc1918"; zone "tianchiapi.com" {#ドメイン名タイプマスターを指定;ファイル "/etc/bind/zone-internal-tianchiapi/db.dns ”;#zone-internal-tianchiapiディレクトリを作成し、ゾーンレコードファイルフォワーダの場所を指定します{};}; //解決する必要のあるドメイン名が複数ある場合は、zone "tianchitest1.com" {type master; file " /etc/bind/zone-internal-tianchiapi/test.dns ";フォワーダー{};};

named.conf.optionsファイルを変更します

1 2 3 4 5 6 7 8 910111213141516171819 # このファイルは、DNSサーバーのグローバル構成です$ cat named.conf.optionsoptions {directory "/ var / cache / bind"; #data file location forwarders {#リクエストを転送するための再帰名サーバーのIPアドレスを設定します114.114.114.114; 8.8.8.8 ;}; allow-query {any;}; recursion yes;#再帰アドレス指定を有効にするallow-transfer {any;}; dnssec-enable no; dnssec-validation no; auth-nxdomain no;#RFC1035};

named.conf.logファイルを変更します

1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 $ cat named.conf.loglogging {channel query_log {file "query.log"バージョン3サイズ1g; #versionsは、同時に存在できるファイルのバージョン数を示します重大度情報;#ログレベルの印刷時間はい;#ログに書き込むエントリ時間print-severityyes;#ログにメッセージレベルを書き込むかどうかを設定しますprint-category yes;#ログにログカテゴリを書き込むかどうかを設定します};カテゴリクエリ{query_log;}; channel update_log {file "update .log "バージョン3サイズ1g;重大度デバッグ;印刷時間はい;印刷カテゴリはい;};カテゴリ更新{update_log;};チャネルclient_log {ファイル" client.log "バージョン3サイズ1g;重大度デバッグ;印刷時間yes; print-category yes;}; category client {client_log;}; channel network_log {file "network.log"バージョン3サイズ1g;重大度debug; print-time yes; print-category yes;}; category network {network_log; };チャネルresolver_log {ファイル "resolver.log"バージョン3サイズ1g; severit y debug; print-time yes; print-category yes;}; category resolver {resolver_log;}; channel lame-servers_log {file "lame-servers.log"バージョン3サイズ1g;重大度debug; print-time yes; print-カテゴリはい;};カテゴリlame-servers {lame-servers_log;};};

ディレクトリを作成し、解像度を設定します


sudo mkdir zone-internal-tianchiapi vim zone-internal-tianchiapi/db.dns $TTL   600 @       IN      SOA      ns1 root (                          3              ; Serial                          3600         ; Refresh                          86400         ; Retry                          86400         ; Expire                          86400 )       ; Negative Cache TTL

; @                         IN      NS     ns1 @                        IN      NS     ns2 ns1                      IN      A      10.1.1.11 test1-live               IN      A      10.1.1.61 test1-storage            IN      A      10.1.1.61 test1-admin              IN      A      10.1.1.61 test1-gateway            IN      A      10.1.1.61 test1-turbine            IN      A      10.1.1.61 test1-zipkin             IN      A      10.1.1.61 test1-eureka             IN      A      10.1.1.61 test1-video              IN      A      10.1.1.61 test1-file               IN      A      10.1.1.61 test1-image              IN      A      10.1.1.61 test1-kibana             IN      A      10.1.1.61 test1-live               IN      A      10.1.1.61

|123456|## サービスを再開します|
|--------|--------|

sudo systemctl restart bind9

|1 2 3 4 5 6 7 8 91011121314|## 別のサーバー上の指定されたDNSサーバーが、先ほど作成したIPアドレスであることを確認します。例: `` `cat /etc/resolv.confnameserver 10.1.1.13search tianchiapi.com |
|--------|--------|

|1 2 3 4 5 6 7 8 9101112131415161718192021222324| $ dig test1-gateway.tianchiapi.com; <<>> DiG 9.10.3-P4-Ubuntu <<>> test1-gateway.tianchiapi.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62031;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;test1-gateway.tianchiapi.com.  IN      A;; ANSWER SECTION:test1-gateway.tianchiapi.com. 600 IN    A       10.1.1.61;; AUTHORITY SECTION:tianchiapi.com.         600     IN      NS      10.1.1.11.;; Query time: 1 msec;; SERVER: 10.1.1.13#53(10.1.1.13);; WHEN: Sun Nov 25 14:57:28 CST 2018;; MSG SIZE  rcvd: 96|
|--------|--------|

digを通じて、A、NS、およびその他のレコードを確認できます。また、dig + traceを使用してクエリプロセスを確認することもできます。

|1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738| $ dig +trace www.devilf.cc; <<>> DiG 9.10.3-P4-Ubuntu <<>> +trace www.devilf.cc;; global options: +cmd.                       18143   IN      NS      e.root-servers.net..                       18143   IN      NS      g.root-servers.net..                       18143   IN      NS      k.root-servers.net..                       18143   IN      NS      m.root-servers.net..                       18143   IN      NS      d.root-servers.net..                       18143   IN      NS      i.root-servers.net..                       18143   IN      NS      c.root-servers.net..                       18143   IN      NS      h.root-servers.net..                       18143   IN      NS      l.root-servers.net..                       18143   IN      NS      f.root-servers.net..                       18143   IN      NS      b.root-servers.net..                       18143   IN      NS      a.root-servers.net..                       18143   IN      NS      j.root-servers.net.;; Received 850 bytes from 10.1.1.13#53(10.1.1.13) in 1 mscc.                     172800  IN      NS      ac1.nstld.com.cc.                     172800  IN      NS      ac2.nstld.com.cc.                     172800  IN      NS      ac3.nstld.com.cc.                     172800  IN      NS      ac4.nstld.com.cc.                     86400   IN      DS      519 8 1 7285EF05E1B4E679D4F072EEA9B00953E01F3AE2cc.                     86400   IN      DS      519 8 2 E1EC6495ABD34562E6F433DEE201E6C6A52CB10AF69C04D675DA692D 2D566897cc.                     86400   IN      RRSIG   DS 8 1 86400 20181208050000 20181125040000 2134 . K30W90xWPofSP+kgBIBCMDncJ7ewr9k504cL+nrFrq/A0VjLAGTxGHRe M+K0hG1xBV+0ZhLpaAVy++rZECpn9XEOpoqf7EXJtbT2R27X36IrzvvB z4Hsp/AEMYaMmU665PkEftdk3RgA5u156UH8LeG0gGuhTn9AmaYEuYiY gg54FSa1nw/7e2fho0KWxGzZIE8gEPnXVuk30s+0tbJ2qi/Gu4x75pmV 49Rro/xNRNZUtrXfvWNOneKwiK1S0TndbGlGydibBjRKETyg1Iob6uu6 tlTDu20NhsWHEFyAW0e4xC+7A+NdxZLn6PbCmB1MCM6Wxj2oug8Tq8QL WxjC3A==;; Received 670 bytes from 198.97.190.53#53(h.root-servers.net) in 271 msdevilf.cc.              172800  IN      NS      dns29.hichina.com.devilf.cc.              172800  IN      NS      dns30.hichina.com.RQGAP5UF6Q1NGVCKFNO8RANVDN5ILRIN.cc. 86400 IN NSEC3 1 1 0 - RR9VRBALT8EOD9SAK335LVITNSQII5FL NS SOA RRSIG DNSKEY NSEC3PARAMRQGAP5UF6Q1NGVCKFNO8RANVDN5ILRIN.cc. 86400 IN RRSIG NSEC3 8 2 86400 20181201140301 20181124140301 349 cc. slpKbVNxyTgp7EM1F0hkdSW53W3pul2lgxj55a4mixDncbST6kWyDrIo NWPzFl1zrFbq7HKXFfWZcCiZyJ9ZGw74oAeUSWUAfph44UUYY5CSXdlU 2ItzDNvv5mJV9Klu9IF5UqO8ebTQzeY9V835OoCTnx7rt5fs2iAc7xFE pcE=BL6MKB1NQG0IVOHTRSFV88164C1K8BPB.cc. 86400 IN NSEC3 1 1 0 - BLDPDNVR5GT167DKC1R82138PE3U59QI NS DS RRSIGBL6MKB1NQG0IVOHTRSFV88164C1K8BPB.cc. 86400 IN RRSIG NSEC3 8 2 86400 20181201083817 20181124083817 349 cc. N8wcEys1fVypSVlZnQGh7fpcvYLKwC0x7RFiHm9XXZ/aFkJkWhl6hiT3 GnLeKIGNf3C7odEUz2fLsY6+0nJwkoW16zSbKtvcyLv5xK7VJteSKRyo AzD1LP8BgA3bs1hjGuUeDo9aNAG6dJjpoTO1jPpiFEKbVSB/JgrN6OcL Zss=;; Received 576 bytes from 192.42.176.30#53(ac4.nstld.com) in 284 mswww.devilf.cc.          600     IN      CNAME   www.devilf.cc.w.kunlunar.com.;; Received 84 bytes from 140.205.81.19#53(dns29.hichina.com) in 29 ms|
|--------|--------|

ご覧のとおり、最初に13個のルートサーバーを検索し、次にルートサーバーが10.1.1.13に、.comトップレベルドメインネームサーバーに依頼し、次に権限のあるドメインネームサーバーtianchiapi.comに依頼し、最後に対応するIPを返すように指示します。

バインドのサービスログメソッドを表示する

|1 2 3 4 5 6 7 8 9101112| $ cd /var/cache/bind$ ll -h-rw-r--r--  1 bind bind  528 Nov 25 10:23 client.log-rw-r--r--  1 bind bind 1.7K Nov 25 15:01 lame-servers.log-rw-r--r--  1 bind bind  221 Jul 17 15:31 managed-keys.bind-rw-r--r--  1 bind bind  609 Nov 25 14:04 network.log-rw-r--r--  1 bind bind 830M Nov 25 15:10 query.log-rw-r--r--  1 bind bind 1.1G Nov 25 15:02 query.log.0-rw-r--r--  1 bind bind 1.1G Nov 25 14:53 query.log.1-rw-r--r--  1 bind bind 1.1G Nov 25 14:45 query.log.2-rw-r--r--  1 bind bind 3.6M Nov 25 15:10 resolver.log-rw-r--r--  1 bind bind    0 Nov 25 10:04 update.log|
|--------|--------|

|1| sudo systemctl -u bind9 -b debug -f|
|--------|--------|

注意:

BIND 9で利用可能なカテゴリ名(カテゴリ_name)has:カテゴリは、クライアントがクライアント要求を処理することを示します。構成構成ファイルの分析と処理。 databaseエリアデータの保存とレコードのキャッシュに使用される、BIND内部データベースに関連するメッセージ。デフォルトは、チャネルが明示的に指定されていないすべてのカテゴリに一致します。 dnssecは、DNSSEC署名済み応答を処理します。一般には、明確に分類されていないすべてのBINDメッセージが含まれます。ラメ-サーバー不正な認証が見つかりました。つまり、サーバーが壊れています。ネットワークネットワーク操作。通知領域は通知メッセージを更新します。リゾルバーからの再帰的なクエリ情報を含む、クエリログリゾルバー名の解決を照会します。セキュリティが承認されました/未承認のリクエスト。 update動的更新イベント。 xfer-inリモートネームサーバーからローカルネームサーバーへのゾーン転送。 xfer-outローカルネームサーバーからリモートネームサーバーへのゾーン転送。

1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233 < p>

Recommended Posts

UbuntuでのDNSサービスの構築
Ubuntuサーバー第8章DNSサービス
UbuntuでSSHサービスを開く
UbuntuでSSHサービスを開く
Ubuntuスタートアップサービス
GPUプログラミング(1):UbuntuでのCUDA8.0環境の構築
Ubuntuにapache + PHPをインストールします
Ubuntuにnode.jsをインストールします
Ubuntu16.04にpython3.6をインストールします
Ubuntu16.04にmysqlをインストールします
ubuntu14.10の下にThriftをインストールします
UbuntuにOpenJDK10をインストールします
UbuntuでのPythonMySQLd
ubuntuの下で働き始める
[python] ubuntuの下のpython2とpython3
ubuntuでiptablesを使用する
2018-09-11Ubuntuにarduinoをインストールします
UbuntuでのLNMPのインストール
Ubuntuでのネットワーク構成
ROS Ubuntu 18.04 [2]にROSをインストールします。
Centos7ビルドDNSサービス
UbuntuにMySQLをインストールする
UbuntuにYarm-PM2をインストールします
Ubuntuシステムでの静的DNS構成の詳細な説明
Cpp web(1)UbuntuでCrowサービスをインストールして使用する
Ubuntu 14.04でのDjango&MySQL環境の展開
ubuntuの下にFTPサーバーをデプロイします
ubuntuでUnmentの依存関係を解決する
ubuntuの下で崇高なtexを使用する
Ubuntu18.04でショートカットキーを変更する
ubuntuでのmediawikiの使用
Ubuntu18.04でSSHサービスをインストールおよび構成するためのメソッドステップ
Ubuntuにrglパッケージをインストールします
14.10に適用可能なUbuntu13.10でQQを使用する
Ubuntuでのdebパッケージのインストール
Ubuntu19.10でメールシステムを展開する
Ubuntuの下に3つのシングルセルRパッケージをインストールします
UbuntuにGerritをインストールしてデプロイする
Ubuntu 18.04にMySQLをインストールします(グラフィックチュートリアル)
UbuntuKylinの下にJDK1.8オリジナルをインストールします
ubuntuおよびwindowsでのRedisのインストール
Ubuntu16.04にnodejsとnpmをインストールします
ubuntuでのPython中国語エンコーディング設定
VMware12でのUbuntu16.04インストールグラフィックチュートリアル
UbuntuでのDockerCEのインストール
Ubuntu16.04でのCUDA8.0とCUDA9.0の共存
Ubuntuでの大胆なインストール手順
ubuntu16.04でTensorflowをインストールする方法
UbuntuでQEMUをコンパイルしてインストールします
Ubuntu18リスタートドッカーサービス失敗メモ
Ubuntu19.10オープンsshサービス(詳細なプロセス)