全稱是domain name server域名解析服務。
我們知道每個聯網的計算機都有一個ip地址吧?Ip地址是用來做什么的呢?Ip地址是用來和互聯網上別的機器進行通訊的。但是ip地址很難記吧?一兩個ip地址可能還好,但是,我們每天要訪問的網頁不僅僅只有一兩個吧?
我們記得都是什么呢?www.baidu.com. www.sina.com。我們記住的其實都是字符,都是域名。就像我們的電話號碼,很難記,於是我們把電話號碼存到手機里,給他起個昵稱或者直接輸入人名對吧,把電話號碼對應成人名吧?然后打電話的時候就直接找到這個人名就好了。
所以我們系統也是一樣,會把ip地址對應成一個主機名。在我們系統里有這么一個文件,就是專門用來做對應關系的,這個文件叫/etc/hosts/
,我們可以打開來看一下,一條記錄一行,行里面就是主機名和ip地址,當然一個ip地址可以對應多個主機名,就像人有很多的昵稱一樣。
那么這樣是不是就解決問題了,當我們想要訪問一個網站的時候,我們就不用輸入ip地址,而是可以直接輸入主機名就行了,機器會幫我們做一個解析,把主機名對應成ip地址進行通信。早期這樣做的確沒問題,但是隨着互聯網愈發的壯大,這個文件就不那么實用了。我們要在機器上配置大量的對應關系,是非常耗時,非常麻煩的,而且要配置的機器可不止一台。比如說我是百度,我希望世界上所有的人都要來訪問我的網頁,那么,我是不是需要讓世界上所有的人都去添加我的ip地址和主機名的對應關系。這個是非常難做到的事情,工作量太大。於是我們就引入了一種新的機制。
DNS的實現原理
這種機制的作用和hosts文件一樣,但是實現方法卻不一樣,這個機制就叫DNS (Domain name server)。通過dns,我們可以解決這個大批量域名解析的問題。那具體是怎么實現的呢?這就是dns的結構方面的問題了。
我們之前說我們的系統是一個什么樣的結構,是不是一個分層式的結構,這個結構的體現方式就是目錄吧?對不對。Dns也是如此,它也采用了分層市管理的方式。
不過不同於目錄,我們的目錄是一個邏輯上的概念,用來幫助我們理解文件系統的一種方式。而dns,他是實實在在的一種管理結構。
那我們來看,目錄的至高點是什么。是根吧,對不對,那么對於我們dns來說,既然是分層式管理結構,它也需要有一個至高點吧。這個至高點是什么呢?
我們把它稱作根域,以點代表根域。全世界總共有13台根域,是處於至高無上的位置的,只有13台機器。
那么根域下面就是頂級域了,通常我們看到的頂級域有這個com。有org,有cn還有edu等等,這些都是頂級域。頂級域下面管理二級域,以此類推。
FQDN:主機名加上域名,被稱作完全合格的域名,fqdn。其實com后面應該有個點的,代表根域。只不過我們現在習慣性的將其省略了。就好像國家管理省,省管理市,市管理縣等等
完整的域名 www.baidu.com. . 根域 全球一共13個根域 .com 超級域,一級域 .baidu 二級域 www 主機名
兩台設備做主從同步部署
主:master:192.168.150.128
從:slave:192.168.150.129
1. 軟件安裝(主從都裝)
yum install -y bind bind-utils bind-chroot
說明:bind是主程序bind-utils是工具包,包括dig、nslookup等NDS命令bind-chroot為bind提供一個偽裝的根目錄以增強安全性(將“/var/named/chroot/”文件夾作為BIND的根目錄)/etc/named.conf,/etc/named.rfc1912.zones是主配置文件/var/named/named.ca是根區域解析庫文件/var/named/named.localhost, /var/named/named.loopback 是本機和環回地址的解析庫文件rndc---remote name domain controller這是一個輔助管理工具,默認情況下與BIND安裝在同一主機,而且只能通過127.0.0.1連接named進程,監聽的端口號是TCP/953。
2. 主服務器配置
修改配置文件/etc/name.conf
這個配置文件主要分3段內容,options是全局配置,logging是日志配置,最后是區域解析庫配置以及所包含的區域解析庫文件配置。
allow-transfer 后面跟的是從服務器的IP。
設置正向解析和反向解析:/etc/named.rfc1912.zones
# named-checkconf
沒有任何輸出表示 /etc/named.conf沒有語法錯誤
在/var/named目錄下創建changtian.zone正向解析庫文件和changtian-v.zone反向解析庫文件(可以用named.localhost做模板復制一份改就行了)
正向解析:
反向解析:
反向解析測試zone: named-checkzone "150.168.192.in-addr.arpa" changtian-v.zone
備注說明:區域解析庫文件第一個記錄必須是SOA記錄,必須有NS記錄並且正解區域要有NS記錄的A記錄,反解則不需要有NS記錄對應的A記錄。
$TTL表示宏定義,TTL(Time- To-Live),dns記錄在本地DNS服務器上保留的時間
@符號可代表區域文件/etc/named.conf里面定義的區域名稱,即:"hanli.com."。
2018030422 ;標識序列號,十進制數字,不能超過10位,通常使用日期
2H ;刷新時間,即每隔多久到主服務器檢查一次,此處為2小時,實驗環境可以設置小一點
4M ;重試時間,應該小於刷新時間,此處為4分鍾,實驗環境可以設置小一點
1D ;過期時間,此處為1天
2D ;主服務器掛后,從服務器至多工作的時間,此處為2天)
這個文件里所有的域名結尾的點號一定不能省略。
區域解析庫文件是放在/var/named目錄下,由named進程是以named用戶運行,因此區域解析庫文件的屬組應設置為named。
- 反向解析數據文件里面只有SOA、NS、PTR資源記錄,所有A記錄都要改為PTR記錄,名稱為IP地址,IP地址可以寫全也可以簡寫,如果寫全則是IP地址反寫加上.in-addr.arpa.例如:150.168.192.in-addr.arpa. PTR資源記錄的值為域名。
- 注意:查看權限:目錄下文件,屬組應為named用戶(區域解析庫文件是放在/var/named目錄下,由named進程是以named用戶運行,因此區域解析庫文件的屬組應設置為named)
驗證:
重啟服務:service named restart
dig -t A www.changtian.com @192.168.150.128
3. 從服務器配置(192.168.150.129)
安裝完bind后配置/etc/named.conf
更改監聽IP:
然后vim /etc/named.rfc1912.zones
slaves文件夾下面的兩個文件無需創建,重啟服務后會從主服務器里同步過來;
重啟服務:service named restart
看日志:tail -f /var/log/message
日志顯示成功且/var/named/slaves/存在兩文件(changtian.zone、changtian-v.zone)