一,域名服務

1,何為DNS

DNS域名系統是因特網的一項核心服務,它作為將域名和IP地址相互映射的一個分佈式數據庫,能夠使人更方便地訪問互聯網,而不用記住能夠被機器直接讀取的IP數串。

全球13台DNS根服務器分佈:
美國VeriSign公司 2台
網絡管理組織IANA(Internet Assigned Number Authority) 1台
歐洲網絡管理組織RIPE-NCC(Resource IP Europeens Network Coordination Centre) 1台
美國PSINet公司 1台
美國ISI(Information Sciences Institute) 1台
美國ISC(Internet Software Consortium) 1台
美國馬里蘭大學(University of Maryland) 1台
美國太空總署(NASA) 1台
美國國防部 1台
美國陸軍研究所 1台
挪威NORDUnet 1台
日本WIDE(Widely Integrated Distributed Environments)研究計劃 1台

“全世界只有13台(這13台根域名服務器名字分別為“A”至“M”),1個為主根服務器在美國。其餘12個均為輔根服務器,其中9個在美國,歐洲2個,位於英國和瑞典,亞洲1個位於日本

2,DNS的作用

正向解析:根據域名查找對應的IP地址

反向解析:根據IP地址查找對應的域名(反垃圾郵件的驗證)

3,DNS使用的協議及端口號

DNS的默認的端口為53,端口分為TCP和UDP

TCP用來區域傳送,多用於主從同步

在一個區中主DNS服務器從自己本機的數據文件中讀取該區的DNS數據信息,而輔助DNS服務器則從區的主DNS服務器中讀取該區的DNS數據信息.

UDP用來做DNS解析

域名:通常由一個完全合格域名(FQDN)標識。FQDN 全稱 Fully Qualified Domain Name ,它能準確表示出其相對於 DNS 域樹根的位置, 也就是節點到DNS 樹根的完整表述方式,從節點到樹根採用反向書寫,並將每個節點用“.”分隔,對於DNS 域google來説,其完全正式域名(FQDN)為google.com。
例如,google 為 com 域的子域,其表示方法為 google.com,而 www 為 google 域中的子域, 可以使用www.google.com. 表示。

4,域名構成

1 http://www.sina.com.cn./
2 http://主機.子域.二級域.頂級域 根域/

5,DNS域名解析過程

正向解析:FQDN--------IP(一對多)------一般使用正向解析
反向解析:IP------------FQDN

FQDN:(Fully Qualified Domain Name)全限定域名:同時帶有主機名和域名的名稱。從全限定域名中包含的信息可以看出主機在域名樹中的位置。

1.正向解析過程:

1)先查詢本地的緩存記錄;

2)查詢hosts文件;

3)查詢dns域名服務器,交給dns域名服務器處理

4)這個dns服務器可能是本地域名服務器,也有個緩存,若有直接返回結果,若無,進行下一步

客户端---本地dns服務器:屬於遞歸查詢

5)求助根域服務器,根域服務器返回可能會知道結果的頂級域服務器,讓他去找頂級域服務器

6)求助頂級域服務器,頂級域服務器返回可能會知道結果的二級域服務器,讓他去找二級域服務器

7)求助二級域服務器,二級域服務器查詢發現是我的主機,把查詢到的IP地址返回給本地域名服務器

8)本地域名服務器將結果記錄到緩存,然後把域名和IP的對應關係返回給客户端

本地dns服務器----外網:屬於迭代查詢

2.兩種查詢方式

1)遞歸查詢

DNS服務器接收到客户機請求,必須使用一個準確的查詢結果回覆客户機;

若DNS服務器本地沒有存儲查詢DNS信息,服務器會詢問其他服務器,並返回查詢結果提交給客户機

客户機發送請求後,只有等待結果即可,中間的具體過程交給服務器實現

2)迭代查詢(重指引)

客户機發送查詢請求時,DNS服務器並不直接回複查詢結果,而是告知客户機另一台DNS服務器地址;

客户機再向在這台DNS服務器提交請求,依次循環直到返回查詢的結果為止

