1. 程式人生 > >Linux中DNS的基礎設定和配置

Linux中DNS的基礎設定和配置

DNS原理及其解析過程

DNS:Domain name service 域名解析服務 FQDN:Full Qualified Domain Name,完全合格域名 TLD:Top level Domain 頂級域 組織域:.com、.org、.net、.cc 國家域:.cn、.tw、.hk、jp 反向域:IP —> FQDN 反向:IP —> FQDN 正向:FQDN —> IP

為什麼需要DNS解析域名為IP地址?

網路通訊大部分是基於TCP/IP的,而TCP/IP是基於IP地址的,所以計算機在網路上進行通訊時只能識別如“202.96.134.133”之類的IP地址,而不能認識域名。我們無法記住10個以上IP地址的網站,所以我們訪問網站時,更多的是在瀏覽器位址列中輸入域名,就能看到所需要的頁面,這是因為有一個叫“DNS伺服器”的計算機自動把我們的域名“翻譯”成了相應的IP地址,然後調出IP地址所對應的網頁。

具體什麼是DNS?

DNS( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於TCP/IP網路,它所提供的服務是用來將主機名和域名轉換為IP地址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。 在這裡插入圖片描述 DNS域名稱 域名系統作為一個層次結構和分散式資料庫,包含各種型別的資料,包括主機名和域名。DNS資料庫中的名稱形成一個分層樹狀結構稱為域名稱空間。域名包含單個標籤分隔點,例如:im.qq.com。 完全限定的域名 (FQDN) 唯一地標識在 DNS 分層樹中的主機的位置,通過指定的路徑中點分隔從根引用的主機的名稱列表 下圖顯示與主機稱為 im 內

qq.com DNS 樹的示例。 主機的 FQDN 是 im.qq.com。 DNS 域的名稱層次結構 在這裡插入圖片描述

Dns服務的工作過程

當 DNS 客戶機需要查詢程式中使用的名稱時,它會查詢本地DNS 伺服器來解析該名稱。客戶機發送的每條查詢訊息都包括3條資訊,以指定伺服器應回答的問題。 ● 指定的 DNS 域名,表示為完全合格的域名 (FQDN) 。 ● 指定的查詢型別,它可根據型別指定資源記錄,或作為查詢操作的專門型別。 ● DNS域名的指定類別。 對於DNS 伺服器,它始終應指定為 Internet 類別。例如,指定的名稱可以是計算機的完全合格的域名,如im.qq.com,並且指定的查詢型別用於通過該名稱搜尋地址資源記錄。 DNS 查詢以各種不同的方式進行解析。客戶機有時也可通過使用從以前查詢獲得的快取資訊就地應答查詢。DNS 伺服器可使用其自身的資源記錄資訊快取來應答查詢,也可代表請求客戶機來查詢或聯絡其他 DNS 伺服器,以完全解析該名稱,並隨後將應答返回至客戶機。這個過程稱為遞迴。 另外,客戶機自己也可嘗試聯絡其他的 DNS 伺服器來解析名稱。如果客戶機這麼做,它會使用基於伺服器應答的獨立和附加的查詢,該過程稱作迭代,即DNS伺服器之間的互動查詢就是迭代查詢。 DNS 查詢的過程如下圖所示。 在這裡插入圖片描述

1、在瀏覽器中輸入www.qq.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伺服器地址(qq.com)給本地DNS伺服器。當本地DNS伺服器收到這個地址後,就會找qq.com域伺服器,重複上面的動作,進行查詢,直至找到www.qq.com主機。

6、如果用的是轉發模式,此DNS伺服器就會把請求轉發至上一級DNS伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根DNS或把轉請求轉至上上級,以此迴圈。不管是本地DNS伺服器用是是轉發,還是根提示,最後都是把結果返回給本地DNS伺服器,由此DNS伺服器再返回給客戶機。 從客戶端到本地DNS伺服器是屬於遞迴查詢,而DNS伺服器之間就是的互動查詢就是迭代查詢。

DNS的配置

192.168.233.179 hadoop01.ftgov – DNS主機

192.168.233.180 hadoop02.ftgov – DNS客戶機

192.168.233.181 hadoop03.ftgov – DNS客戶機

在DNS主機上

安裝軟體

安裝bind命令
yum -y install bind bind-utils bind-chroot
bind詳解:
包名:bind

程序:named

協議:dns

使用埠:53(tcp,udp)

相關包:

bind-chroot:將named程序的活動範圍限定在chroot目錄,保證安全性。

bind-devel:與開發相關的標頭檔案和庫檔案(編譯安裝bind時所需)

bind-libs:bind伺服器端和客戶端都使用到的公共庫檔案

bind-utils :  bind客戶端工具

修改/etc/named.conf 訪問許可權

vi  /etc/named.conf

在這裡插入圖片描述 在這裡插入圖片描述 修改 /etc/named.rfc1912.zones檔案,加入正解和反解配置

zone "ftgov" IN {      //當輸入類似“ftgov”字尾如:hadoop01.ftgov時正解析
 
    type master;      //此為dns主機
 
    file "named.ftgov.com";  //解析檔案將會讀取 /var/named 目錄下named.ftgov.com檔案的域名與IP對映配置(檔案稍後生成)
 
    allow-update { none; };
};
zone "233.168.233.in-addr.arpa" IN {   //當輸入類似“192.168.233.xxx”時反解析,注意地址順序
    type master; 
    file "named.192.168.233.zone";    //反解檔案位於 /var/named 目錄下named.192.168.233.zone的配置中(檔案稍後生成)
    allow-update { none; };
 
};

生成以上配置需要用到的正解和反解檔案

開啟目錄 cd  /var/named
生成檔案 named.ftgov.com
複製檔案[[email protected] named]# cp -p named.localhost named.ftgov.com
						cp -p named.localhost named.192.168.233.zone 

配置 named.ftgov.com 在這裡插入圖片描述 配置生成檔案 named.192.168.233.zone 在這裡插入圖片描述

客戶端操作(兩臺)

vi   /etc/sysconfig/network-scripts/ifcfg-eths33  // 具體修改為自己當前使用的網絡卡名

在這裡插入圖片描述 重啟客戶端網路服務

systemctl restart network

測試結果 在這裡插入圖片描述 另一種工具的(dig)用法 dig命令:

語法: dig -t 資源記錄型別 名稱 @server-ip dig -t NS baidu.com

dig -x IP @server-ip:查詢反向解析 dig -x 192.168.233.180 dig - t 資源記錄型別 名稱 +trace:追蹤解析過程 dig -t A hadoop02 +trace