DNS: Bind 9 を使用して権威 DNS サービスを構成する

前に書いてある


  • サーバーをBind9構成してメモを共有するDNS
  • ブログ投稿の内容には、基本的なDNS 权威服务器構成プロセスが含まれています
  • 理解が不十分な場合は、修正を手伝ってください

私は、愛は幻想であり、感情だけが現実であることを認めます、そして感情こそが私たちに愛の真の美しさを追求させ、生み出すように促すのです ---ルソーの『エミール』


DNS展開

DNSシステムでは、権威 DNS がストレージDNS 资源记录とその管理のための区域プロビジョニングに使用されます权威答案

BIND9 (Berkeley Internet Name Domain)権威DNSサーバーを導入可能です。サーバーまたは次のように構成されたサーバーBINDを許可します权威服务器zone主要辅助

公式ウェブサイトアドレス: http: //www.isc.org/bind/

DNS システムにはサーバーがzone1 つだけありますが、多数の辅助サーバーが存在する場合もあります。セカンダリ サーバーは、プライマリ サーバーから最新バージョンのゾーン情報を定期的にダウンロードします。これらはリージョンの制御を強制し传输的频率、データが过时リージョンによって制御されているかどうかを確認する方法を強制しますSOA资源记录

SOA リソース レコード ( SOA リソース レコード とも呼ばれます) は起始授权机构记录、DNS ゾーンの機能に関する情報を提供します。ゾーンごとに 1 つの SOA レコードが必要です

example.com.  86400 IN SOA classroom.example.com. root.classroom.example.com.  
                    2015071700  
                    3600  
                    300  
                    604800  
                    60
  • MNAME | : このゾーンのリソース レコードの維持を担当するclassroom.example.com.DNS サーバー区域主要 DNS 服务器
  • RNAME | root.classroom.example.co : この領域の担当者の電子メール アドレス (@ は . に置き換えられます。例: [email protected] )。
  • SERIAL | 2015071700 : ゾーンのバージョン番号。ゾーン内のレコードが変更されると増加します。
  • REFRESH | 3600 : DNS サーバーからメイン DNS サーバーへのデータ更新頻度、単位は 2 番目です。
  • RETRY | 300 : 失敗したリフレッシュを再試行する前に待機する必要がある間隔。ユニットは2位です。
  • EXPIRE | 604800 : 更新が失敗した場合に、古いリージョンのレプリカがクエリに応答するのを停止するまでにスレーブが待機する時間。ユニットは2位です。
  • 最小: | 60 : パーサーが名前を検索し、その名前が存在しない場合、パーサーが「レコードが存在しない」情報をキャッシュする期間。ユニットは2位です。

Bind9 権限サーバーのデプロイ

基本的な手順

  1. bindソフトウェアをインストールする
  2. 設定ファイルを変更する/etc/named.conf
  3. サービスを有効にして開始するnamed.service
  4. ファイアウォールを開きますdns

名前は ですがbind、本体サービスと設定ファイルは と呼ばれます。named

バインド9のインストール

[root@serverb ~]# yum -y install bind

サービスファイルをざっと見てみましょう

# /usr/lib/systemd/system/named.service
[Unit]
Description=Berkeley Internet Name Domain (DNS)
Wants=nss-lookup.target
Wants=named-setup-rndc.service
Before=nss-lookup.target
After=named-setup-rndc.service
After=network.target

[Service]
Type=forking
Environment=NAMEDCONF=/etc/named.conf
EnvironmentFile=-/etc/sysconfig/named
Environment=KRB5_KTNAME=/etc/named.keytab
PIDFile=/run/named/named.pid

ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS

ExecReload=/bin/sh -c '/usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID'

ExecStop=/bin/sh -c '/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID'

PrivateTmp=true

[Install]
WantedBy=multi-user.target
~

構成

namedメインの設定ファイルは です/etc/named.conf。このファイルはBINDの基本操作を制御し、rootユーザーとnamedグループによって所有され、権限があり0640named_conf_tタイプは SELinux です。

