CentOS7.6域名服務器配置(二)使用Bind配置DNS服務器的轉發功能-forward

使用Bind配置DNS服務器的轉發功能-forward

上一篇筆記 CentOS7.6域名服務器配置(一)使用Bind配置主從DNS服務器 記錄下Bind配置主從DNS服務。並且配置了2個測試使用的域名 demo.comexample.com
在客戶端10.116.72.4上配置域名解析服務器,並驗證

# 配置
vi /etc/resolv.conf
nameserver 10.116.72.6
nameserver 10.116.72.7

# 驗證 1
ping www.example.com
PING www.example.com (10.116.72.4) 56(84) bytes of data.
64 bytes from demo.com (10.116.72.4): icmp_seq=1 ttl=64 time=0.021 ms 

# 驗證 2
ping www.baidu.com  你會發現並無法解析

出現上面除了*.example.com *.demo.com之外的其他域名都無法解析,這是因爲正常配置的Bind域名服務器只能解析配置的域名,那麼如何配置可以解析之外的域名呢,這裏就用到了forward功能了。

一、配置BIND轉發器轉發其他域名

  • 配置主機:主/從 BIND服務器都需要配置
    主:10.116.72.6
    從:10.116.72.7
vi /etc/named.conf
options {
		//省略其他...  .... 
        recursion yes;
        forward first;
        /* 這裏配置轉發器有阿里聯通,google域名服務
        forwarders { 
                223.5.5.5; 
                223.6.6.6;
                114.114.114.114;
                8.8.8.8;
                8.8.4.4;
        };

}

* 重啓named服務,配置生效
```bash
systemctl restart named.service
  • 驗證
dig www.baidu.com @10.116.72.6

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> www.baidu.com @10.116.72.6
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10323
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          0       IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       299     IN      A       39.156.66.18
www.a.shifen.com.       299     IN      A       39.156.66.14

;; AUTHORITY SECTION:
.                       108329  IN      NS      l.root-servers.net.
.                       108329  IN      NS      c.root-servers.net.
.                       108329  IN      NS      f.root-servers.net.
.                       108329  IN      NS      j.root-servers.net.
.                       108329  IN      NS      m.root-servers.net.
.                       108329  IN      NS      g.root-servers.net.
.                       108329  IN      NS      b.root-servers.net.
.                       108329  IN      NS      a.root-servers.net.
.                       108329  IN      NS      h.root-servers.net.
.                       108329  IN      NS      d.root-servers.net.
.                       108329  IN      NS      e.root-servers.net.
.                       108329  IN      NS      k.root-servers.net.
.                       108329  IN      NS      i.root-servers.net.

;; Query time: 159 msec
;; SERVER: 10.116.72.6#53(10.116.72.6)
;; WHEN: Thu Jul 18 15:52:53 CST 2019
;; MSG SIZE  rcvd: 312

二、配置轉發區(forward zone)

我這裏的bind服務器10.116.72.6/7都是我用來測試的。我們企業還有產線使用的內部域名解析服務器,例如10.116.71.10/11 內部域名區域(zone)是eju.local。這個域名一看就不是標準域名,只用於內部主機解析。
上面的轉發器轉發的都是公網真實域名(當然也可以在那裏配置添加上10.116.71.10/11,但是這裏的IP地址是輪詢方式解析的,效率會低些)。
Bind提供的轉發區域的概念,允許把 DNS 配置爲查找特定域名的時候才使用轉發器。例如,可以使業務主機服務器將所有對剛剛提到的eju.local結尾的域名查詢都轉發給eju.local的名字服務器(NS)。

  • 配置轉發區域(forward zone)
    在主從服務器上都配置
# 因爲eju.local不是標準的域名格式,需要關閉dnssec驗證
cat /etc/named.conf
options {
		//省略其他配置 ... ...
        dnssec-enable no;
        dnssec-validation no;
}


# 配置轉發區域
cat /etc/named.rfc1912.zones
//省略其他配置 ... ...
zone "eju.local" IN {
        type forward;
        forwarders { 10.116.71.10; 10.116.71.11; };
};
  • 重啓named服務,配置生效
systemctl restart named.service
  • 驗證
dig fang-source.fang.eju.local @10.116.72.6

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> fang-source.fang.eju.local @10.116.72.6
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9586
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 7

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;fang-source.fang.eju.local.    IN      A

;; ANSWER SECTION:
fang-source.fang.eju.local. 601947 IN   A       10.116.186.4
fang-source.fang.eju.local. 601947 IN   A       10.116.186.5

;; AUTHORITY SECTION:
eju.local.              601947  IN      NS      dns4.eju.local.
eju.local.              601947  IN      NS      dns2.eju.local.
eju.local.              601947  IN      NS      dns6.eju.local.
eju.local.              601947  IN      NS      dns7.eju.local.
eju.local.              601947  IN      NS      dns5.eju.local.
eju.local.              601947  IN      NS      dns3.eju.local.

;; ADDITIONAL SECTION:
dns3.eju.local.         604778  IN      A       10.99.73.6
dns7.eju.local.         604778  IN      A       10.116.71.11
dns5.eju.local.         604778  IN      A       10.106.71.11
dns2.eju.local.         604778  IN      A       10.99.73.5
dns6.eju.local.         604778  IN      A       10.116.71.10
dns4.eju.local.         604778  IN      A       10.106.71.10

;; Query time: 1 msec
;; SERVER: 10.116.72.6#53(10.116.72.6)
;; WHEN: Thu Jul 18 16:09:07 CST 2019
;; MSG SIZE  rcvd: 297

備註:如果沒有關閉dnssec驗證,無法解析非標準格式的域名,日誌會報如下錯誤

validating ./NS: got insecure response; parent indicates it should be secure
  validating eju.local/SOA: got insecure response; parent indicates it should be secure
no valid RRSIG resolving 'dns.eju.local/DS/IN': 10.116.71.10#53
  validating eju.local/SOA: got insecure response; parent indicates it should be secure
no valid RRSIG resolving 'dns.eju.local/DS/IN': 10.116.71.11#53
insecurity proof failed resolving 'dns.eju.local/A/IN': 10.116.71.11#53
validating dns.eju.local/A: got insecure response; parent indicates it should be secure
insecurity proof failed resolving 'dns.eju.local/A/IN': 10.116.71.10#53

這種情況需要設置如下 : 文件 /etc/named.conf
dnssec-enable no;
dnssec-validation no;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章