作者 主題: 關於dns反解問題  (閱讀 6980 次)

0 會員 與 1 訪客 正在閱讀本文。

coodie

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
關於dns反解問題
« 於: 2019-06-21 20:56 »
請教各位大大們,

日前在設定dns反解時發現一個疑問,

我的dns正解裡有多筆record,例如:172.17.79.161、172.19.49.1、172.16.48.1、172.18.64.8、172.18.196.10等不同submask的IP,數量超過300筆,

在設定反解zone名稱時,我設為"172.in-addr.arpa",可是用dig指令去隨便反解一筆record,發現無"ANSWER SECTION",且"AUTHORITY SECTION"指向的zone名稱並非我設定的"172.in-addr.arpa",

請問反解的zone不能指定一個大class嗎?


netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #1 於: 2019-06-22 16:17 »
與 class 無關,如果你的反解 zone 是 172.in-addr.arpa.
那你第一筆的 record 要這樣設:
161.79.17 IN PTR your.forward.dns.name.
(請注意有沒有結尾的小數點)

coodie

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
Re: 關於dns反解問題
« 回覆 #2 於: 2019-06-23 22:16 »
Dear Netman,

我照您的教法去vm開了虛擬機測試,但還是解析不到,請問我是有哪邊設錯嗎?

以下是我的設定檔以及測試結果:
=================================================================
[root@test-dns01 named]# vim /etc/named.conf

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        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";
        allow-query     { localhost; 192.168.10.0/24; };
        forwarders {
                8.8.8.8;
                140.110.16.1;
        };

recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

view "wan" {
  match-clients {
     localhost;
     192.168.10.0/24;
  };
  zone "." IN {
     type hint;
     file "named.ca";
  };
  zone "mytwcc.ai" IN {
     type master;
     file "twcc.wan";
     allow-transfer { 192.168.10.238; };
  };
  zone "192.in-addr.arpa" IN {
     type master;
     file "twcc.wan.192";
     allow-transfer { 192.168.10.238; };
  };
};
=================================================================
[root@test-dns01 named]# vim twcc.wan.192

$TTL 86400
@                IN  SOA     test-dns01.mytwcc.ai. root.mytwcc.ai. (
                     2019050109  ;Serial
                     3600        ;Refresh
                     1800        ;Retry
                     604800      ;Expire
                     86400       ;Minimum TTL
)
@                IN  NS      test-dns01.mytwcc.ai.
@                IN  NS      slave.mytwcc.ai.
235.10.168              IN  PTR     test-dns01.mytwcc.ai.
238.10.168              IN  PTR     slave.mytwcc.ai.
@                IN  MX 10   testsmtp.mytwcc.ai.


234.10.168              IN  PTR       test-ldap.mytwcc.ai.
235.10.168              IN  PTR       test-dns01.mytwcc.ai.
236.10.168              IN  PTR       test-smtp.mytwcc.ai.
236.10.168              IN  PTR       testsmtp.mytwcc.ai.
237.10.168              IN  PTR       test-prometheus.mytwcc.ai.
238.10.168              IN  PTR       test-dns02.mytwcc.ai.
=================================================================
[root@test-dns01 named]# dig -x 192.168.10.236

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -x 192.168.10.236
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 30046
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;236.10.168.192.in-addr.arpa.   IN      PTR

;; AUTHORITY SECTION:
168.192.in-addr.arpa.   86400   IN      SOA     168.192.in-addr.arpa. . 0 28800 7200 604800 86400

;; Query time: 1 msec
;; SERVER: 192.168.10.235#53(192.168.10.235)
;; WHEN: Sun Jun 23 22:14:28 CST 2019
;; MSG SIZE  rcvd: 91

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #3 於: 2019-06-24 20:22 »
;; AUTHORITY SECTION:
168.192.in-addr.arpa.   86400   IN      SOA     168.192.in-addr.arpa. . 0 28800 7200 604800 86400

SOA 不對阿...
先看看 log 有沒載入正確的 zone ?

coodie

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
Re: 關於dns反解問題
« 回覆 #4 於: 2019-06-24 21:06 »
Dear Netman,

您說對點了,這就是我不解的地方,log顯示載入的zone是正確的,但SOA就是錯的,而且不是我設定的SOA,好怪。

我今天實驗把zone改成"168.192.in-addr.arpa",zone file的record改成"234.10              IN  PTR       test-ldap.mytwcc.ai.",這樣就可以正常反解,我就更加不懂了,難道是bind的天生限制嗎?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #5 於: 2019-06-25 20:09 »
不對啊,你上次的 log 就是 168.192.in-addr.arpa 這個 zone 了呢...

你修改回昨天的,但將 twcc.wan.192 移到別處(讓bind抓不到)
重新啓動後用 dig 查一下  NS 跟 SOA ?

coodie

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
Re: 關於dns反解問題
« 回覆 #6 於: 2019-06-26 10:09 »
Dear Netman,

將zone_file移位置後,就query不到ns以及soa的東西了,log如下:
=======================================================
[root@test-dns01 named]# vim /etc/named.conf
view "wan" {
  match-clients {
     localhost;
     192.168.10.0/24;
  };
  zone "." IN {
     type hint;
     file "named.ca";
  };
  zone "mytwcc.ai" IN {
     type master;
     file "twcc.wan";
     allow-transfer { 192.168.10.238; };
  };
  zone "192.in-addr.arpa" IN {
     type master;
     file "twcc.wan.192";
     allow-transfer { 192.168.10.238; };
  };
};