DNS サーバーを構成するには、次の手順が必要です。

  • 構成地址匹配列表
  • 構成namedのリスニングIP地址
  • クライアントの設定访问控制
  • 構成zone(区域)
  • 区域文書を書く

デフォルトの割り当て:

  • サービスを基本として設定する递归缓存名称服务器
  • IPv4和IPV6ループバック インターフェイスのポート53 UDP/TCP(127.0.0.1和::1)で接続をリッスンします。
  • 各リージョンの設定ファイルは に保存されます/var/named
[student@serverb ~]$ man named.conf

アドレス一致リストを定義する

ディレクティブを使用してacl、一致するアドレスのリストを定義します。aclディレクティブは、サーバーへのクライアント アクセスを制御するためには使用されませんが、IP アドレスとネットワーク リストを定義するために使用されます。

エントリは、 OR表記をIP地址或网络使用するか、以前に定義されたアドレス一致リストの名前を使用して完全にすることができます。acl ステートメントで定義されたアドレス セットは、複数の命令で参照できます。尾点(192.168.0.)CIDR(192.168.0/24)

これは、単に acl エイリアスとして理解できます。たとえば、次のようになります。

acl trusted  {
    
      172.25.250.11; 192.168.0.11; };
acl internal {
    
      172.25.250.0/24; };
acl classroom {
    
     192.168.0.0/24; trusted; };

named4 つの機能が組み込まれていますACL

ACL: 説明
none :どのホストとも一致しません。
any :すべてのホストに一致します。
localhost :DNS サーバーのすべての IP アドレスと一致します。
localnets :DNS サーバーのローカル サブネットのすべてのホストと一致します。

クライアントのアクセス制御を構成する

optionsこのブロックは、次の 3 つのディレクティブを使用してアクセスを制御するように構成されています。

allow-query、コントロール所有查询

デフォルトでは、allow-queryに設定されていますlocalhost任意のクライアント クエリを許可するには、公开权威服务器定義する必要がありますallow-query{any;};

allow-query{
    
    localhost;172.25.250.254;192.168.0.0/24;};

allow-recursion、コントロール递归查询

権限のあるサーバーは不应允许再帰的にクエリされるため、サーバーの使用が防止されDNS放大分布式拒绝服务攻击、キャッシュ ポイズニング攻撃からの保護が強化されます。これを設定する最も簡単な方法は、再帰を完全にオフにすることです: recursion no; 信頼できるクライアントに再帰の実行を許可する必要がある場合は、再帰をオンにして、それらの特定のホストまたはネットワークに設定できます。

allow-recursion{
    
    trusted-nets;};

allow-transfer、コントロール区域转移

リージョン転送により、クライアントはあなたを獲得できるようになります区域中所有数据的转储潜在的な攻撃者が単一の DNS クエリを実行してゾーン内のすべてのリソース レコードを迅速に取得することをより困難にするために、ゾーン転送を制限する必要があります。

主服务器必须配置允许转移从服务器実行ゾーンの転送を許可します。他のホストによるゾーン転送の実行を禁止する必要があります。トラブルシューティングを支援するためにゾーン転送を許可できますlocalhost

zone "example.com" {
    
    
    type master;
    file "/etc/bind/zones/db.example.com";
    allow-transfer {
    
     192.168.1.1; };
};

ゾーンを構成する

デフォルトzoneファイル

