Linux網絡服務:DNS配置實驗

前言:

域名解析是把域名指向網站空間IP,讓人們通過註冊的域名可以方便地訪問到網站的一種服務。IP地址是網絡上標識站點的數字地址,爲了方便記憶,採用域名來代替IP地址標識站點地址。域名解析就是域名到IP地址的轉換過程。域名的解析工作由DNS服務器完成。

域名解析也叫域名指向、服務器設置、域名配置以及反向IP登記等等。說得簡單點就是將好記的域名解析成IP,服務由DNS服務器完成,是把域名解析到一個IP地址,然後在此IP地址的主機上將一個子目錄與域名綁定。

互聯網中的地址是數字的IP地址,域名解析的作用主要就是爲了便於記憶

一、BIND域名服務基礎

1.1 DNS系統的作用
  • 正向解析:根據主機名稱(域名)查找對應的IP地址

  • 反向解析:根據IP地址查找對應的主機域名

  • DNS 系統的分佈式數據結構:
    在這裏插入圖片描述
    以www.sina.com.cn爲例分析:
    在這裏插入圖片描述

1.2 DNS系統類型

實際上,每一臺DNS服務器都只負責管理一個有限範圍(一個或幾個域)內的主機域名和IP地址的對應關係,這些特定的DNS域或IP地址段稱爲“zone”(區域)

根據地址解析的方向不同,DNS區域相應地分爲正向區域(包含域名到IP地址的解析記錄,)和反向區域(包含IP地址到域名的解析記錄)

根據所管理的區域數據的來源不同,DNS系統可分爲不同類型,常見類型有:

  • 緩存域名服務器

也稱爲告訴緩存服務器

通過向其他域名服務器查詢獲得域名->IP地址記錄

將域名查詢結果緩存到本地,提高重複查詢時的速度

  • 主域名服務器

維護某一個特定DNS區域的地址數據庫,對其中的解析記錄具有自主控制權,是指定區域中唯一存在的權威服務器,官方服務器。

構建主域名服務器時,需要自行建立所負責區域的地址數據文件

  • 從域名服務器

與主域名服務器提供完全相同的DNS解析服務,通常用於DNS服務器的熱備份。

構建從域名服務器時,需要指定主域名服務器的位置,以便服務器能自動同步區域的地址數據庫

二、使用BIND構建域名服務器

2.1 BIND安裝文件

BIND不是唯一能夠提供域名服務的DNS服務程序,但它是應用最廣泛的,BIND可以允許在大多數Linux/UNIX主機中

  • BIND

伯克利internet域名服務

官方站點: https://www.isc/org/

可以直接使用yum安裝

  • 相關軟件包
    在這裏插入圖片描述

  • BIND服務器程序

主要執行程序:/usr/sbin/named

默認監聽端口:53

主配置文件: /etc/named.conf

保存DNS解析記錄的數據文件位於:/var/named/

2.2 主配置文件
  • BIND配置文件
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
  • 全局配置部分

設置DNS服務器的全局參數

包括監聽地址/端口,數據文件的默認位置等

使用options{…};的配置段

[root@localhost ~]# vi /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; };
......省略部分內容
  • 區域配置文件

設置本服務器提供域名解析的特定DNS區域

包括域名、服務器角色、數據文件名等

使用zone “區域名” IN{…};的配置段
在這裏插入圖片描述

  • 區域數據配置文件

全局TTL配置項及SOA記錄

$TTL(Time To live,生存時間)記錄

SOA (Start Of Authority,授權信息開始)記錄

分號 “;” 開始的部分表示註釋信息

[root@localhost ~]# vi /var/named/named.localhost 
$TTL 2D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

域名解析記錄

NS 域名服務器記錄

MX 郵件交換記錄

A 地址記錄,只用在正向解析區域中

CNAME 別名記錄

例如:

@		IN		NS	    ns1.bdqn.com
		IN		MX 10   mail.bdqn.com
ns1		IN		A	    58.119.74.203
www		IN		A		173.16.16.1
mail	IN		A		173.16.16.4
ftp		IN		CNAME	WWW

反向區域數據文件

在反向區域數據文件中,不會用到A地址記錄,而是使用PTR指針(print)記錄

例如,對於反向區域10.168.192.in-addr.arpa,添加的反向解析記錄可以是以下形式

1 IN PTR www.eee.com.	"表示IP地址爲192.168.192.1的主機域名是www.eee.com"
2 IN PTR mail.eee.com.  "表示IP地址爲192.168.192.5的主機域名是mail.eee.com"
  • 使用netstat命令查看服務狀態
