linux下安裝和配置DNS服務器

DNS概念:

簡單來講DNS就是系統(tǒng)上的一個占用53端口的服務,用來提供域名和IP地址的相互轉換。比如你訪問ip.gs,路由器是不可能知道這個地址,你需要先連接到DNS服務器,DNS服務器會返回ip.gs的IP地址,這樣在網上就可以正常的路由了。反向解析是用來實現證明你這個IP地址是被認可的,尤其可以用來抵御偽造的郵件服務器泛濫。

一、安裝BIND服務器軟件并啟動

1.安裝bind:

yum install bind bind-chroot nslookup -y

在安裝完BIND后,系統(tǒng)會多一個用戶named。

2.啟動DNS服務

systemctl start named.service

3.查看named進程是否正常啟動:

[root@test-node2 named]# systemctl status named

● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2018-05-29 22:19:41 CST; 12min ago
  Process: 1422 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 1420 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 (code=exited, status=0/SUCCESS)
 Main PID: 1425 (named)
   CGroup: /system.slice/named.service
           └─1425 /usr/sbin/named -u named -c /etc/named.conf

4.DNS采用的UDP協(xié)議,監(jiān)聽53號端口,進一步檢驗named工作是否正常:

ss -anpu |grep name

5.防火墻開放TCP和UDP的53號端口:

firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

6.測試:

[root@test-node2 named]# dig www.baidu.com @192.168.1.92

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> www.baidu.com @192.168.1.92
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 375
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

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

;; Query time: 321 msec
;; SERVER: 192.168.1.92#53(192.168.1.92)
;; WHEN: 二 5月 29 22:37:38 CST 2018
;; MSG SIZE  rcvd: 42

返回數據無異常。初步配置完成!

二、DNS服務的相關配置文件

對于BIND,需要配置的主要文件為/etc/named.conf。另外兩個文件,/etc/named.isc-dlv.key保存加密用的可以,/etc/named.rfc1912.zones擴展配置文件。

1.修改主配置文件/etc/named.conf

要注意在修改之前要先進行備份,使用cp -p /etc/named.conf /etc/named.conf.bak

命令備份,參數-p表示備份文件與源文件的屬性一致。

vim /etc/named.conf修改文件:

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        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     { any; };

        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

2.修改/etc/named.rfc1912.zones

//正向區(qū)域配置
zone "hello.com" IN {
type master;
file "hello.com.zone";
allow-update { none; };
};
//反向區(qū)域配置
zone "1.168.192.in-addr.arpa" IN {
type master;
file "hello.com.local";
allow-update { none; };
};

3.添加/var/named/hello.com.zone

可以將模板文件復制一份,在進行修改

使用命令cp -p /var/named/named.localhost /var/named/hello.com.zone

進入hello.com.zone 進行配置

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.1.92
www     A       192.168.1.92

4.添加/var/named/hello.com.local

$TTL 1D
@       IN SOA  hello.com. root (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.1.92
        AAAA    ::1
        92 IN PTR www.hello.com.

三、在Linux下的DNS客戶端的設置及測試

配置/etc/resolv.conf文件。

nameserver 192.168.1.92

BIND軟件包本身提供了測試工具nslookup

[root@test-node2 named]# nslookup hello.com
Server:     192.168.1.92
Address:    192.168.1.92#53

Name:   hello.com
Address: 192.168.1.92

四. 添一條dns (node1 192.168.1.91)

vim /etc/named.rfc1912.zones
//加入一個域名node1
zone "node1" IN {
type master;
file "data/node1.zone";
allow-update { none; };
};
cd /var/named/
cp -p named.localhost data/node1.zone
$TTL 1D
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  @
    A   192.168.1.91
[root@test-node2 named]# nslookup node1

Server:     192.168.1.92
Address:    192.168.1.92#53

Name:   node1
Address: 192.168.1.91
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容