Dns的概念
dns查詢通常用udp 53端口
主備DNS之間同步用tcp 53端口
1.什麼是DNS
DNS:域名解析 Domain Name Service(域名服務器)
(主機名) = FQDN: Full Qualified Domain Name(完全限定域名)
magedu.com .com 都是域名,在.com下包含了magedu.com這個域,.com下同樣有很多域IBM.com 、Goolge.com 、……同樣在magedu.com這個域名下包含了許多主機,比如:www、ftp、mail等,正式這些主機揉合起來的一個範圍就叫一個域。
DNS的作用:名稱解析 Name reaolving 也叫名稱轉換(背後有查詢的過程,依賴的是數據庫)
就是將FQDN---->IP 的過程(但是這個轉換的過程是雙向的)
例如:
172.25.254.1 www.magedu.com
172.25.254.2 mail.magedu.com
2.dns的起源:(即就是爲什麼會出現dns)
在ip很少的時候人們訪問服務器或者另一臺主機的時候是通過在url輸入ip地址的形式來實現,然而由於ip地址在不斷的增多爲了便於人們的記憶,因爲我們人類對一些比較有意義的文字記憶(如www.baidul.com)比記憶那些毫無頭緒的號碼(如209.185.243.135)往往容易得多。假如您的電話有名字記憶功能您只需知道對方的名字就可以撥號給友人了我們可以說這電話也具備如DNS的功能了
Dns的功能就是爲我們在文字和ip之間擔當了翻譯而免除了強記號碼的痛苦。在早期的IP網路世界裏面每臺電腦都只用IP地址來表示不久人們就發現這樣很難記憶於是一些unix的使用者就建立一個hosts對應表將IP和主機名字對應起來這樣用戶只需輸入電腦名字就可以代替IP來進行溝通了。不過這個HOSTS檔是要由管理者手工維護的最大的問題是無法適用於大型網路而且更新也是件非常頭痛的事情。這就是DNS大派用場的時候了。
3.nsswitch:
要完成名稱解析的機制有很多,因此爲了有一個統一的的框架就出現了nsswitch,nsswitch就是實現爲多種需要實現名稱解析的機制提供名稱解析的平臺,它只是提供平臺,並不負責實際上的名稱解析。實際負責解析的文件是
/etc/hosts和/etc/nsswitch.conf
nsswitch:
hosts : files dns 在/etc/nsswitch.conf 裏有這一行
files: 指的就是/etc/hosts這個文件
dns :指的就是dns服務,也就是查詢/etc/resolv.conf這個文件
4.根域的介紹
就是所謂的“.”,其實我們的網址www.baidu.com在配置當中應該是www.baidu.com.(最後有一點),一般我們在瀏覽器裏輸入時會省略後面的點,而這也已經成爲了習慣。
根域服務器我們知道有13臺,但是這是錯誤的觀點。
根域服務器只是具有13個IP地址,但機器數量卻不是13臺,因爲這些IP地址藉助了任播的技術,所以我們可以在全球設立這些IP的鏡像站點,你訪問到的這個IP並不是唯一的那臺主機。
具體的鏡像分佈可以參考維基百科
地址:
這些主機的內容都是一樣的
全球13組根域名伺服器以英文字母A到M依序命名,網域名稱格式為「字母.root-servers.net」。其中有11個是以任播技術在全球多個地點設立鏡像站。
這十三臺根域名服務器分佈在:美國9臺,日本1臺,荷蘭1臺,英國1臺,瑞典1臺
5.域的劃分
根域下來就是頂級域或者叫一級域,
有兩種劃分方式,一種互聯網剛興起時的按照行業性質劃分的com.,net.等,一種是按國家劃分的如cn.,jp.,等。
每個域都會有域名服務器,也叫權威域名服務器。
Baidu.com就是一個頂級域名,而www.baidu.com卻不是頂級域名,他是在baidu.com 這個域裏的一叫做www的主機。
一級域之後還有二級域,三級域,只要我買了一個頂級域,並且我搭建了自己BIND服務器(或者其他軟件搭建的)註冊到互聯網中,那麼我就可以隨意在前面多加幾個域了(當然長度是有限制的)。
比如a.www.baidu.com,在這個網址中,www.baidu.com變成了一個二級域而不是一臺主機,主機名是a。
6.域名服務器
能提供域名解析的服務器,上面的記錄類型可以是A(address)記錄,NS記錄(name server),MX(mail),CNAME等。
(詳解參見博客:域名解析中A記錄、CNAME、MX記錄、NS記錄的區別和聯繫)
A記錄是什麼意思呢,就是記錄一個IP地址和一個主機名字,比如我這個域名服務器所在的域test.baidu.com,我們知道這是一個二級的域名,然後我在裏面有一條A記錄,記錄了主機爲a的IP,查到了就返回給你了。
如果我現在要想baidu.com這個域名服務器查詢a.test.baidu.com,那麼這個頂級域名服務器就會發現你請求的這個網址在test.baidu.com這個域中,我這裏記錄了這個二級域的域名服務器test.baidu.com的NS的IP。我返回給你這個地址你再去查主機爲a的主機把。
這些域內的域名服務器都稱爲權威服務器,直接提供DNS查詢服務。(這些服務器可不會做遞歸哦)
7.DNS查詢解析的方式
查詢有兩種方式:
.遞歸:查詢者發送一次請求
迭代:查詢者發送多次請求
解析有兩種方式:
正向:FQDN----》IP
反向:IP-------》FQDN
互聯網的查詢是兩段式:從客戶端查起的時候是遞歸,從DNS服務器查詢的時候是迭代的。
DNS分佈式數據庫:
上級只知道其直接下級的位置
下級默認情況下只知道根的位置(若想讓下級知道上級必須手動配置)
DNS服務器:
接受本地客戶端請求(遞歸的)
外部客戶端請求:(也就是在尋找我們當前服務器所在域內的主機的IP)即就是請求權威答案。
8.資源記錄:
資源記錄:
每個區域數據庫文件都是由資源記錄構成的。主要有:SOA記錄、NS記錄、A記錄、CNAME記錄、MX記錄和PTR記錄。
標準的資源記錄具有其基本格式:
[name][ttl]INtyperdata
name:名稱字段,此字段是資源記錄引用的域對象名,可以是一臺單獨的主機也可以是整個域。字段值:"."是根域,@是默認域,即當前域,
ttl:生存時間字段,它以秒爲單位定義該資源記錄中的信息存放在DNS緩存中的時間長度。通常此字段值爲空,表示採用SOA記錄中的最小TTL值(即1小時)。
IN:此字段用於將當前湖泊記錄標識爲一個INTERNET的DNS資源記錄。
TYPE:類型字段,用於標識當前資源記錄的類型。
資源記錄類型:
A (host),即是A記錄,也稱爲主機記錄,是DNS名稱到IP地址的映射,用於正向解析。
CNAME:CNAME記錄,也是別名記錄,用於定義A記錄的別名。
MX (mail exchange): 郵件交換器記錄,用於告知郵件服務器進程將郵件發送到指定的另一臺郵件服務器。(該服務器知道如何將郵件傳送到最終目的地)。
NS :NS記錄,用於標識區域的DNS服務器,即是說負責此DNS區域的權威名稱服務器,用哪一臺DNS服務器來解析該區域。一個區域有可能有多條ns記錄,例如zz.com有可能有一個主服務器和多個輔助服務器。
PTR:是IP地址到DNS名稱的映射,用於反向解析。
SOA:用於一個區域的開始,SOA記錄後的所有信息均是用於控制這個區域的,每個區域數據庫文件都必須包穀一個SOA記錄,並且必須是其中的第一個資源記錄,用以標識DNS服務器管理的起始位置,SOA說明能解析這個區域的dns服務器中哪個是主服務器。
radata: 數據字段用於指定與當前資源記錄有關的數據,數據字段的內容取決於類型字段。
資源記錄類型
起始授權結構(SOA) 指出當前區域內誰是 主DNS服務器
正向解析 將域名FQND映射到IP
別名(CNAME)將A記錄指向的域名 指向 另外一個域名
郵件交換器(MX)指出當前區域內 SMTP郵件服務器IP
名稱服務器(NS)指出當前區域內有幾個DNS服務器在提供服務
反向解析(PRT) 將IP解析爲域名FQND
9.詳解DNS的資源記錄
1. A記錄 --將域名FQND映射到IP 正向解析
在這裏介紹2個特殊的域名:
@ 表示當前域,即子域爲空
* 表示泛域名與泛解析
泛域名是指在一個域名根下,以 *.Domain.com 的形式表示這個域名根所有未建立的子域名。 泛解析是把*.Domain.com 的A 記錄解析到某個IP 地址上,然後別人通過任意的前綴.domain.com訪問都能訪問到你解析的站點上
例:在域名提供商只那裏只解析了 www.lison.com 和 lison.com 這兩個域名的A記錄, 那麼 ftp.lison.com mail.lison.com bbs.lison.com 等域名記錄是不存在的, 但如果建立泛域名記錄 *.lison.com 後, *.lison.com 就涵蓋了 ftp.lison.com mail.lison.com bbs.lison.com 等所有不存在的子域名記錄。
2. 別名(CNAME)-- 將域名指向另一個域名
用途:設定域名或者子域名指向,保證域名指向對應的主機重要設置;其只能填寫域名。添加CNAME記錄時,別名爲三級或者多級域名,目標主機爲別名。
例如: www.lison.com指向ftp.lison.com
3. 反向解析(PRT) -- 將A記錄指向(另外的域名)
PTR是pointer 的簡寫。 "PTR"就是"反向DNS",domain name pointer,可以粗略的理解爲DNS反向
Domain Name Pointer. 是一個指針記錄,用於將一個IP地址映射到對應的主機名,也可以看成是A記錄的反向,通過IP訪問域名,原來是通過域名訪問IP)
MX記錄詳解:
MX的作用、檢查方法、郵件域名的解析,ISP提供的MX驗證等。。。所有的關於MX的都在這裏了哈。當然在Exchange的配置中會再次來詳細分析的。
檢查MX記錄是否存在的方法
DNS查詢的一個非常有用的工具是nslookup,可以使用它來查詢DNS中的各種數據。Cmd運行nslookup進入一個交互模式,在這裏能查詢各種類型的DNS數據。
C:\>nslookup
DefaultServer:ns.sc.cninfo.net
Address:61.139.2.69
>settype=mx//此句與下句功能相同
>setq=mx
>126.com
Server:ns.sc.cninfo.net
Address:61.139.2.69
Non-authoritative answer:
126.comMXpreference=10,mailexchanger=mxnew-b.126.com
126.comMXpreference=50,mailexchanger=mxbak.126.com
126.comMXpreference=10,mailexchanger=mxnew-a.126.com
mxbak.126.cominternetaddress=220.181.15.194
mxbak.126.cominternetaddress=220.181.15.195
mxnew-a.126.cominternetaddress=220.181.15.139
如果所要查的某域名的MX記錄不存在,則出現與以下類似的提示:
C:\>nslookup
>settype=mx
>demo.lison.com
DefaultServer:[10.11.12.16]
Address:10.11.12.16
Non-authoritativeanswer:
***Can'tfinddemo.magicwinmail.com:Noanswer
10.DNS域名服務器的類型有哪些
因特網上的域名服務器用來存儲域名的分佈式數據庫,併爲DNS客戶提供域名解析。它們也是按照域名層次來安排的,每一個域名服務器都只對域名體系中的一部分進行管轄。根據它們的用途,域名服務器有以下幾種不同類型。
(1)主域名服務器:負責維護這個區域的所有域名信息,是特定的所有信息的權威信息源。也就是說,主域名服務器內所存儲的是該區域的正本數據,系統管理員可以對它進行修改。
(2)輔助域名服務器:當主域名服務器出現故障、關閉或負載過重時,輔助域名服務器作爲備份服務提供域名解析服務。輔助域名服務器中的區域文件內的數據是從另外一臺域名服務器複製過來的,並不是直接輸入的,也就是說這個區域文件只是一份副本,這裏的數據是無法修改的。
(3)緩存域名服務器:可運行域名服務器軟件但沒有域名數據庫。它從某個遠程服務器取得每次域名服務器查詢的回答,一旦獲取一個答案,就將它放在高速緩存中,以後查詢相同的信息時就用它予以回答。緩存域名服務器不是權威性服務器,因爲提供的所有信息都是間接信息。
(4)轉發域名服務器:負責所有非本地域名的本地查詢。轉發域名服務器接到查詢請求時,在其緩存中查找,如找不到就把請求依次轉發到指定的域名服務器,直到查詢到結果爲止,否則返回無法映射的結果。