客户機的請求需要自己挨個去查詢才會得到結果,服務器沒有結果時只會給你通過其他服務器的地址,而不是幫你請求查詢

綜上:

遞歸查詢時,返回的結果只有兩種:查詢成功或查詢失敗
迭代查詢又稱作重指引,返回的是最佳的查詢點或者主機地址

【windows系統查詢dns緩存命令:ipconfig /displaydns
windows系統清理dns緩存命令:ipconfig /flushdns

linux清dns緩存需要安裝nscd軟件,啓動、執行nscd -i hosts

6,域名體系結構

1)DNS的分佈式互聯網解析庫

根. 根域名DNS服務器:

位於域名空間最頂層,一般用一個“.” 表示;專門負責根域名

一級DNS服務器(頂級域):

專門負責一級域名解析(一種類型的組織機構或國家地區)

.com(工商 企業)   .net(網絡供應商)   .edu(教育機構)    .cn(中國國家域名)   .org(團體組織)      .gov (政府部門)

二級DNS服務器:

明頂級域內的一個特定的組織,國家頂級域下面的二級域名由國家網絡部門統一管理;專門負責二級域名的解析

頂級域名下面設置的二級域名: .com.cn  .net.cn   .edu.cn

子域名DNS服務器:亦稱為三級域名

各個組織或用户可以自由申請註冊自己的域名

2)域名體系結構

所有的域名必須以點結尾:www.qq.com.   www.baidu.com
根域名(.)
一級域名:.cn(中國) .kr(韓國) .jp(日本) .hk(香港).uk(英國) 
二級域名:.com.cn(中國商業組織) edu.cn(教育機構)  .org.cn(非盈利) .net.cn(中國運營商)
三級域名:sina.com.cn nb.com.cn haixi.com.cn .........
組織域:.com .org .net .CC
國家域:.cn .tw(台灣) .hk(香港) .iq .ir .jp(日本)
反向域

常見的:

114.114.114.114是國內移動、電信和聯通通用的DNS

8.8.8.8是GOOGLE公司提供的DNS,該地址全球通用

223.5.5.5 和 223.6.6.6:阿里雲DNS

江蘇省南京市(中國電信)首選DNS為:218.2.135.1 備用DNS為:61.147.37.1

二,DNS服務器類型

1)主域名服務器:

負責維護一個區域的所有域名信息,是特定的所有信息的權威信息源,數據可以修改。構建主域名服務器時,需要自行建立所負責區域的地址數據文件。

2)從域名服務器:

當主域名服務器出現故障、關閉或負載過重時,從域名服務器作為備份服務提供域名解析服務。

從域名服務器提供的解析結果不是由自己決定的,而是來自於主域名服務器。構建從域名服務器時,需要指定主域名服務器的位置,以便服務器能自動同步區域的地址數據庫。

3)緩存域名服務器:

只提供域名解析結果的緩存功能,目的在於提高查詢速度和效率,但沒有域名數據庫。它從某個遠程服務器取得每次域名服務器查詢的結果,並將它放在高速緩存中,以後查詢相同的信息時用它予以響應。緩存域名服務器不是權威性服務器,因為提供的所有信息都是間接信息。構建緩存域名服務器時,必須設置根域或指定其他DNS服務器作為解析來源。

4)轉發域名服務器:

負責所有非本地域名的本地查詢。轉發域名服務器接到查詢請求後,在其緩存中查找,如找不到就將請求依次轉發到指定的域名服務器,直到查找到結果為止,否則返回無法映射的結果。

實驗配置:

BIND的軟件包如下
bind-9.9.4-37.el7.x86_64.rpm    //提供了域名服務的主要程序及相關文件。
bind-utils-9.9.4-37.el7.x86_64.rpm  // 提供了對 DNS 服務器的測試工具程序,如 nslookup 等
bind-libs-9.9.4-37.el7.x86_64.rpm   //提供了 bind、bind-utils 需要使用的庫函數。
bind-chroot-9.9.4-37.el7.x86_64.rpm  // 為 BIND 服務提供一個偽裝的根目錄(將/var/named/chroot/文件夾 作為 BIND 服務的根目錄),以提高安全性。 