=======================================================
[root@test-dns01 named]# tail /var/log/messages
Jun 26 08:53:45 test-dns01 named[15228]: command channel listening on 127.0.0.1#953
Jun 26 08:53:45 test-dns01 named[15228]: command channel listening on ::1#953
Jun 26 08:53:45 test-dns01 named[15228]: managed-keys-zone/wan: loaded serial 0
Jun 26 08:53:45 test-dns01 named[15228]: zone mytwcc.ai/IN/wan: loaded serial 2019062501
Jun 26 08:53:45 test-dns01 named[15228]: zone 192.in-addr.arpa/IN/wan: loaded serial 20190624
Jun 26 08:53:45 test-dns01 named[15228]: all zones loaded
Jun 26 08:53:45 test-dns01 named[15228]: running
Jun 26 08:53:45 test-dns01 named[15228]: zone mytwcc.ai/IN/wan: sending notifies (serial 2019062501)
Jun 26 08:53:45 test-dns01 named[15228]: zone 192.in-addr.arpa/IN/wan: sending notifies (serial 20190624)
Jun 26 08:53:45 test-dns01 systemd: Started Berkeley Internet Name Domain (DNS).

=======================================================
[root@test-dns01 named]# mkdir tmp; mv twcc.wan.192 tmp/

=======================================================
[root@test-dns01 named]# systemctl restart named
Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.

=======================================================
[root@test-dns01 named]# journalctl -xe
Jun 26 08:58:13 test-dns01 bash[15267]: zone mytwcc.ai/IN: loaded serial 2019062501
Jun 26 08:58:13 test-dns01 bash[15267]: zone 192.in-addr.arpa/IN: loading from master file twcc.wan.192 failed: file not found
Jun 26 08:58:13 test-dns01 bash[15267]: zone 192.in-addr.arpa/IN: not loaded due to errors.
Jun 26 08:58:13 test-dns01 bash[15267]: wan/192.in-addr.arpa/IN: file not found
Jun 26 08:58:13 test-dns01 systemd[1]: named.service: control process exited, code=exited status=1
Jun 26 08:58:13 test-dns01 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).

=======================================================
[root@test-dns01 named]# dig -t soa test-dns01.mytwcc.ai

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -t soa test-dns01.mytwcc.ai
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 2229
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test-dns01.mytwcc.ai.          IN      SOA

;; AUTHORITY SECTION:
ai.                     8101    IN      SOA     pch.whois.ai. vince.offshore.ai. 2019062517 21600 3600 86400 86400

;; Query time: 3 msec
;; SERVER: 140.110.16.1#53(140.110.16.1)
;; WHEN: Wed Jun 26 09:52:50 CST 2019
;; MSG SIZE  rcvd: 110

=======================================================
[root@test-dns01 named]# dig mytwcc.ai ns

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> mytwcc.ai ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 47907
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mytwcc.ai.                     IN      NS

;; AUTHORITY SECTION:
ai.                     7205    IN      SOA     pch.whois.ai. vince.offshore.ai. 2019062517 21600 3600 86400 86400

;; Query time: 1 msec
;; SERVER: 140.110.16.1#53(140.110.16.1)
;; WHEN: Wed Jun 26 09:58:52 CST 2019
;; MSG SIZE  rcvd: 99

=======================================================

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #7 於: 2019-06-26 16:06 »
OK, 那把 zone file 搬回來吧...
暫時把 slave 的  NS 拿掉,保持單一環境來測試
然後再確定 log 跟  dig

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #8 於: 2019-06-26 16:18 »
忍不住動手裝了一個 bind 來測試...

看起來似乎不允許超過一個小數點的 PTR record?
我再試試其他方法...

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #9 於: 2019-06-26 16:28 »
嗯.... 看來真如大大猜測那樣,似乎是 bind 的限制。
我針對 192.in-addr.arpa 測試如下 PTR:
1.100.168 IN PTR node1.test.lab.
1.100.111 IN PTR node1.test.lab.
1.100 IN PTR node1.test.lab.
1 IN PTR node1.test.lab.
就只有第一筆查不到,其他都可以... Orz

coodie

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
Re: 關於dns反解問題
« 回覆 #10 於: 2019-06-27 08:23 »
真是殘念,看來我還是得要多設幾個reverse_zone才行,感謝netman

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5416
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 關於dns反解問題
« 回覆 #11 於: 2019-06-27 09:03 »
我是拿 db.127 改成 db.192 來試, 那個 1.0.0 在改成 1.0.168 時就無法正常查詢. 同一個檔案, 只要 168 改成別的數字就正常.

所以, 如果用 192 來看, 似乎是對 192.168 有特別處理?
192.168 的只能用 zone "168.192.in-addr.arpa" 來載入才不會有問題.

所以... 可能所有的 private ip 的網段在 bind 上頭都有特別處理吧.


coodie

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
Re: 關於dns反解問題
« 回覆 #12 於: 2019-06-27 10:36 »
Dear twu2,

誠如大大說的,我剛試了真是如此,如果zone是設成"192.in-addr.arpa",zone_file的record只要是x.x.非168,就都可以解析,

但如果zone設成我需要的"172.in-addr.arpa",zone_file的record不管改成怎樣的數字,都無法解析,

所以,綜合兩位大大的說法,"似乎是bind的限制,不允許超過一個小數點的PTR_record,所有private_ip的網段在bind裡面都有特別處理",

感謝兩位大大們的協助測試。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5416
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 關於dns反解問題
« 回覆 #13 於: 2019-06-27 12:13 »
猜測是只要含有 public ip 網段的 zone, 就不允許混入 private ip 網段吧.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 關於dns反解問題
« 回覆 #14 於: 2019-06-27 19:28 »
我猜應該是保留給 private network 的就不能 delegate 了...
雖然我沒再去測試了,我猜 16 之於 172.in-addr.arpa 應該也是如此。