[root@serverb named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback
[root@serverb named]#

ルートサーバーのzoneファイル

DNS では、.他のすべてのドメイン名の最上位ドメイン名であるルート ドメイン名 (ルート ドメイン) を意味します。ルート ドメイン名は、すべてのトップレベル ドメイン名の DNS サーバー アドレスを保存する一連のルート DNS サーバーによって維持されます。DNS クライアントがドメイン名を解決する必要がある場合、ルート DNS サーバーにクエリ要求を送信して、ドメイン名のトップレベル ドメイン名の DNS サーバー アドレスを取得します。

zone "." IN {
    
    
        type hint;
        file "named.ca";
};

type hintゾーンが他の DNS サーバーのアドレス情報を含むヒント ゾーンであることを示します。

対応する設定ファイルdirectory "/var/named";内の対応するファイル

[root@serverb named]# cat named.ca

; <<>> DiG 9.11.3-RedHat-9.11.3-3.fc27 <<>> +bufsize=1200 +norec @a.root-servers.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46900
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       518400  IN      NS      a.root-servers.net.
.                       518400  IN      NS      b.root-servers.net.
.                       518400  IN      NS      c.root-servers.net.
.                       518400  IN      NS      d.root-servers.net.
.......
.                       518400  IN      NS      m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.     518400  IN      A       198.41.0.4
b.root-servers.net.     518400  IN      A       199.9.14.201
c.root-servers.net.     518400  IN      A       192.33.4.12
d.root-servers.net.     518400  IN      A       199.7.91.13
.......
m.root-servers.net.     518400  IN      A       202.12.27.33
a.root-servers.net.     518400  IN      AAAA    2001:503:ba3e::2:30
b.root-servers.net.     518400  IN      AAAA    2001:500:200::b
c.root-servers.net.     518400  IN      AAAA    2001:500:2::c
d.root-servers.net.     518400  IN      AAAA    2001:500:2d::d
e.root-servers.net.     518400  IN      AAAA    2001:500:a8::e
f.root-servers.net.     518400  IN      AAAA    2001:500:2f::f
.........
m.root-servers.net.     518400  IN      AAAA    2001:dc3::35

;; Query time: 24 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Thu Apr 05 15:57:34 CEST 2018
;; MSG SIZE  rcvd: 811

[root@serverb named]#

マスター ルート ドメイン ネーム サーバーは、DNS システムの最上位サーバーであり、すべてのトップレベル ドメイン名の DNS サーバー アドレス情報を保存します。現在、13 のプライマリ ルート ドメイン ネーム サーバーがあり、さまざまな組織や機関によって管理され、世界のさまざまな場所にあります。これらのプライマリ ルート ネームサーバーの名前は ですa.root-servers.net 到 m.root-servers.net

構成ファイルでは、他のゾーン ファイルがインポートによって実装されていることがわかります。


include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

zoneファイル情報の表示"/etc/named.rfc1912.zones";

[root@serverb named]# cat /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

// 当前 zone 的为master 服务器,解析由文件 named.localhost 决定
zone "localhost.localdomain" IN {
    
    
        type master;
        file "named.localhost";
        allow-update {
    
     none; };
};

zone "localhost" IN {
    
    
        type master;
        file "named.localhost";
        allow-update {
    
     none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    
    
        type master;
        file "named.loopback";
        allow-update {
    
     none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
    
    
        type master;
        file "named.loopback";
        allow-update {
    
     none; };
};

zone "0.in-addr.arpa" IN {
    
    
        type master;
        file "named.empty";
        allow-update {
    
     none; };
};

[root@serverb named]#

zone説明

zone "localhost.localdomain":

  • 地域の名前はlocalhost.localdomain
  • タイプはマスター、
  • .localhost という名前のファイルを使用してゾーンのデータを保存します
  • ゾーンでは更新が許可されていません (allow-update { none; })

zone "1.0.0.127.in-addr.arpa":

  • 地域の名前は1.0.0.127.in-addr.arpa
  • タイプはマスターで、この領域のデータを保存するために.loopback という名前のファイルが使用されます。
  • ゾーンでは更新が許可されていません (allow-update { none; })。

特定領域データファイル

[root@serverb named]# cat named.localhost
$TTL 1D
@       IN SOA  @ rname.invalid. (              ;@ 是一个特殊的符号,表示当前域名本身
                                        0       ; serial,序列号
                                        1D      ; refresh,刷新时间
                                        1H      ; retry,重试时间
                                        1W      ; expire,过期时间
                                        3H )    ; minimum,最小时间间隔
        NS      @                               ; name server,域名服务器
        A       127.0.0.1                       ;      IPv4 地址
        AAAA    ::1                             ; IPv6 地址
[root@serverb named]#

データ ファイルには次のものが含まれます。

  • SOA レコード: DNS ゾーンがどのように機能しているかに関する情報
  • NS レコード: すべての権威 DNS サーバーには、ドメイン名を DNS サーバーまたは権威 DNS にマッピングする NS レコードが必要です。
  • レコード: IPV4 フォワード解像度
  • AAAA レコード: IPv6 転送解決
[root@serverb named]# cat named.loopback
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
        PTR     localhost.
[root@serverb named]#

上記の設定に加えて、PTR localhost.IP アドレスからドメイン名への逆解決に使用される項目がもう 1 つあります。

ファイアウォールのリリース

対応するzoneファイルを設定した後、named を開始する前にファイアウォール関連の設定を解除し、ブートが自動的に開始されるように設定する必要があります。

[root@serverb ~]# firewall-cmd --add-service=dns --permanent
success
[root@serverb ~]# firewall-cmd --reload
success
[root@serverb ~]# systemctl enable named.service --now

デフォルトの構成ファイルの説明

[root@serverb ~]# cat /etc/named.conf
// named.conf
// 这是一个 DNS 服务器配置文件,用于配置 ISC BIND named(8) DNS 服务器作为一个只提供缓存服务的本地 DNS 解析器。

// 定义一个名为 trusted 的 ACL,包含两个 IP 地址,用于限制可以访问 DNS 服务器的 IP 地址。
acl trusted  {
    
      172.25.250.11; 192.168.0.11; };
// 定义一个名为 internal 的 ACL,包含一个 IP 地址段,用于限制可以访问 DNS 服务器的 IP 地址。
acl internal {
    
      172.25.250.0/24; };
// 定义一个名为 classroom 的 ACL,包含一个 IP 地址段和一个名为 trusted 的 ACL,用于限制可以访问 DNS 服务器的 IP 地址。
acl classroom {
    
     192.168.0.0/24; trusted; };

// 配置选项
options {
    
    
        // 监听任意 IPv4 地址的 53 端口
        listen-on port 53 {
    
     any; };
        // 监听任意 IPv6 地址的 53 端口
        listen-on-v6 port 53 {
    
     any; };
        // 指定 DNS 数据文件的存储目录
        directory       "/var/named";
        // 指定缓存文件的存储路径
        dump-file       "/var/named/data/cache_dump.db";
        // 指定统计信息文件的存储路径
        statistics-file "/var/named/data/named_stats.txt";
        // 指定内存统计信息文件的存储路径
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        // 指定 DNSSEC 安全根密钥文件的存储路径
        secroots-file   "/var/named/data/named.secroots";
        // 指定递归查询缓存文件的存储路径
        recursing-file  "/var/named/data/named.recursing";
        // 允许查询 DNS 数据的客户端 IP 地址
        allow-query     {
    
     localhost; classroom; };
        /*
         - 如果你正在构建一个权威 DNS 服务器,请不要启用递归查询。
         - 如果你正在构建一个递归查询(缓存)DNS 服务器,请启用递归查询。
         - 如果你的递归 DNS 服务器有一个公共 IP 地址,你必须启用访问控制,以限制查询到合法的用户。如果不这样做,你的服务器将成为大规模 DNS 放大攻击的一部分。在你的网络中实施 BCP38 将大大减少这种攻击面。
        */
        // 禁止递归查询
        recursion no;

        // 启用 DNSSEC 安全根密钥验证
        dnssec-enable yes;
        // 启用 DNSSEC 数据验证
        dnssec-validation yes;

        // 指定动态密钥的存储目录
        managed-keys-directory "/var/named/dynamic";

        // 指定 PID 文件的存储路径
        pid-file "/run/named/named.pid";
        // 指定会话密钥文件的存储路径
        session-keyfile "/run/named/session.key";

        /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
        // 包含加密策略配置文件
        include "/etc/crypto-policies/back-ends/bind.config";
};

// 配置日志记录
logging {
    
    
        // 定义一个名为 default_debug 的日志通道,将日志输出到 data/named.run 文件中
        channel default_debug {
    
    
                file "data/named.run";
                // 日志级别为动态调整
                severity dynamic;
        };
};

// 配置根域名服务器
zone "." IN {
    
    
        // 指定该区域为“提示”类型,即提示 DNS 服务器根域名服务器的 IP 地址
        type hint;
        // 指定根域名服务器的数据文件
        file "named.ca";
};

// 包含 RFC1912 中定义的标准 DNS 区域文件配置
include "/etc/named.rfc1912.zones";
// 包含根域名服务器的公钥
include "/etc/named.root.key";


[root@serverb ~]#

テスト

digコマンドを使用して、 onの解析結果serverbをクエリしますlocalhost.localdomainDNS

このうち、IPアドレスを問い合わせる@172.25.250.11DNSサーバーを使用することを意味し、出力情報には172.25.250.11

  • status: REFUSEDクエリが拒否されたことを示します。
  • WARNING: recursion requested but not available再帰クエリが使用できないことを示します。
[student@servera ~]$ dig  @serverb localhost.localdomain @172.25.250.11

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> @serverb localhost.localdomain @172.25.250.11
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 56767
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: f08d1204f74faabe21d039db63f384b8068d2e4c06fc6f50 (good)
;; QUESTION SECTION:
;localhost.localdomain.         IN      A

;; Query time: 0 msec
;; SERVER: 172.25.250.11#53(172.25.250.11)
;; WHEN: Mon Feb 20 22:33:28 CST 2023
;; MSG SIZE  rcvd: 78

の DNS 解決結果をクエリするには、 onコマンドをservera使用します。diglocalhost.localdomain

このうち は@192.168.0.11、IPアドレスが192.168.0.11のDNSサーバーを使用してクエリを行うことを意味します。出力内で

  • ステータス: NOERROR はクエリが成功したことを意味します
  • flags: qr aa rd クエリが、信頼できる回答と再帰要求クエリを使用した回答クエリであることを示します。
  • 回答セクションの 127.0.0.1 は、localhost.localdomain の IP アドレスが 127.0.0.1 であることを意味します。
  • AUTHORITY SECTION の localhost.localdomain. は、localhost.localdomain の許可された DNS サーバーがローカル ホストであることを示します。
  • ADDITIONAL SECTION の ::1 は、localhost.localdomain の IPv6 アドレスが ::1 であることを意味します。
[student@servera ~]$ dig  localhost.localdomain @192.168.0.11

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> localhost.localdomain @192.168.0.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65182
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: efa0893e5d57752d3c67034563f388fb9f496bfc771dadb4 (good)
;; QUESTION SECTION:
;localhost.localdomain.         IN      A

;; ANSWER SECTION:
localhost.localdomain.  86400   IN      A       127.0.0.1

;; AUTHORITY SECTION:
localhost.localdomain.  86400   IN      NS      localhost.localdomain.

;; ADDITIONAL SECTION:
localhost.localdomain.  86400   IN      AAAA    ::1

;; Query time: 9 msec
;; SERVER: 192.168.0.11#53(192.168.0.11)
;; WHEN: Mon Feb 20 22:51:39 CST 2023
;; MSG SIZE  rcvd: 136

[student@servera ~]$

戦闘

現在の権威サーバーにゾーンを追加する

zone現在の権威ネームサーバーに対して次のいずれかを構成したいと考えています

zone関連する構成は次のとおりです

zone "blog.liruilong.com" IN {
    
    
        type master;
        file "blog.liruilong.com.zone";
        forwarders {
    
    };
};

追加後、設定ファイルが正しいかどうかを確認する必要があります

[root@serverb ~]# named-checkconf  /etc/named.conf

次に、対応するゾーン データ ファイルを書き込み、関連するアクセス許可を付与して、検出データ ファイルを書き込みます。

[root@serverb ~]# chmod 640 /var/named/blog.liruilong.com.zone
[root@serverb ~]# chgrp named /var/named/blog.liruilong.com.zone
[root@serverb ~]# named-checkzone blog.liruilong.com /var/named/blog.liruilong.com.zone
zone blog.liruilong.com/IN: has no NS records
zone blog.liruilong.com/IN: not loaded due to errors.
[root@serverb ~]# cat /var/named/blog.liruilong.com.zone
$TTL 300
@ IN SOA serverb.lab.example.com. dnslab.example.com. (
 2023072900 ; serial
 1H ; refresh
 5M ; retry
 1W ; expire
 1M ) ; minimum
600 IN NS serverb.


serverb IN A 192.168.0.11
servera IN A 192.168.0.10

ここでは 2 つのエラーが報告されており、NSレコード構成に問題があることを示しています。構成を変更した後、再起動してください。各ゾーンには、ドメイン名を DNS サーバーまたは権威 DNS にマップするための NS レコードが必要です。

[root@serverb ~]# systemctl  restart  named
[root@serverb ~]# named-checkzone blog.liruilong.com /var/named/blog.liruilong.com.zone
zone blog.liruilong.com/IN: loaded serial 2023072900
OK
[root@serverb ~]# cat /var/named/blog.liruilong.com.zone
$TTL 300
@ IN SOA serverb.blog.liruilong.com. dnslab.example.com. (
 2023072900 ; serial
 1H ; refresh
 5M ; retry
 1W ; expire
 1M ) ; minimum
    600 IN      NS      serverb.blog.liruilong.com.

serverb IN A 192.168.0.11
servera IN A 192.168.0.10

[root@serverb ~]#

dig コマンドでテストする

[root@serverb ~]# dig servera.blog.liruilong.com. @serverb

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> servera.blog.liruilong.com. @serverb
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28751
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: d8a667097d1cbf82e34d02ab64c647d0333415b139a9ef0d (good)
;; QUESTION SECTION:
;servera.blog.liruilong.com.    IN      A

;; ANSWER SECTION:
servera.blog.liruilong.com. 300 IN      A       192.168.0.10

;; AUTHORITY SECTION:
blog.liruilong.com.     600     IN      NS      serverb.blog.liruilong.com.

;; ADDITIONAL SECTION:
serverb.blog.liruilong.com. 300 IN      A       192.168.0.11

;; Query time: 0 msec
;; SERVER: 172.25.250.11#53(172.25.250.11)
;; WHEN: Sun Jul 30 19:21:52 CST 2023
;; MSG SIZE  rcvd: 137

[root@serverb ~]#

DNS ipv4 の順方向および逆方向の解決を構成する

serverbプライマリ DNS を構成する場合:

  • 順方向解像度を設定しますserveraservercアドレスはそれぞれ172.25.250.10172.25.250.12
  • 逆解析を構成しますserveraserverc

フォワード分析

zone "blog.liruilong.com" IN {
    
    
        type master;
        file "blog.liruilong.com.zone";
        forwarders {
    
    };
};
[root@serverb ~]# cat  /var/named/blog.liruilong.com.zone
$TTL 300
@ IN SOA serverb.blog.liruilong.com. dnslab.example.com. (
 2023072900 ; serial
 1H ; refresh
 5M ; retry
 1W ; expire
 1M ) ; minimum
    600 IN      NS      serverb.blog.liruilong.com.

serverb IN A 172.25.250.11
serverc IN A 172.25.250.12
servera IN A 172.25.250.10

[root@serverb ~]#
[root@serverb ~]# vim /var/named/blog.liruilong.com.zone
[root@serverb ~]# named-checkzone  blog.liruilong.com.zone /var/named/blog.liruilong.com.zone
zone blog.liruilong.com.zone/IN: loaded serial 2023072900
OK
[root@serverb ~]# systemctl  restart  named
[root@serverb ~]# dig serverc.blog.liruilong.com. @serverb

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> serverc.blog.liruilong.com. @serverb
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9608
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 196c643e805924a3ea772e3264c649cef6a873b5c3803907 (good)
;; QUESTION SECTION:
;serverc.blog.liruilong.com.    IN      A

;; ANSWER SECTION:
serverc.blog.liruilong.com. 300 IN      A       172.25.250.12

;; AUTHORITY SECTION:
blog.liruilong.com.     600     IN      NS      serverb.blog.liruilong.com.

;; ADDITIONAL SECTION:
serverb.blog.liruilong.com. 300 IN      A       172.25.250.11

;; Query time: 0 msec
;; SERVER: 172.25.250.11#53(172.25.250.11)
;; WHEN: Sun Jul 30 19:30:22 CST 2023
;; MSG SIZE  rcvd: 137

分析試験

[root@serverb ~]# dig servera.blog.liruilong.com. @172.25.250.11

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> servera.blog.liruilong.com. @172.25.250.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37549
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 7e67c9a9f9d30b3df695a33864c64a1bb0d653a623775fd6 (good)
;; QUESTION SECTION:
;servera.blog.liruilong.com.    IN      A

;; ANSWER SECTION:
servera.blog.liruilong.com. 300 IN      A       172.25.250.10

;; AUTHORITY SECTION:
blog.liruilong.com.     600     IN      NS      serverb.blog.liruilong.com.

;; ADDITIONAL SECTION:
serverb.blog.liruilong.com. 300 IN      A       172.25.250.11

;; Query time: 0 msec
;; SERVER: 172.25.250.11#53(172.25.250.11)
;; WHEN: Sun Jul 30 19:31:39 CST 2023
;; MSG SIZE  rcvd: 137

[root@serverb ~]#

逆分析

zone "25.172.in-addr.arpa" IN {
    
    
        type master;
        file "25.172.loopback"
        allow-update {
    
     none; };

};
[root@serverb ~]# named-checkconf  /etc/named.conf
/etc/named.conf:67: missing ';' before 'allow-update'
[root@serverb ~]# vim /etc/named.conf
[root@serverb ~]# named-checkconf  /etc/named.conf
[root@serverb ~]#
zone "25.172.in-addr.arpa" IN {
    
    
        type master;
        file "25.172.loopback";
        allow-update {
    
     none; };

};
[root@serverb ~]# cat /var/named/25.172.loopback
$TTL 1D
@       IN SOA  serverb.blog.liruilong.com rname.invalid. (
                                        2023073000       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      serverb.blog.liruilong.com.
10.250       PTR     servera.blog.liruilong.com.
11.250       PTR     serverb.blog.liruilong.com.
12.250       PTR     serverc.blog.liruilong.com.
[root@serverb ~]#

DNS解決テストツール

上記のコマンドに加えてdig 、他のいくつかのツールがここで分析されています。

bind-utils順方向および逆方向の分析テストには、ここではコマンドである host コマンドを使用します。

[root@serverb ~]# vim /var/named/25.172.loopback
[root@serverb ~]# systemctl  restart  named
[root@serverb ~]# host serverc.blog.liruilong.com 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:

serverc.blog.liruilong.com has address 172.25.250.12
[root@serverb ~]# host servera.blog.liruilong.com 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:

servera.blog.liruilong.com has address 172.25.250.10
[root@serverb ~]# host 172.25.250.10 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:

10.250.25.172.in-addr.arpa domain name pointer servera.blog.liruilong.com.
[root@serverb ~]#

も使用できますnslookup。このコマンドは Windows にも適用されます

[root@serverb ~]# nslookup  servera.blog.liruilong.com 172.25.250.11
Server:         172.25.250.11
Address:        172.25.250.11#53

Name:   servera.blog.liruilong.com
Address: 172.25.250.10

[root@serverb ~]# nslookup 172.25.250.10 172.25.250.11
10.250.25.172.in-addr.arpa      name = servera.blog.liruilong.com.

[root@serverb ~]#

ブログ投稿コンテンツの参照の一部

記事内の参考リンクの内容の著作権は原著者に帰属しますので、侵害している場合はご連絡ください。


https://www.isc.org/bind/

<RH358 講義ノート>


© 2018-2023 [email protected]、全著作権所有。表示 - 非営利 - 継承 (CC BY-NC-SA 4.0)

おすすめ

転載: blog.csdn.net/sanhewuyang/article/details/132126384