1. 程式人生 > >dns伺服器搭建及配置測試流程

dns伺服器搭建及配置測試流程

1、使用 bind(Berkeley Internet Name Domain)搭建 DNS(Domain Name System)伺服器

安裝。
yum -y install bind-chroot

可先查詢是否已經安裝:
rpm -q bind
rpm -q bind-chroot

相關檔案列表

描述 路徑
主程式 /usr/sbin/named
主配置檔案 /etc/named.conf
區域配置檔案 /etc/named.rfc1912.zones
自定義域模板配置檔案 /var/named/named.localhost

2、修改主配置檔案

vim /etc/named.conf

#listen-on port 53 { 127.0.0.1;};//127.0.0.1修改為any,代表允許監聽任何IP地址。
listen-on port 53 { any; }; 
#allow-query { localhost;};localhost修改為any,代表允許任何主機查詢。
allow-query
{ any; };
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html options { #listen-on port 53 { 127.0.0.1; }; // 註釋此行 // ipv4的監聽埠設定,{}內表示的ip表示向哪些客戶端提供 named服務,預設只有本機 // 這裡我們把它改成 any,不對客戶端限制 listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; // ipv6監聽埠設定 directory "/var/named"; // zone區域檔案目錄 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; }; // 開放訪問許可權 allow-query { any; }; // 新增forwarders,指向其它DNS伺服器,可根據需要新增 #forwarders { # 202.106.196.115; #}; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ 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; }; }; zone "." IN { // "."代表根區域 type hint; // 根區域的型別就為hint file "named.ca"; // 指定zone檔案,預設已經生成 }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

3、配置區域資料資訊

vim /etc/named.rfc1912.zones
直接在後面追加,不要刪已有的資料。

zone "jjmusic.com" IN {     // 正向解析 
        type master;
        file "named.jjmusic.com.zone";  // 自定義 域名->ip 的正向解析配置檔案
        allow-update { none; };
};

// 如果需要配置逆向解析可以新增
// 逆向解析:從 ip->解析出域名
zone "1.168.192.in-addr.arpa" IN {      // 本地內網為192.168.1.x
        type master;  
        file "named.192.168.1.arpa";    // 自定義的IP到域名的反向解析配置檔案
        allow-update { none; };
};  

4、配置解析資料檔案

4.1、配置正向解析資料檔案named.jjmusic.com.zone

先檢視模板檔案cat named.localhost

$TTL 1D ; 生存期, 預設單位為秒,另可設定為[W|D|H|M] 
; [zone] IN SOA [主機名] [管理員email] ([五組更新時間引數])  
; @=>zone IN SOA @=>主機名 rname.invalid.=>email  
; @代表根域  
; rname.invalid.解析為rname@invalid,第一個"."為"@"的替代,尾部的"."為根域,表明其為絕對URL。
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  @   ; 直接輸入域名,訪問@
    A   127.0.0.1   ; 解析到ipv4對應的 IP
    AAAA    ::1     ; 解析到ipv6對應的 IP

拷貝模版檔案named.localhost進行修改

[root@Centos ~]# cd /var/named/
[root@Centos named]# cp -a named.localhost named.jjmusic.com.zone
[root@Centos named]# vim named.jjmusic.com.zone
$TTL 1D
@   IN SOA  ns1.jjmusic.com *.gmail.com. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
        NS  ns1.jjmusic.com
        NS  ns2.jjmusic.com
        A   221.123.177.226 ;外網ip
        A   192.168.1.111   ;內網ip
ns1     A   192.168.1.112   ;dns1內網ip
ns2     A   192.168.1.113   ;dns2內網ip
www     A   192.168.1.122   ;子域名對應ip
store   A   192.168.1.133   ;子域名對應ip
img     A   192.168.1.144   ;子域名對應ip
www1    CNAME   www.jjmusic.com.   ;別名記錄
        AAAA    ::1         ; 解析到ipv6對應的 IP

dns記錄型別說明:
1) A 記錄: 指定域名或子域名對應的IP地址
2) AAAA 記錄: 指定域名對應的IPV6的IP地址
3) CNAME 記錄: 通常稱別名解析。可以將註冊的不同域名都轉到一個域名記錄上,由這個域名記錄統一解析管理,與A記錄不同的是,CNAME別名記錄設定的可以是一個域名的描述而不一定是IP地址
4) NS 記錄: NS(Name Server)記錄是域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析。 您註冊域名時,總有預設的DNS伺服器,每個註冊的域名都是由一個DNS域名伺服器來進行解析的,DNS伺服器NS記錄地址一般以以下的形式出現: ns1.domain.com、ns2.domain.com等。簡單的說,NS記錄是指定由哪個DNS伺服器解析你的域名。
5) MX 記錄: MX(Mail Exchanger)記錄是郵件交換記錄,它指向一個郵件伺服器,用於電子郵件系統發郵件時根據收信人的地址字尾來定位郵件伺服器。例如,當Internet上的某使用者要發一封信給 [email protected] 時,該使用者的郵件系統通過DNS查詢mydomain.com這個域名的MX記錄,如果MX記錄存在, 使用者計算機就將郵件傳送到MX記錄所指定的郵件伺服器上。
6) TXT 記錄: 一般指某個主機名或域名的說明,如:admin IN TXT “管理員, 電話:XXXXXXXXXXX”,mail IN TXT “郵件主機,存放在xxx , 管理人:AAA”,Jim IN TXT “contact: [email protected]”,也就是您可以設定 TXT 內容以便使別人聯絡到您。 TXT的應用之一,SPF(Sender Policy Framework)反垃圾郵件。SPF是跟DNS相關的一項技術,它的內容寫在DNS的TXT型別的記錄裡面。MX記錄的作用是給寄信者指明某個域名的郵件伺服器有哪些。SPF的作用跟MX相反,它向收信者表明,哪些郵件伺服器是經過某個域名認可會發送郵件的。SPF的作用主要是反垃圾郵件,主要針對那些發信人偽造域名的垃圾郵件。例如:當郵件伺服器收到自稱發件人是[email protected]的郵件,那麼到底它是不是真的gmail.com的郵件伺服器發過來的呢,我們可以查詢gmail.com的SPF記錄,以此防止別人偽造你來發郵件。
7) PTR 記錄:PTR是pointer 的簡寫。 “PTR”就是”反向DNS”,
domain name pointer,可以粗略的理解為DNS反向
Domain Name Pointer. 是一個指標記錄,用於將一個IP地址對映到對應的主機名,也可以看成是A記錄的反向,通過IP訪問域名,原來是通過域名訪問IP)
如何順利做好反向解析?首先要有固定公網IP地址、可用域名(最好不要被其它服務所用),例如您有lunch-time.com的域名,您可以要求您的域名註冊商為您新增一個okmail.lunch-time.com的域名  並將其A記錄指向您的SMTP伺服器出口公網IP地址,如:220.112.20.18,接著請與您的固定IP所屬ISP聯絡要求為您的IP反向解析至okmail.lunch-time.com。完成後別忘了將您的SMTP伺服器的HELO域名改為okmail.lunch-time.com,這樣才可以達到目的。
另:
1、做好反向解析後發往sina.com的信件有可能會被轉至“不明郵件夾”中,此時請您與sina.com聯絡,要求為您解決該問題。
2、檢視反向解析是否成功,可用如下命令:nslookup –qt=ptr yourIP,從返回的資訊中您可以看到反向解析的結果。
3、一定要有固定公網IP地址以及真實可用域名。同時要注意反向解析的域名的A記錄一定要指向該IP!
4、對於有多個固定公網IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP伺服器,只要是通過該IP連線至外網就將這些SMTP伺服器的HELO域名改成IP反向解析之域名即可。(和這些SMTP伺服器上的地址域是無關的)

