DNS

DNS服務機——主機名控制者

由於人們對文字的記憶比數字高,純粹使用TCP/IP這些數字是很難記憶的 爲了適應人們的習慣 DNS服務幫我們將主機名解析成ip 這樣只要記住主機名就可以上網(使用internet了)

   什麼是DNSDomain Name SystemDNS

主機名自動解析爲ip

最早期 利用/etc/hosts文件將主機名和IP做一個對應 如此我們就可以通過主機名獲主機的ip了 但該文件的缺陷是主機名與ip的對應無法在所有計算機內更新

分佈式,階層式主機名管理架構 DNS架構

DNS是一種因特網的通信協議名稱,bind是提供DNS服務的軟件,軟件提供的程序名爲named

FQDNfully qualified domain name)完整主機名 www.westos.org

Domain 區域(即在某個地區)

www.nage.com 是主機名 nage.com .com 這是域名 域是一個範圍

DNS是分階層的,例如註定層的.tw 接着.edu.tw  .ksu.edu.tw  www.ksu.edu.tw 分別代表不同的主機

通過DNS查詢主機名ip的流程

DNS是以類是樹形結構的形態來進行主機名的管理的 所以每一臺DNS服務器都僅管理自己的下一層主機名的轉譯而以,至於下層的下層,就交給下層的dns主機來管理 管理如下:

1 收到用戶的查詢要求 先查看自己本身有沒有記錄,若無則向.root)查詢

2 向最頂層的.root)查詢 用戶向.(root)詢問www.ksu.edu.tw在哪裏但是由於.(root)只記錄了.tw的信息,此時.(root)會告知:我不知道者臺主機的ip 不過你可以向.tw去詢問,我給你說.twip

3 向第二層的.tw服務器查詢 用戶又到.tw那裏查詢www.ksu.edu.tw的信息 可是.tw說我不知道 我給你說.edu.twip 你去問他

4向第三層.edu.tw服務器查詢 客戶又到.edu.tw那裏查詢 .edu.tw告訴他人你去.ksu.edu.tw那裏查詢 我給你他的ip

5 向第四層.ksu.edu.tw服務器查詢 客戶端找到.ksu.edu.tw這臺服務器,.ksu.edu.tw這臺服務器說沒錯www.ksu.edu.tw這臺主機名使我管理的我給你說他的ip是什麼 這是就找到了www.ksu.edu.tw這臺主機的Ip

6記錄緩存並回報用戶 查到正確的ip之後 到再次有人要查詢www.ksu.edu.tw的時候 就不用再跑一次這樣的流程了 因爲這臺只記得dns會記錄一份查詢的結果在自己的緩存當中 以方便響應下一次的相同要求  當然那個cache當中的數據是有時間性的 當過了nds設置記憶的時間 通常是24小時 該記錄就會被釋放

這個分層查詢的過程就是這樣 這樣分層查詢的好處是:1 主機名修改僅需通知自己的dns即可 不需通知其他人 2 DNS服務器對主機名解析結果的緩存時間

遞歸: A =B 《  = C A去找B B再去找A 稱爲遞歸

迭代:A  =B###B把消息給A說了之後 A再去找C 這種稱爲迭代

 A  =C

迭代:請求者要發出多次請求才會得到答案  cdn就是迭代的方法

3 可持續向下授權(子域名授權)

例題 通過dig 實現.tw-.edu.tw-.ksu.edu.tw-www.ksu.edu.tw查詢 並分析每個查詢階段的DNS服務器有幾臺

解答 dig +trace www.ksu.edu.tw   ##trace跟蹤 追蹤的意思

NDS使用的port number UDP TCP 53這兩個port 通常DNS是以UDP這個較快速的數據傳輸協議來查詢的 但是如果查詢不到時 就會再次以TCP這個協議來查詢。所以DNSdaemon會同時啓動UDP TCP這兩個協議的53端口 記得防火牆也要同時放行UDP TCP53這兩個端口

       DNS數據庫的記錄 正解 反解 zone的意義

正解:從主機名查詢到ip的流程

反解:從ip反解析到主機名的流程

