RHCE_DNS

DNS:

域名系統DNS(Domain Name System)是因特網使用的命名系統,用來把便於人們使用的機器名字轉換成爲IP地址。域名系統其實就是名字系統。爲什麼不叫“名字”而叫“域名”呢?這是因爲在這種因特網的命名系統中使用了許多的“域(domain)”,因此就出現了“域名”這個名詞。“域名系統”明確地指明這種系統是應用在因特網中。

1、因特網的域名結構
由於因特網的用戶數量較多,所以因特網在命名時採用的是層次樹狀結構的命名方法。任何一個連接在因特網上的主機或路由器,都有一個唯一的層次結構的名字,即域名(domain name),“域”(domain)是名字空間中一個可被管理的劃分。
域名只是邏輯概念,並不代表計算機所在的物理地點。分爲三大類:
(1)國家頂級域名:採用ISO3166的規定。如:cn代表中國,us代表美國,uk代表英國,等等。國家域名又常記爲ccTLD(cc表示國家代碼contry-code)。
(2)通用頂級域名:最常見的通用頂級域名有7個,即:com(公司企業),net(網絡服務機構),org(非營利組織),int(國際組織),gov(美國的政府部門),mil(美國的軍事部門)。
(3)基礎結構域名(infrastructure domain):這種頂級域名只有一個,即arpa,用於反向域名解析,因此稱爲反向域名。

現如今全球一共投放13個根服務器
服務器主要用來管理互聯網的主目錄,全世界只有13臺。1個爲主根服務器,放置在美國。其餘12個均爲輔根服務器,其中9個放置在美國,歐洲2個,位於英國和瑞典,亞洲1個,位於日本。所有根服務器均由美國政府授權的互聯網域名與號碼分配機構ICANN統一管理,負責全球互聯網域名根服務器、域名體系和IP地址等的管理。 這13臺根服務器可以指揮Firefox或互聯網 Explorer這樣的Web瀏覽器和電子郵件程序控制互聯網通信。換句話說——攻擊整個因特網最有力、最直接,也是最致命的方法恐怕就是攻擊根域名服務器了。
由於根服務器中有經美國政府批准的260個左右的互聯網後綴(如.com、.net等)和一些國家的指定符(如法國的.fr、挪威的.no等),美國政府對其管理擁有很大發言權。
在與現有IPv4根服務器體系架構充分兼容基礎上,由下一代互聯網國家工程中心牽頭髮起的“雪人計劃”於2016年在美國、日本、印度、俄羅斯、德國、法國等全球16個國家完成25臺IPv6(互聯網協議第六版)根服務器架設,事實上形成了13臺原有根加25臺IPv6根的新格局,爲建立多邊、民主、透明的國際互聯網治理體系打下堅實基礎。

2 DNS域名解析的過程
客戶端發出的查詢都是遞歸查詢,DNS服務器向外發出的查詢一般都是迭代查詢
在這裏插入圖片描述
1.在瀏覽器中輸入www.qq .com 域名,操作系統會先檢查自己本地的hosts文件是否有這個網址映射關係,如果有,就先調用這個IP地址映射,完成域名解析。

2.如果hosts裏沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關係,如果有,直接返回,完成域名解析。

3.本地DNS解析器緩存都沒有相應的網址映射關係,首先會找TCP/IP參數中設置的首選DNS服務器,在此我們叫它本地DNS服務器,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。

4.如果要查詢的域名,不由本地DNS服務器區域解析,但該服務器已緩存了此網址映射關係,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。

5.如果本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS服務器收到請求後會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息後,將會聯繫負責.com域的這臺服務器。這臺負責.com域的服務器收到請求後,如果自己無法解析,它就會找一個管理qq.com的DNS服務器地址給本地DNS服務器。當本地DNS服務器收到這個地址後,就會找qq.com域服務器,重複上面的動作,進行查詢,直至找到www . qq .com主機。

6.如果用的是轉發模式,本地DNS服務器就會把請求轉發至上一級DNS服務器,由上一級服務器進8行解析,上一級服務器如果不能解析,或找根DNS或把請求轉至上上級,以此循環。找到最後把結果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。