配置:
安裝bind軟件包
 yum -y install  bind  (必須網絡源或光盤掛載)  或rpm -ivh 前提掛載光盤(系統盤ISO鏡像)


修改主要配置文件 
vim /etc/named.conf
options {
listen-on port 53 { 192.168.10.10; }; ●監聽53端口,ip地址使用提供服務的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; #ipv6行如不使用可以註釋掉或者刪除
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 { 192.168.10.0/24; 172.16.30.0/24; };● 允許使用本DNS解析服務的網段,也可用any代表所有
}


zone "." IN {#正向解析“."根區域
type hint;#類型為根區域
file "named.ca";#區域數據文件為named.ca,#記錄了13台根域服務器的域名和IP地址等信息
};


include "/etc/named. rfc1912. zones"; #包含區域配置文件裏的所有配置

配置正向區域數據文件
cd /var/ named/
cp -p named.localhost ceshi.com.zone               #保留源文件的權限和屬主的屬性複製
vim /var/named/ceshi.com.zone
$TTL 1D                                            #有效解析記錄的生存週期
@   in SOA ceshi.com. admin.ceshi.com. (   #“@"符號表示當前的DNS區域名
                     0   ; serial              #更新序列號,可以是10位以內的整數
                    1D   ; refresh             #刷新時間,重新下載地址數據的間隔
                    1H   ; retry               #重試延時,下載失敗後的重試間隔
                    1W   ; expire              #失效時間,超過該時間仍無法下載則放棄#
					3H)  ; minimum             #無效解析記錄的生存週期,
        NS      ceshi.com.                     #記錄當前區域的DNS服務器的名稱
        A     192.168.10.10                   #記錄主機IP地址
IN   MX 10    mail.ceshi.com.            #MX為郵件交換記錄,數字越大優先級越低
www  IN A     192.168.10.10              #記錄正向解析www.ceshi.com對應的IP
mail IN A     192.168.10.11              #MX為郵件交換記錄,數字越大優先級低 
ftp  IN CNAME  www                       #CNAME使用別名,ftp 是www的別名
*    IN A   192.168.10.100               #泛域名解析,“*"代表任意主機名

啓動服務,關閉防火牆
systemctl start named
systemctl stop firewalld
setenforce 0
#如果服務啓動失敗,可以查看日誌文件來排查錯誤
tail -f /var/log/messages

在客户端的域名解析配置文件中添加DNS服務器地址
vi /etc/resolv .conf
#修改完後立即生效
nameserver 192.168.10.10
或
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改完後需要重啓網卡

測試DNS解析
host  www.ceshi.com
nslookup www.ceshi.com

反向解析
vim /etc/named.rfc1912.zones
// 192.168.10.0 反向則是 10.168.192
zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "ceshi.com.zone.local";    //指定反向解析的數據文件,也可以跟正向解析的數據文件相同
        allow-update { none; };
};

cd /var/named/
cp -p ceshi.com.zone ceshi.com.zone.local
$TTL 1D   #有效解析記錄的生存週期,默認單位為秒
@       IN SOA  ceshi.com. admin.ceshi.com. (    #SOA標記、域名和管理員郵箱,@變量表示域名
                                        0       ; serial      #更新序列號,10位以內數字,用於主從同步,主服務器這個數值要大於從服務器否則無法同步
                                        1D      ; refresh  #刷新時間
                                        1H      ; retry     #重試刷新時間間隔
                                        1W      ; expire   #失效時間,超過該時間則放棄
                                        3H )    ; minimum   #無效解析記錄的生存週期
        NS      ceshi.com.
        A       192.168.10.10
100 IN PTR   www.ceshi.com.
200 IN PTR   mail.ceshi.com.
# 20是192.168.10.10的意思
# PTR反向指針 功能:反向解析


systemctl restart named   //rndc reload也可以重載配置文件


host 192.168.10.10
// 將會反向解析出域名www.ceshi.com