DNS域名伺服器

红荼發表於2024-05-05

DNS域名伺服器

什麼是DNS

Domain Name System 域名系統,應用層協議,是網際網路的一項服務。它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便地訪問網際網路,基於C/S架構,伺服器端:53/udp, 53/tcp實際上,每一臺 DNS 伺服器都只負責管理一個有限範圍(一個或幾個域)內的主機域 名和 IP 地址的對應關係,這些特定的 DNS 域或 IP 地址段稱為 zone(區域)。根據地址解 析的方向不同,DNS 區域相應地分為正向區域(包含域名到 IP 地址的解析記錄)和反向區 域(包含 IP 地址到域名的解析記錄)

DNS伺服器型別

DNS伺服器可以分為以下幾種型別:

主DNS伺服器:負責管理所有的域名記錄,如A記錄、CNAME記錄、MX記錄等,主DNS伺服器會檢查自己的快取記錄,如果找不到對應的記錄,會查詢從DNS伺服器。
輔助DNS伺服器:不建立區域,其區域資料是從主DNS伺服器複製來的,輔助DNS伺服器會和建立聯絡的主DNS伺服器聯絡,並從主DNS伺服器中複製資料。
快取伺服器:沒有自己的區域資料檔案,只是幫助客戶端向外部DNS請求查詢,然後將查詢的結果儲存到它的快取中。
轉發DNS伺服器:不儲存任何域名記錄,只負責接收使用者的查詢請求,並將這些請求轉發給其他的DNS伺服器。
遞迴DNS伺服器:負責接收純快取伺服器傳送的查詢請求,然後透過向各級授權伺服器發出查詢請求獲得需要的查詢結果,最後返回給純快取伺服器的解析器。
權威DNS伺服器:負責管理特定頂級域名下的一級域名伺服器,權威DNS伺服器會返回該域名所對應的IP地址。
網路域名稱系統:主要用於管理大型組織內部的網路環境,可以為組織內部的所有計算機提供一個唯一的主機名,並將其與相應的IP地址繫結在一起。

遞迴DNS伺服器

根伺服器

一級域名伺服器

二級域名伺服器

三級域名伺服器

.........

到123級域名伺服器

DNS查詢原理

先檢視本機的快取記錄,有就轉到該域名對應的IP地址;若沒有記錄,就遞迴查詢本機的hosts檔案,若hosts有就轉到對應地址;若hosts檔案裡沒有,就轉到DNS域名伺服器查詢,有就直接返回結果並轉到其對應地址:若本地DNS域名伺服器沒有,就轉到外網上的DNS域名伺服器,從根伺服器迭代向下查詢到一級域名伺服器、二級域名伺服器、三級域名伺服器,最終由一個權威伺服器反饋查詢到對應的IP地址給DNS域名伺服器,在由DNS域名伺服器把得到的域名和對應的IP地址傳送給需求的主機。

DNS的安裝與應用

DNS安裝和DNS伺服器解析應用

[root@localhost ~]#yum  install bind bind-utils -y
#主軟體 和 配置包管理軟體
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
[root@localhost ~]#systemctl start named
#開啟服務
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
將DNS修改為本機的域名
#重啟服務
[root@localhost ~]#systemctl restart network
[root@localhost ~]# vim /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; };		#將127.0.0.1修改為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     { localhost; };		    #將localhost修改為any
:wq
[root@localhost ~]#rndc reload
server reload successful
#重新載入DNS服務
[root@localhost named]#vim /etc/named.rfc1912.zones 
#編寫域名
zone "localhost.localdomain" IN {  		#將localhost.localdomain改寫為你想要的域名
        type master;
        file "named.localhost";			#將named.localhost改寫為你想要的域名並加入.zone
        allow-update { none; };			#這行可以不要
};
:wq
[root@localhost named]#cd /var/named/
#切換目錄
[root@localhost named]# ls
chroot      data     dyndb-ldap  named.empty      named.loopback
chroot_sdb  dynamic  named.ca    named.localhost  slaves
[root@localhost named]#cp named.localhost ./***.com.zone -p
#保留許可權複製,***為上面修改的域名。
[root@localhost named]# vim zhang.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (		#將@修改為你修改的域名
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @			#將@改為master
        A       127.0.0.1	#改為master  A  本機DNS地址
        AAAA    ::1			#可以刪除
[root@localhost named]# host master.zhang.com		#驗證DNS
master.zhang.com has address 192.168.10.10

相關文章