DNS協議的一種開源實現–bind
提供dns服務的套件叫bind但執行服務名稱的是named
我們說DNS是一種協議,而對於每一種協議的實現都需要程序員開發出遵循這種協議規範的軟件程序來實現,這裏要介紹的BIND就是DNS協議的一種開源實現。據統計,使用bind作爲DNS服務器軟件的DNS服務器大約佔所有DNS服務器的九成。BIND全稱爲Berkeley Internet Name Domain,因爲當今互聯網上的通信幾乎都必須藉助於DNS服務器來解析主機名,得到通信對方的IP地址,而在DNS服務器上最常用的軟件就是bind,所以,bind這款軟件幾乎可以說是當今互聯網上常用的軟件了。目前bind由ISC.org(Internet Systems Consortium,互聯網系統協會)負責開發與維護。

yum install bind -y
rpm -ql bind  查看
 bind的相關配置文件
/etc/named.conf  主配置文件
/etc/rndc.conf:        相關配置文件
區域數據文件,需要手動創建
/var/named/zidingyi.zone
配置檢查腳本工具
/usr/sbin/named-checkconf
區域配置檢查工具
/usr/sbin/named-checkzone

#全球十三個根服務器的相關信息;
/var/named/named.ca 區域文件dns數據庫
解析庫文件:存放於/var/named/目錄下,一般名字爲ZONE_NAME.zone
要點:
(1)一臺DNS服務器可同時爲多個區域提供解析。dns
(2)DNS服務器必須要有根區域解析庫文件:named.ca.
(3)DNS服務器還應該有兩個區域解析庫文件:localhost和127.0.0.1的正反向解析庫,這兩個文件分別如下:
①正向解析庫文件:/var/named/named.localhost
②反向解析庫文件:/var/named/named.loopback
rndc的全稱是Remote Name Domain Controller,它可以幫助用戶更方便地管理DNS服務器,包括可以檢查DNS服務器的狀態與統計信息、重載配置文件及zone或單獨重載某個區域而不需要重新啓動整個DNS服務,還有查看已存在DNS緩存當中的資料等。

配置文件詳解:
dns的主配置文件,作爲dns的設定檔,將我自己的設定檔案列出來然後逐部分進行解釋。
注意格式:"//" “/* */” ";"結尾
該文件屬主root,named用戶組
###################################3

#全局選項
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";分配統計目錄
    allow-query     { localhost; };   #只允許本地主機進行查詢
    recursion yes;       #允許遞歸
#allow-recursion { 192.168.0.0/16; }      ;指定可以遞歸的範圍

dnssec功能會對解析結果進行驗證,是否爲權威解答,不是就會報錯,雖然不影響使用,但是看着不爽

logging { //指定日誌記錄分類和他們的目標位置
};
zone{  定義區域,一個zone定義一個區域
type hint;
};

查看named.localhost文件:

[root@www ~]# cat /var/named/named.localhost 
$TTL 1D
@   IN SOA  @ rname.invalid. (
        	        0   ; serial
         	       1D  ; refresh
       	         1H  ; retry
       	         1W  ; expire
       	         3H )   ; minimum
     NS  @
 @ A   127.0.0.1    //關鍵就是這一條記錄。

查看named.loopback文件:

[root@www ~]# cat /var/named/named.loopback 
$TTL 1D
@   IN SOA @ rname.invalid. (
       	      	   0   ; serial
          	      1D  ; refresh
             	  1H  ; retry
              	  1W  ; expire
          	      3H )   ; minimum
  NS  @
 	  PTR localhost.    //關鍵就是這一條記錄。

DNS. Server 本地 dns

1.yum install bind 
2.vim /etc/named.conf
options {
    listen-on port 53 { 10.211.55.8; };
    directory       "/var/named";
};

zone "openlab.com" IN {
    type master;
    file "named.openlab.com";
};
3.Vim /var/named/named.openlab.com
$TTL 1D
@        IN      SOA     @    admin.admin.com. (
                            2019122101
                            1D
                            3M
                            3H
                            1H )
   	        IN      NS      dns.openlab.com.   
dns         IN      A       10.211.55.8      
www         IN      A       10.211.55.8
123         IN      A       10.211.55.8
ftp         IN      A       10.211.55.10

5.測試更改客戶端主機匹配的dns服務器

Vim /etc/resolv.conf
#Generated by 
search localdomain NetworkManager
nameserver 192.168.0.144
測試方式1 : ping www.openlab.com
              2:nslookup www.openlab.com
              3:dig -t A www.openlab.com