不管是正解還是反解 每個與的記錄就是一個區域(zone

誰可以申請正解的DNS服務器架設呢 答案是都可以 只要該域沒人使用 那誰先強到誰就可以使用  正解域通常需要以下幾種標誌:

正解的設置權以及DNS正解Zone記錄的標誌

SOA 就是開始驗證(start of authority)的縮寫

NS 就是名稱服務器(name server)的縮寫 記錄DNS服務器

A 就是地址(address)的縮寫 記錄ip

反解的設置權以及DNS反解zone記錄的標誌

PTR就是指向(PoinTeR)的縮寫 後面記錄的數據就是反解到主機名

一個正解或一個反解就稱爲一個zone

        Master /Slave架構

一般一臺Master 兩臺Slave

不論是Master還是Slave服務器 都必須同時提供DNS服務纔好 因爲在DNS系統當中 域名的查詢是先進先出的狀態 每一臺DNS的數據庫內容需要完全一致 否則就會趙成客戶端找到的ip是錯誤的

Master/Slave數據的同步化過程  無論是Master/slave數據庫都會有一個代表數據庫新舊的序號這個序號值的大小會影響是否進行更新操作 更新的方式有兩種:

1 Master主動告知 例如master自動修改了數據庫,數據庫序號變大,重新啓動DNS服務後 master會主動告知slave來更新數據庫 這樣就能夠實現數據庫的同步

2 slave 主動提出要求 slave 會定時向master查看數據庫序號大小 當發現master數據庫序號比自己大時 slave就會主動更新自己的數據庫

Client端的設置

/etc/resolv.conf 這個就是ISPDNS服務器IP記錄處

/etc/nsswitch.conf 這個文件則是用來決定先要使用/etc/hosts還是 /etc/resolv.conf的設置

DNSip可以設置多個 因爲當第一臺DNS宕機時 我們客戶端可以使用第二臺來查詢  不過在網絡正常情況下 永遠都只有第一臺DNS被用來查詢 這有點像備份

例題 我的主機使用DHCP獲取ip 但當我修改過/etc/resolv.conf之後 隔不多久這個文件又變成原來的樣子 這是什麼原因 要這麼處理

因爲使用DHCP系統會主動使用DHCP服務器傳來的數據進行系統配置文件的修訂 因此你要告訴系統不要用DHCP傳來的數值修改服務器配置文件 在/etc/sysconfig/network-scripts/ifcfg-eth0等相關文件裏面加上一行 PEERDNS=no 然後重新啓動網絡即可

DNS的正反解查詢命令 host nslookup dig

dig www.westos.org 正解

dig -x www.westos.org 反解  反解時ip172.25.254.100 則會變成100.254.25.172.in-addr.arpa.這個模樣

查詢域管理者的相關信息whois whois是有jwhois這個軟件提供的 如果找不到whois時 就可以yum install -y jwhois

Whois這個命令可以查詢到當初註冊某個domain的用戶的相關信息

DNS服務器的軟件 種類與caching only DNS服務器設置

搭建dns所需要的軟件 rpm -qa | grep ‘^bind’

Bind-libs-9.7.0-.... bind和相關命令使用的函數庫

Bind-utils-9.7.0-...這個是客戶端查找主機名的相關命令

Bind-9.7.0-.....bind主程序所需軟件

Bind-chroot-9.7.0...bind主程序關在家裏面

Bind-chroot chroot代表change to root(根目錄) centos6.x默認將BIND鎖在/var/named/chroot目錄中

/etc/named.conf主配置文件 這個文件可以規範zone file的完整文件名

單純的cache-onlyDNS服務器與forwarding功能

沒有自己公開的DNS數據庫的服務器爲cache-only(唯高速緩存)DNS server 即這個DNSserver 值有緩存搜索結果的功能 它本身沒有主機名與ip正反解的配置文件 完全是由對外的查詢來提供他的數據庫

 DNS服務的詳細配置

1 DNS服務器的架設需要上層DNS的授權纔可以成爲合法的DNS服務器

##如果我們尚未向上層ISP註冊合法的域名 所以我們就沒有權力架設合法的DNS服務器了

2 配置文件位置 可參考/etc/sysconfig/named 目前BAID程序以運行chroot

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

4 每個正反解區域都需要一個數據庫文件,而文件名則是在/etc/named.conf裏設置

5 DNS查詢時 若本身沒有數據庫文件 則前往root(.) forwarders服務器查詢

6 named是否啓動成功 務必要查詢/var/log/messages內的信息

正解文件記錄的數據(Resource Record,RR

A後接ip   NS後接主機名   

A查詢ip的記錄

NS 查詢管理區域名(zone)的服務器主機名

SOA 查詢管理域名的服務器管理信息

CNAME 設置謀主機名的別名(alias)

MX 查詢某域名的郵件服務器主機名

反解文件記錄的RR數據

dig -x www.westos.org

解析後的ip反過來寫 在結尾後加上.in-addr-arpa.的結尾字樣即可

PTR就是反解

DNS啓動與查看防火牆

/etc/init.d/named start

Chkconfig named on

Tail -n 30 /var/log/messages | grep named

日誌錯誤會有語法錯誤和邏輯錯誤兩種

測試與數據庫更新

通過client端的查詢功能 目的是檢測數據庫有無錯誤

協同工作的DNSslave DNA及子域授權設定

Slave DNS的特點(備用DNS 一般服務端最少要有兩臺DNS才行)

1 爲了不間斷的提供DNS服務 你的領域至少要有兩臺DNS作爲查詢的功能

2 這幾臺DNS服務器應該要分散在兩個以上的不同ip網段纔好

3 爲管理方便 通常除了一臺做masterDNS 其他都用來做slaveDNS的模式

4 slave DNS本身沒有數據庫 他的數據庫是由masterDNS所提供

5 master/slave DNS要有可以相互傳輸的zone file信息才行 這部分需要在/etc/named.conf的設置中加以輔助

Master DNS權限的開放

1 修訂named.conf 主要修改zone參數內的allow-transfer項目

Vim /etc/named.conf

Allow-transfer{172.25.254.90} ##在這裏添加slaveip

2 zone file 裏面添加NS標誌 要注意需要有A(正解)及PTR(反解)的設置

Vim /etc/named/named.westos.org ##master主機名自己創建的文件

Vim /etc/named/named.ip

在你的zone file文件中添加NS標誌 IN NS

再重啓即可 /etc/init.d/named restart

Slave DNS的設置及數據庫權限問題

由於slave DNS也是DNS服務器 所以也要安裝bind bind-chroot等軟件 接下來設置named.conf 由於master/slave的數據庫是一樣的 理論上named.conf就是大同小異的了 唯一的區別是zone type 類型的差異 以及聲明master在那裏就可以了 由於zone file 是從master取得的 通過named這個程序來主動建立起需要的zone file 以此這個zone file放置的目錄權限就很重要了

配置子域DNS服務器:子域授權課題

除了master/slave 需要協調DNS服務器共同提供服務外 DNS如果有上層 下層關係時該如何設置?做法如下:

1 上層DNS服務器:只需要添加zone file NSA即可

Vim /etc/named/named.westos.org

/etc/init.d/named restart

及上層DNS服務器只要在westos.org那個zone file內 增加指定NS並指向下層DNS的主機名和IPA)即可 而zone file的序號也要添加才行

2 下層DNS服務器:需要有完整的zone相關設置

修改named.conf 增加zone的參數 假設文件名爲named.niki.westos.org

Vim /etc/named.conf

/etc.init.d/named restart

即下層DNS服務器 申請的域名必須是上層DNS提供的名稱 並告知上層DNS管理員 我們這個zone 所需指定的DNS主機名與對應的ip即可 然後就開始設置自己的zone zone file相關數據

1 internet當中 任何一臺合法的主機都具有獨一無二的主機名 這個主機名包含了hostname+domain name 並稱爲 Fully Qualified Name(FQDN)

2 爲克服人類對ip不易記憶的困擾而有名稱解析器的產生 首先是/etc/hosts 而後則是DNS系統

3 目前Unix like的機器中 都是以BIND這個伯克萊大學開發的軟件來架設DNS服務器的

4 DNS是個協議的名稱 bind是個軟件 這個軟件提供的程序是named

5 DNS系統中 每一筆記錄我們就稱他爲RRResource Record

6 DNS系統中 正解是有主機名找ip 反解則是ip找主機名 zone則是一個或者是部分域的設置值

7 BIND9之後 默認的情況下named 已經做了chroot的動作

8 Slave主機自身並沒有自行設置zone file zone file是由master主機傳來的 因此master主機必須要針對slave主機開放allow-transfer的設置項目才行

9 整個DNS查找的流程當中 若找不到本身的數據 則會向root.)要求資料

10 正解的記錄(record)主要有SOA A MAX NS CNAME TXT HINFO

11 反解的記錄主要有 SOA PTR

12 DNS查詢的命令主要有host nslookup dig whois

在載入了named這個daemon之後 請務必前往/var/log/messages裏面察看是否成功開啓

 

 


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