一、簡述dns
DNS(domain name system)域名系統或者(domain named system)區域名稱服務,分為正向與反向域名解析,適用C/S,端口路53/udp,53/tcp,屬于應用層協議;
作用:人得記憶有限,如果沒有dns得記下多少IP地址;從網絡來說由于tcp/ip協議族是基于ip地址,所以需要一個翻譯器即DNS;可以1對多也可以多對1,那么正向解析即域名解析為ip地址,反向解析即ip地址解析為域名。有人說DNS就是一個本大得電話本,說的挺貼切。
正反向解析事兩個不同得名稱空間,是兩顆不同得解析樹;
正向:ip---》主機名
反向:主機名---》ip
當今得業界標準BIND(berkeley internet name domain)dns軟件
二、DNS域名
1)DNS是一個倒掛樹結構示意圖如下
2)按照功能命名得五個類別介紹
a.根域:DNS域名中使用時,規定由尾部據點(.)來指定名稱位于根域或更高級別得域層次結構,(.)
b.頂級域:TDL(TOP LEVEL DOMAIN)用來只是某個國家地區或組織使用得類型,例如(.com)
c.二級域:個人或組織在internet上使用得注冊名稱,例如iyong.com
d.子域:已經注冊二級域名派生得域名,就是網站名,例如www.iyong.com
e.主機名:通常情況下,DNS域名得最左側得標簽表示網絡上得特定計算機,如www,mail,zhidao
f.名稱服務器:域內負責解析本域內的名稱的主機
g.根服務器:13組服務器
3)dns和internet域
互聯網域名系統有名稱注冊機構負載維護分配有組織和國家/地區得頂級域在internet上進行管理。國際標準3166。
常見得DNS域名
com,商業公司
edu,教育機構
net,網絡公司
gov,非軍事政府機構
mil,軍事政府機構
cn,代表中國
三、DNS服務器類型
主DNS服務器
從DNS服務器 (可以是多個提供容錯)
緩存DNS服務器(轉發器)
主DNS服務器:管理和維護所負責解析的域內解析庫的服務器
從DNS服務器:從主服務器或從服務器“復制”(區域傳輸)解析庫副本
1)復制操作的方式
序列號serial:解析庫版本號,主服務器解析庫變化時,其序列遞增
刷新時間間隔refresh:從服務器從主服務器請求同步解析的時間間隔
重試時間間隔retry:從服務器請求同步失敗時,再次嘗試時間間隔
過期時長expire:從服務器始終聯系不到服務器時,多久后放棄從服務器角度,停止提供服務
否定答案的緩存時長;minimum
”通知“機制:主服務器解析庫發送變化時,會主動通知從服務
2)區域傳送
完全傳輸axfr:傳送整個解析庫
增量傳輸lxfr:傳遞解析庫變化的那部分內容
3)區域(zone)和域(domain)
Domain:FQDN
正向:FQDN->IP
反向:IP->FQDN
各需要一個解析庫來分別負責本地域名的的正向和反向解析庫
正向區域
反向區域
FQDN:fullqualified domain name 完全限定域名
如:www.iyong.com.
四、DNS查詢解析
我們在瀏覽器訪問www.iyong.com這個域名,dns怎么查詢到這臺主機那?
1、在瀏覽器中輸入www.iyong.com域名,操作系統會先檢查自己本地的hosts文件是否有這個網址映射關系,如果有,就先調用這個ip地址映射,完成域名解析。
2、如果hosts里沒有這個域名的映射,則會查找本地DNS解析器緩存,是否有這個網址映射關系,如果有,直接返回,完成域名解析。
3、如果hosts與本地DNS解析器緩存都沒有相應的網址映射關系,首先會找TCP/IP參數中設置的首選DNS服務器,在此我們叫它本地DNS服務器,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析記過給客戶端,完成域名解析,此解析具有權威性。
4、如果要查詢域名,不由本地DNS服務器區域解析,但該服務器已緩存了此網址映射關系,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。
5、如果本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS服務器收到請求后會判斷這個域名(.com)是誰來授權管理,并會返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息后,將會聯系負責.com域的這臺服務器。這臺負責.com域的服務器收到請求后,如果自己無法解析,它就會找一個管理.com域的下一級DNS服務器地址(iyong.com)給本地DNS服務器。當本地DNS服務器收到這個地址后,就會找iyong.com域服務器,重復上面的動作,進行查詢,直至找到www.iyong.com主機。
6、如果用的是轉發模式,此DNS服務器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,上一級服務器如果不能解析,或找根DNS或把請求轉至上上級,以此循環。不管是本地DNS服務器用是轉發,還是根提示,最后都是把結果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。
從上圖可以知道,客戶端到本地DNS服務器是屬于遞歸查詢,而DNS服務器之間的交互查詢就是迭代查詢
遞歸查詢與迭代查詢
a.遞歸,只發送一次請求,得到一次準確結果(消耗資源)
b.迭代,發送多次請求,得到參考結果
一次完整得查詢請求經過得流程
client-->hosts文件-->DNS service
local cache -->DNS server(recursion遞歸)-->server cache -->iteration(迭代)
解析答案類型
a.肯定答案
b.否定答案:請求的條目不存在等原因導致無法返回結果
c.權威答案:aa 表示是自身知道的結果,不是問來的
d.非權威答案
五、資源記錄(resoursr record,簡寫RR)
1、簡單介紹資源記錄
資源記錄事組成DNS各域記錄,這些記錄類型有:A,AAAA,PTR,SOA,NS,CNAME,Mx等
a.SOA 起始授權記錄,(start of authority),一個區域解析庫有且僅能有要給SOA記錄,而必須為解析庫的第一條記錄;
b.NS(nameserver)得縮寫,專用于表明當前區域的DNS服務器
c.A (address),后面記錄得對應ipv4地址;FQDN-->IP
d.AAAA 對應得ipv6地址;FQDN-->IPV6
e.PTR (pointTER)指針,后面記錄得數據就是反解到得主機名;IP-->FQDN
f.CNAME 別名,一個主機名可以有多個別名,但ip地址事一樣得;
g.MX 郵件服務器;
資源記錄定義的格式:
語法格式:
name[TTL] IN rr_type(資源記錄類型) value(可以是多個)
rr_type:替換為指定的資源記錄類型;
ttl可以省略從全局繼承 internet
注意:
1)TTL就是time to live,可以從全局繼承,默認秒為單位;
2)@可以用于應用當前區域得名字比如baidu.com;
3)同一個名字可以通過多條記錄定義多個不同得值,此時DNS服務器會以輪詢方式響應,可以分流做負載均衡;
4)同一個值也可能有多個不同得定義名字;通過多個不同得名字指向同一個值進行定義;僅表示通過多個名字可以找到同一個主機而已;
2、SOA:一個區域中有且只能有一個soa
name:當前區域的名字,例如“zhangxingeng.com.”;最后記得有各點
value:有多個部分組成
1)當前區域的主DNS服務器的FQDN,也可以適用但卻區域的名字;
2)當前區域管理員的郵箱地址;但地址中不能使用@服務,一般用.替換,zxg.iyong.com
3) 主從服務區域傳輸相關定義以及否定的答案的統一的TTL
1 [root@node5 ~]# cat /var/named/zhangxingeng.com.zone 2 $TTL 1D 3 @ IN SOA @ web1.zhangxingeng.com.admin.zhangxingeng.com ( 4 0 ; serial #序列號-最后不要超過10位數 5 1D ; refresh #刷新時間1天 6 1H ; retry #重試時間 7 1W ; expire #過期時間,一周 8 3H ) ; minimum #否定答案的ttl值,3個小時 9 NS web110 web1 A 192.168.216.199 11 dns1 A 192.168.216.198
3、NS記錄格式
name:當前區域的名字
value:當前區域的某個DNS服務器的名字,例如web1.zhangxingeng.com
注意:一個區域可以由有多個NS記錄
例如:
zhangxingeng.com. IN NS web1.zhangxingeng.com
zhangxingeng.com. IN NS web2.zhangxingeng.com
注意:
1)相鄰的兩個資源記錄的name相同時,后續的可省略
2)對NS記錄而言,任何一個ns記錄后面的服務器名字,都應該再后續有一個A記錄
4、MX記錄定義格式
name:當前區域的名字
value:當前區域的某郵件服務器(smtp服務器)的主機名;
一個區域內,MX記錄可有多個;但每個記錄的value之前以你更改有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高;
例如:
zhangxingeng.com. IN MX 10 mx1.zhangxingeng.com.
IN MX 20 mx2.zhangxingeng.com.
注意:
對MX記錄而言,任何一個MX記錄后面的服務器名字,都應該再后續有一個A記錄.
5、A記錄定義格式
name:某主機的FQDN,例如web1.zhangxingeng.com
value:主機名對應主機的ip地址;
例如
web1.zhangxingeng.com. IN A 192.168.216.199
web2.zhangxingeng.com. IN A 192.168.216.202
注意:
*.zhangxingeng.com. IN A 192.168.216.199
zhangxingeng.com. IN A 192.168.216.199
避免用戶寫作名稱時給錯誤答案,可以通過泛域名解析進行解析至特定地址;
6、PTR記錄定義格式
name:IP,有特定格式,把IP地址反過來寫,199.216.168.192;而有特定后綴:in-addr.arpa.,所以完整寫法為:199.216.168.192.in.addra.arpa.
value:FQDN
例如:
199.216.168.192.in.addra.arpa. IN PTR web1.zhangxingeng.com.
簡寫
199 IN PTR web1.zhangxingeng.com.
注意:網絡地址及后綴可省略;主機地址依然需要反這寫
7、CNAME記錄定義格式
name:別名的FQDN
value:正規名字的FQDN;
例如:
web1.zhangxingeng.com. IN CNAME www.zhangxingeng.com