案例一:正向解析
主配置文件 /etc/named.conf
在這裏插入圖片描述
TTL(time to live)生存時間dns記錄在dns服務器上的緩存時長。
@域名 IN INTERNET輸入標準 起始授權記錄 服務器所對應的主域名服務器 管理員郵件以.代替常見的類型的@
如何查看是否解析成功:
Dig -t
#查詢NS記錄

dig -t NS baidu.com
dig +trace -t A www.linux7.com
dig -t A @SERVERDNS www.linux7.com

在這裏插入圖片描述
#使用nslookup,windows操作系統也可以使用
nslookup;交互式
Nslookup -type=A www.baidu.com
[root@localhost ~]# nslookup -type=A www.baidu.com
在這裏插入圖片描述
案例二: 反向解析
在這裏插入圖片描述
在這裏插入圖片描述
測試:
重啓服務正常
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
區域傳送
將一個區域文件複製到多個服務器上的過程叫做區域傳送。將主服務器上的信息複製到輔助服務器上來實現。
兩種區文件複製方式:
完全區域傳送:axfr,all transfer,全部區域文件複製,複製整個區域文件
增量區域傳送:ixfr,incremental transfer,僅複製區域裏變化的文件

#定義全局,在options選項內定義
allow-transfer { 192.168.75.130; };

IXFR: 增量區域傳送
查詢上次序列號改變後的信息
dig -t ixfr=1 baidu.com @192.168.75.129

案例三:完全區域傳送
在服務器端的主配置文件定義完全區域傳送 (主服務)
在這裏插入圖片描述
在另一臺虛擬機作爲從服務器安裝bind軟件包:
配置主配置文件/etc/named.conf
在這裏插入圖片描述

#ll /var/named/slaves
[root@localhost slaves]# ll
-rw-r--r--. 1 named named 274 1月  16 22:30 named.192.168.221
-rw-r--r--. 1 named named 336 1月  16 22:30 named.linux7.com

重啓服務會動態同步主服務其中的區域數據文件。

案例四:dns從服務的搭建
完全區域傳輸
增量區域傳送

在區域文件添加資源記錄,修改序列號,ns標記從服務是誰
Systemctl restart named

tail -f /var/log/messages
Systemctl restart named
1.修改主服務器的區域配置文件/var/named/named.baidu.com
在這裏插入圖片描述
2.重啓主&從服務器的服務

[root@localhost ~]# systemctl restart named

3.查看結果
通過tail -f /var/log/message來查看從服務器的日誌,注意傳送過程

[root@localhost ~]# tail -f /var/log/messages
Jan 23 16:29:50 localhost named[73533]: reloading configuration succeeded
Jan 23 16:29:50 localhost named[73533]: reloading zones succeeded
Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: refresh: failure 			trying master 192.168.18.132#53 (source 0.0.0.0#0): operation canceled
Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: loaded serial 2018012313
Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: expired
Jan 23 16:29:50 localhost named[73533]: all zones loaded
Jan 23 16:29:50 localhost named[73533]: running
Jan 23 16:29:50 localhost systemd: Reloaded Berkeley Internet Name Domain (DNS).
Jan 23 16:30:01 localhost systemd: Started Session 48 of user root.
Jan 23 16:30:01 localhost systemd: Starting Session 48 of user root.

案例五:批量解析
批量解析(主服務器:vim /var/named/named.baidu.com)
$GENERATE A-M $.linux7.com. IN A 192.168.221.100
在從服務器上: ping 1.baidu.com
反向格式
$GENERATE 1-10 $ IN PTR $.linux7.com.

配置DNS轉發服務器
轉發Server

#vim /etc/named.conf
options {
    listen-on port 53 { 10.211.55.8; };
    forwarders  { 10.211.55.11; };
    forward only;
};

主dns服務

#vim /etc/named.conf
options {
    listen-on port 53 { 10.211.55.11; };
    directory       "/var/named";
};
zone "baidu.com" IN     {
    type master;
    file "named.baidu.com";
};
[root@client ~]# vim /var/named/named.baidu.com 
$TTL 1D
@       IN      SOA     @ admin.admin.com. (
                                      0
                                      1D
                                      1D
                                      1D
                                      1D )
            IN        NS      dns.baidu.com.
dns         IN        A       10.211.55.11
haha        IN        A       10.211.55.11
xixi        IN        A       10.211.55.11

客戶機

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