1 域名
1 比如www.LinuxCast.net,實際上域名只是後面的一部份,但是我們一般都是整個叫為域名
2 對於域名來說,我們一般使用.來分割,嚴格的域名最後一位還是有一個.的,但是我們都直接省略
3 域名分為三個部分
主機名 該域中的某台主機,對於網頁服務器來說都是www,但是也有ftp,mail等等
域名 域名稱
類型 標識此域名的類型,比較常見的有com , net , org , edu , gov
2 DNS
1 每一個域名實際上代表的是一個ip地址,比如www.LinuxCast.net的ip為1.1.1.1(假設)
2 DNS(Domain Name System),服務有DNS來提供
3 比如我要訪問www.LinuxCast.net
第一步我們先去請求DNS服務器
第二步DNS返回當前域名的ip地址
第三步主機通過ip地址去訪問當前的網站
3 DNS客戶端
1 我們日常使用的支持網絡的計算機一般都是做為一個DNS客戶端使用,應用程序,服務,進程等等 通過操作系統底層的功能發起對dns服務器的查詢,對指定域名進行解析
2 Linux中一般使用系統底層提供的gethostbyname()來進行域名解析
3 解析基於以下幾種方式
文件(/etc/hosts . /etc/networks)
DNS
NIS
4 我們可以通過配置文件/etc/nsswhich,conf來控制查詢的順序,默認是先文件hosts , 第二是 DNS
4 DNS專用查詢命令
1 命令host可用於進行dns的查詢
host www.LinuxCast.net
2 dig命令也可以用來進行dns查詢,輸出較為詳細的信息
dig www.LinuxCast.net
3 命令host和dig都不會使用/etc/nsswhich.conf的配置,只會通過/etc/resolve.conf進行dns查詢
5 DNA查詢
1 DNS是一個樹狀結構,查詢的時候根據域名從右到左查詢,域名每一級由獨立的一個或多個服務器
2 比如我們要查詢www.LinuxCast.net(其實是www.LinuxCast.net.)這個域名
第一步我們先去查找根域名服務器,也就是. 那麼這個根域名服務器保存了比如com , net , org等 等的信息
第二步根據我們找到的net,我們去查net. , 也就是在頂級域名服務器,保存的是域名,比如 LinuxCast等等
第三步根據找到的LinuxCast.net.,我們去查這個域名下的主機名,通常這個服務器保存比如www , mail , ftp等主機
第四步找到www.LinuxCast.net
3 我們可以通過 dig +trace www.LinuxCast.net 來追蹤這個DNS的解析過程
6 DNS的查詢類型
1 遞歸查詢
比如我們要查詢www.LinuxCast.net
首先我們客戶端發送請求到本地的DNS服務器,然後本地DNS服務器去查詢根域名服務器.並返回給本 地域名服務器,本地域名服務器根據返回回來的結果進行查詢下一個..... 最後返回給客戶端
2 循環查詢
同樣還是查詢www.LinuxCast.nat
首先客戶端先通過本地域名服務器,然後本地域名服務器去查找根域名服務器. 然後根域名服務器去 找頂級域名服務器net,頂級域名服務器找LinuxCast.net,最後再把結果返回給客戶端
3 實際應用中是客戶端和本地服務器之間利用循環查詢,本地域名服務器和其他服務器之間利用遞歸 查詢
7 資源記錄
1 在DNS服務器上,DNS的信息通過一個叫做資源記錄(RR,Resource Record)的格式進行保存,RR 不僅能夠保存域名到ip地址的對應信息,還能夠保存很多其他的信息
2 資源記錄常用的屬性有
NAME ---- 名稱
CLASS ---- 類別(一般都市IN,代表internet)
TYPE ---- 類型(A代表的是ipv4,4A代表ipv6 等等)
RDATA ---- 數據
8 DNS服務器的類型
1 Primary DNS Server(Master)
一個域的服務器保存該域的zone配置文件,該域所有的配置,更改都在該服務器上面
2 Seconday DNS Server(Slave)
從服務器一般做為冗余負載使用,一個域的從服務器從該域的主服務器上抓取zone配置文件,從服 務器不進行信息修改,所有的修改與主服務器同步
3 Caching only Server
DNS緩存服務器不存在任何的zone文件,僅僅依靠緩存為客戶端提供服務,通常用於負載均衡以及加 速訪問
9 zone
在DNS服務器中,一般一個域通過一個zone文件保存該域的相關信息,zone文件的格式是標准化的, 一個典型的zone配置文件內容如下