DNS系列(一)認識DNS
認識DNS
開篇
在網際網路誕生之初,那個時候並沒有DNS。在那個時候如果需要訪問某臺伺服器的資料服務需要記住該伺服器的ip地址和服務埠號,利用相應的應用程式去開啟指定的服務。當時的設計人員想出了一個巧妙的方法來解決這個問題,在作業系統中編輯加入一個檔案,在裡面寫入域名和IP地址的對應關係,以簡化訪問服務的流程和不必要的人工記錄,這個檔案就叫做host表,目前全世界所有計算機都還在使用。
當網際網路走出實驗室,面向全球的時候。就出現了一個問題,如果每增加一臺伺服器,一個服務,就要向本地host表中新增一條記錄,當時網際網路發展迅速,如果以此下去,本地的host表很快就會佔滿所有的磁碟空間,為了解決這種問題,DNS誕生了。
什麼是DNS ?
DNS 是域名系統 (Domain Name System) 的縮寫,是因特網的一項核心服務,它作為可以將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。
DNS是基於現行的網際網路協議TCP/IP協議執行的,所用的埠為TCP/UDP的53號埠。在TCP/IP模型中,DNS處在應用層。
DNS的工作模式
DNS的工作模式為Client/Server 模式即客戶端/伺服器模式
通過客戶端向DNS伺服器傳送查詢請求,DNS伺服器給予答覆,並返回相應的結果。
DNS的結構
DNS的結構並不複雜,是比較常見的層級結構,具體結構如下:
如上圖所示,所有的DNS域都是從根域開始。這是一個比較簡單而且容易理解的層級結構。
關於上圖我解釋下,如果看不懂上圖,那麼請看我下面這段描述
1、DNS的根域負責全球Internet中的所有DNS域的管理,在DNS體系中,是至高無上的存在。全球現在執行著13臺根伺服器,分佈如下:
2、根域通過子域委派的方式,將.com.域、.net.域、.org.域等DNS域,這些域叫做頂級域。.com.域再委派給.example.com.域,這個域就叫做二級域。(大家都注意到我在所有的頂級域後面都加了一個“.”,這是因為早期的域名必須以英文句號“.”結尾,當用戶訪問 www.example.com 的HTTP服務時必須在址欄中輸入:http://www.example.com.,這樣DNS才能夠進行域名解析。如今DNS伺服器已經可以自動補上結尾的句號。下面的文章中將不帶.)
3、子域和父域:舉個例子來說.com域就是根域的子域,根域就是.com域的父域。
4、子域委派:子域委派就是將子域委派出去,交由別的伺服器或運營商代理。舉個例子A公司生成 了產品,交給B 公司代理,那麼產品就是由A公司委派給B 公司代理經營的。也就是說子域委派是發生在子域不與父域在同一臺或者同一組機器上的時候。如果.com域和根域同處在一臺計算機或者一組計算機上的時候,那麼.com域就沒有被委派出去。
5、域名的結構
域名的結構如下
頂級域名:不用多說上面已經介紹過
二級域名:為頂級域的子域
三級域名:為二級域的子域
主機名:在此圖中,www這個主機名屬於.web.example.com 這個域的某臺或者某組計算機,客戶可以通過訪問www.web.example.com來獲取該域名指向的服務
例如,騰訊的入口網站提供的web服務,其域名為www.qq.con 那麼www就是主機名,.qq.com就是騰訊的二級域該域中所有的管理命名等均由.qq.com負責
使用DNS
DNS的使用非常簡單,客戶端只要指向DNS伺服器即可,一般情況下,家庭撥號上網(pppoe)會由運營商提供IP地址和子網掩碼 閘道器和dns伺服器的IP地址。也可以手動指定。手動指定的方法如下
1、Windows (以windows7 為例)
在開啟的網路共享中心中選擇更改介面卡設定
選擇當前連線網路的網絡卡右鍵選擇屬性
雙擊開啟IPv4 協議屬性
選擇使用下面的dns伺服器,輸入DNS伺服器的IPv4地址,確定後生效
Linux(以CENTOS6.4為例)
在linux下面設定DNS其實並不複雜 但是有兩種方法一種是臨時生效,另外一種是永久生效
臨時生效方法(修改/etc/resolv.conf檔案)
使用vim開啟該檔案
在其中新增nameserver ,該引數就是指定DNS伺服器的IPv4 地址
其中的 search 選項需要解釋一下,當用戶提交域名查詢的時候,如果使用者提交域名不全,即用search引數中的域名補全,假如你需要去尋找www.qq.com 但是你在查詢的時候僅僅輸入的是www。那麼系統提交給DNS 伺服器請求查詢的結果就是 www.example.com,而並非www.qq.com。
永久生效方法(修改網絡卡配置檔案 /etc/sysconfig/network-scripts/ifcfg-ethX)
使用vim 開啟網絡卡配置檔案 在/etc/sysconfig/network-scripts/下,一般命名為ifcfg-ethx
書寫方法如下,在手動指定了IP 子網掩碼 閘道器 之後需要在後面新增DNS 來達到解析域名的目的,網絡卡中DNS的寫法如下,一定要寫成DNS1 哦
其他版本的linux 大同小異~~ 相信各位可以操作
DNS與hosts表
DNS與hosts表之間的關係,大家應該明白了。當用戶發起請求時,作業系統會首先查詢自己本地的hosts表,如果hosts表中沒有才會去向DNS 索要。這樣大家可以理解了吧,hosts表就是一個本地的小型DNS資料庫 記錄了使用者新增進去的域名和IP地址的對應關係,在實際使用過程中如果使用者知道服務的IP地址和域名 也可以自行新增對映關係進hosts表,來實現減少網路開銷和提高訪問效率。但是正是由於這一點,本地hosts表也是常常會被***盯上的檔案,這點大家要注意哦!
轉載於:https://blog.51cto.com/fivet/1166266