[root@localhost ~]# netstat -ntap | grep named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      44453/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      44453/named         
tcp6       0      0 ::1:53                  :::*                    LISTEN      44453/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      44453/named 
[root@localhost ~]# netstat -nuap | grep named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           44453/named         
udp6       0      0 ::1:53                  :::*                                44453/named   
2.2 區域數據配置文件的特殊應用
  • 基於域名解析的負載均衡

同一域名對應到多個IP地址

  • 泛域名解析

找不到精確對應的A記錄時,可以使用“*” 進行匹配

www		IN	A		192.168.100.100	  "輪流負載均衡"
www		IN	A		192.168.100.101
www		IN	A		192.168.100.102   
*		IN	A		192.168.100.100  "泛域名解析"

2.2.1對配置文件進行語法檢查

named-checkconf 工具

named-checkconf -z [主配置文件]

[root@localhost ~]# named-checkzone kgc.com /var/named/kgc.com.zone 
zone kgc.com/IN: kgc.com/MX 'mail.kog.com' (out of zone) is a CNAME 'mail.kog.com.netsolmail.net' (illegal)
zone kgc.com/IN: loaded serial 0
OK
[root@localhost ~]# named-checkconf -z /etc/named.conf 
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0 

三、使用BIND構建域名服務器(實驗)

環境:開啓兩臺虛擬機,將centos7-1與centos7-2模擬爲主、從DNS服務器,使用yum 安裝“bind”軟件包。

centos7-1 IP地址爲:192.168.181.130

centos7-2 IP地址爲:192.168.181.133

  • 修改全局配置文件

修改兩臺服務器的全局配置文件,修改內容如下:

[root@localhost ~]# vi /etc/named.conf
options {
        listen-on port 53 { any; };   “修改爲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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };  “修改爲any”
  • 修改區域配置文件

主服務器(centos7-1):

centos7-1(主服務器):
[root@localhost ~]# vi /etc/named.rfc1912.zones
zone "ceshi.com" IN {    “設置主服務器域名”
        type master;      “類型,主域名服務器”
        file "ceshi.com.zone";    “主服務器區域數據文件名”
        allow-transfer { 192.168.181.133; };  “設置從域名服務器”
};
...............省略部分內容

從服務器(centos7-2)

centos7-2(從服務器):
[root@localhost ~]# vi /etc/named.rfc1912.zones
zone "ceshi.com" IN {   “設置從服務器域名”
        type slave;     “類型,從域名服務器”
        file "slaves/ceshi.com.zone";  “從服務器區域數據文件名”
        masters { 192.168.181.130; };  “設置主域名服務器”
};
...........省略部分內容
  • 修改區域數據配置文件

進入區域數據配置文件目錄,複製named.localhost模板,複製文件名爲ceshi.com.zone。

[root@localhost named]# cp -p named.localhost ceshi.com.zone
[root@localhost named]# ls
ceshi.com.zone  dynamic   named.empty      named.loopback
data            named.ca  named.localhost  slaves

複製成功後我們可以在當前目錄中看到“slaves” 這就是從服務器的區域數據配置文件。

只修改主服務器,從服務器會自動同步主服務器,現在編輯主服務器數據配置文件

[root@localhost opt]# vi /var/named/named.localhost 
$TTL 1D
@       IN SOA  ceshi.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ceshi.com.
        A       192.168.181.130    (本地DNS服務器地址)
IN MX   10      mail.ceshi.com.    (郵箱地址)
www IN  A       192.168.181.99     (解析www.ceshi.com時的IP地址)
ftp IN  A       192.168.181.88	   (解析ftp.ceshi.com時的IP地址)
smtp IN CNAME   www                (解析smtp.ceshi.com時導向www.ceshi.com的IP地址)
*   IN  A       8.8.8.8		   (泛域名解析時的地址)

其中 :

D :代表天

H :代表時

W:代表周

M:代表分

  • 關閉主、從服務器的防火牆和增強性安全功能
[root@localhost named]# systemctl stop firewalld.service 
[root@localhost named]# setenforece 0
  • 開啓一臺win10虛擬機用於測試

第一步:關閉win10防護牆

第二步:更改win10網卡DNS服務器的地址:
在這裏插入圖片描述

第三步:cmd進入命令提示符界面,使用nslookup驗證:
在這裏插入圖片描述

總結:

在配置DNS服務器的時候,要注意區域配置文件與區域數據配置文件中的標點符號, 少或者多一個都有可能導致bind服務無法開啓。
我們的實驗暫時都是在步設計防火牆的過程中進行,所以需要關閉防火牆與增強性安全功能,後期將介紹如何配置防火牆,允許指定主機向內訪問DNS服務器主機的流程。

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