摘自https://yq.aliyun.com/articles/331012

4.1、配置逆向解析資料檔案(如果需要的話)named.192.168.1.arpa

拷貝模版檔案named.loopback進行修改

[root@Centos ~]# cd /var/named/
[root@Centos named]# cp -a named.loopback named.192.168.1.arpa
[root@Centos named]# vim named.192.168.1.arpa
$TTL 1D
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  @
111 PTR jjmusic.com
122 PTR www.jjmusic.com
133 PTR store.jjmusic.com
111 PTR img.jjmusic.com
    A   127.0.0.1
    AAAA    ::1
    PTR localhost.

5、重啟named,使配置立即生效

重啟之前可以先檢查一下配置檔案的正確性。
/usr/sbin/named-checkconf -z
重啟。
systemctl restart named/sbin/service named start


6、校驗解析結果

6.1 Linux Client驗證

將客戶端的dns設定為剛才修改的伺服器ip。
vim /etc/resolv.conf

# Generated by NetworkManager
search test
nameserver 122.11.47.184     #新加DNS伺服器地址
nameserver 114.114.114.114
nameserver 8.8.8.8

nolookup命令用於查詢域名與ip的解析記錄。

# nslookup 
> jjmusic.com
Server:     122.11.47.184
Address:    122.11.47.184#53

Name:    jjmusic.com
Address: 192.168.1.111
> www.jjmusic.com
Server:     122.11.47.184
Address:    122.11.47.184#53

Name:    www.jjmusic.com
Address: 192.168.1.122
> store.jjmusic.com
Server:     122.11.47.184
Address:    122.11.47.184#53

Name:    store.jjmusic.com
Address: 192.168.1.133
> img.jjmusic.com
Server:     122.11.47.184
Address:    122.11.47.184#53

Name:    img.jjmusic.com
Address: 192.168.1.144

6.2 Windows Client驗證

先修改 DNS伺服器地址

#ipconfig /flushdns  // 重新整理 dns解析快取
#nslookup
> jjmusic.com
Server:     122.11.47.184
Address:    122.11.47.184#53

Name:    jjmusic.com
Address: 192.168.1.111
> www.jjmusic.com
Server:     122.11.47.184
Address:    122.11.47.184#53

Name:    www.jjmusic.com
Address: 192.168.1.122

參考

https://www.cnblogs.com/heiye123/articles/7687922.html
https://www.cnblogs.com/zydev/p/6293745.html
http://leitelyaya.iteye.com/blog/808266