centos7 部署dns服務器


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

 2017/12/6_第2次修改                       ccb_warlock

 

 2017/12/6:補全部署內容

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

 

有些時候作為內部調試或測試,需要指定某些域名不是指向網上的環境,而是指向我們需要指定的ip(舉例,就像我們可能需要www.baidu.com不是指向115.239.210.27,而是指向內網的192.168.1.1)。

 

作為個人的電腦,可以考慮修改host文件(C:\Windows\System32\drivers\etc),但是一旦類似域名映射的需求多了、使用人數多了之后,搭建一個DNS服務相對來說更加省事,因為大家只需要修改網絡連接的首選DNS服務器ip即可。

 

我最初學習搭建DNS服務器是因為項目的前端跳轉根據域名而來,如果不修改域名的映射很多跳轉會從測試環境跳轉到正式環境,導致一些功能使用出現問題。由於每次修改host文件費時費力,,所以決定搭建DNS服務器來解決測試時頁面跳轉的這個問題。

由於我們僅僅預要DNS的功能,所以首選還是使用linux來搭建DNS服務更好(因為可以減小公司服務器的硬件開銷),我更熟悉centos故還是學習整理centos搭建DNS的方法。

 

下面記錄如何搭建一個能將test.com解析為192.168.5.1的DNS服務器。

 


一、環境准備

 操作系統:centos7(minimal,www.centos.org下載的包是CentOS-7-x86_64-Minimal-1708.iso)

 CPU:1核

 內存:512M

 

 1.1 更換阿里yum(個人習慣)

        1)安裝wget

yum install -y wget

        2)備份默認的yum

mv /etc/yum.repos.d /etc/yum.repos.d.backup

        3)創建新的yum目錄

mkdir /etc/yum.repos.d

        4)下載阿里yum到該目錄下

wget -O /etc/yum.repos.d/CentOS-Base.repo

        5)重建緩存 

yum clean all
yum makecache

       6)升級所有包(改變軟件設置和系統設置,系統版本內核都升級,故需要幾分鍾耐心等待) 

yum update -y

 

 1.2 安裝vim(個人習慣) 

yum install -y vim

 

 二、部署bind

 2.1 安裝bind

yum -y install bind

 

 2.2 備份named.conf

cp /etc/named.conf /etc/named.conf.backup

 

 2.3 修改named.conf

vim /etc/named.conf

 

 根據下面的內容修改,wq保存。

 

options {
    # 監聽在主機的53端口上。any代表監聽所有的主機
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };

    # 如果此檔案底下有規范到正反解的zone file 檔名時,該檔名預設應該放置在哪個目錄底下
    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";

    # 誰可以對我的DNS服務器提出查詢請求。any代表任何人
    allow-query     { any; };

    /* 
     - 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;

        dnssec-lookaside auto;
        forwarders { 
           # 指定上層DNS服務器(網關)
           192.168.1.1;
        };

    /* 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;
    file "named.ca";
};

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

 

 2.4 增加zone信息

vim /etc/named.rfc1912.zones

 

 由於本次需要添加test.com域名的解析,故需要添加下面的內容,wq保存。 

zone "test.com" IN {    
       # 定義要解析主域名
        type master;
        file "test.com.zone";  
       # 具體相關解析的配置文件保存在 /var/named/test.com.zone 文件中
};

 

 2.5  創建test.com.zone

vim /var/named/test.com.zone

 

 由於本次需要解析test.com、www.test.com、abc.test.com,添加下面的內容,wq保存。 

$TTL 1D
@       IN SOA          test.com. root (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        0 )     ; minimum

        IN      NS      test.com
        IN      A       192.168.5.1
www     IN      A       192.168.5.1
print   IN      A       192.168.5.1

 

 2.6 修改該文件權限

chown root:named test.com.zone

 

 2.7 重啟 

systemctl restart named

 

 2.8 設置開機啟動

systemctl enable named

 

 2.9 防火牆開放53、953端口

firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --add-port=953/tcp --permanent
firewall-cmd --reload

 

 2.10 關閉selinux

 修改SELNUX的值,wq保存。

SELINUX=disabled

 

 重啟OS

shutdown -r now

 

 

 接着將電腦網絡適配器的首選DNS配成192.168.1.1,通過cmd來ping test.com、www.test.com、abc.test.com這些域名,可以發現返回的已經是我們配置的192.168.5.1。

 

 

參考資料:

1. http://blog.csdn.net/pzlsun/article/details/52497839

2. http://blog.csdn.net/southi/article/details/51674033 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM