RHEL5下DNS全解析1

DNS服務器的配置是一項非常繁重和複雜的工作,但是隻要你細心,有耐心並且不灰心那麼你就一定能成功,我的文章只是參考,一定會有不足,當你看到有缺點的地方,請指出來讓我們共同進步,我期待者你啊。
這一次只是對DNS的一些基本的內容進行總結,後面只是做了一個小實驗,如果你對DNS非常瞭解了,那你就看後面的日誌吧
DNS的基本任務是建立主機名到IP地址的映射關係。它是一種客戶機/服務器系統。服務器將數據從DNS文件載入內存,並用它來答覆內部客戶機和其他服務器的查詢。一個大型的站點可以將DNS域劃分爲幾個子域,在每個子域上運行若干臺服務器。這裏我們要知道什麼是域,每個域代表名字空間中的特定一塊,並有一個行政實體鬆散的管理。DNS名字空間被組織成一個數學家稱之爲“樹”的結構,每個域名代表這棵樹上的一個結點。簡單的說一個“區”是指一個域扣除他的子域部分。到這裏你應該明白了什麼是DNS以及域和名字空間了吧。
關於DNS工作原理網上的資料太多了,你看這篇文章我感覺你已經知道了,這裏我就不再說了。
DNS數據庫是有這個域的主名字服務器的系統管理員所維護的一個文本文件的集合,這些文本文件稱爲區文件,他包括兩種類型的項:分析器命令($ORIGN$TTL)和資源記錄(Recource Records)。只有資源記錄纔是數據庫的真正部分,分析器命令只是爲記錄輸入提供的一些捷徑。
DNS層次結構中的每一個區都有與之相關的一組資源記錄。記錄的類型有:SOA  NS A AAA  PTR  MX  DS  DNSKEY  NSEC RRSIG  CNAME  LOC  SRV  TXT我們用到的記錄類型有SOA  NS  PTR  MX   CNAME 下面我們分別介紹
SOA記錄:一個SOA記錄標記出一個區,即位於DNS域名空間中相同位置的一組資源記錄的開始位置。每個區僅有一個SOA記錄,該區一直延伸到遇見另一個SOA記錄爲止。
NS記錄:標誌一個區的權威服務器(也就是說,所有主服務器和權威服務器),並把子域授權給其他機構。NS記錄通常跟在SOA記錄後面。
A記錄:是DNS數據庫的核心。它們提供了以前在/etc/hosts文件中指定的主機名到IP地址的映射,一個主機必須爲它的每個網絡接口得到一條A記錄。具有多個網絡接口的機器可以讓其所有接口關聯到同一個主機名上,也可以每個接口都有自己的主機名。
PTR記錄執行從IP地址到主機名的反向映射。A記錄和他們對應的PTR記錄相匹配很重要,兩者不匹配或遺漏PTR記錄會導致身份驗證失敗,這樣系統會變得很慢很慢(我是遇到過啊)
MX記錄:用來路由郵件,MX記錄搶佔了消息的目的地址,他將消息指向接收方網點的郵件樞紐主機,而不是接收方自己的工作站。
CNAME記錄:爲主機分配幾個名字。如果主機有CNAME記錄,該主機的其他記錄必須引用真實名,而不是暱稱。
通過前面的文字,我想你對DNS有一個大致的瞭解了吧。那下面我們再說說BIND軟件
BIND,即伯克利名子域(Berkely Inernet Name Domain)系統,是ISCInternet Systems ConsortiumInternet系統聯盟)的開放源代碼包軟件。
BIND系統由3部分組成:
稱爲named的守護進程,它回答查詢
庫例程,它聯繫DNS分佈式數據庫的服務器,解析主機查詢
DNS的命令行接口,nslookup,dighost
名字服務器的分類:.
權威服務器:一個區的正式代表
1,主服務器:區數據的首要服務器,從磁盤文件獲得數據
2,從服務器:從主服務器複製得到他的數據
3,存根:和從服務器類似,但是僅僅複製名字服務器的數據(不復制主機數據)
4,分支:僅在域內可見的服務器(也叫做“祕密服務器”)
非權威:用緩存數據回答查詢,不知道數據是否直接有效
1,緩存:緩存以前的查詢,通常沒有本地區
2,轉發器:代替許多客戶機執行查詢,查詢一個大的緩存
遞歸:代替您查詢,直接返回結果
非遞歸:如果不能回答查詢,就將您引導至另一臺服務器
配置解析器:在網絡上的每臺主機都有一個叫做/etc/resolv.conf的文件,他列出了主機應該查詢的DNS服務器。如果您的主機從DHCP服務器獲得IP地址和網絡參數,那麼會自動設置,否則必須手動設定
配置BIND服務器:
Named的配置文件是named.conf當你配置好了文件以後可以使用named-checkconf檢查配置文件的語法錯誤,也可以使用named-checkzone檢查區數據文件的語法錯誤
下面我們說說在named.conf中經常實用的語句
1include通常用來引入不是完全可讀的加密密鑰
include "path"
2options語句指定全局選項,對於特定區或服務器,有些選項以後可能會覆蓋
options {
       option;
       option;       
}
notify如果設爲yes,並且該named是一個或多個區的主服務器,那麼每當區數據有變化時,named將自動通知相應區的從服務器。
recursion選項指定named是否代替客戶機查詢其他名字服務器
transfers-intransfers-out選項限制可能同時發生的入站和出站的區傳送數目。transfers-per-ns選項讓您指定希望用於入站傳輸的接口IP地址
files選項設置服務器運行時允許同時打開的最大文件數
datasize設定允許服務器使用的最大數據內存量
max-cache-size限制服務器可以用於緩存查詢答案的內存量
recursize-clients限制服務器處理的併發遞歸查詢的數量
listen-on選項指定named監聽查詢請求的網絡接口和協議端口
forwarders選項列出了要用來作爲轉發器的服務器的IP地址。轉發器的使用繞過了從根服務器開始,沿着推薦關係鏈檢索正常的DNS過程。
blackhole地址列表標識出您從不與之進行通信的服務器(是不是類似黑名單啊)
3acl語句
acl必須是named.conf中的頂級語句
acl acl_name 
               Address_match_list
             };
any 所有主機
localnets 本地網絡上的所有主機
localhost 機器本身
none 沒有任何主機
4key語句
定義了用於某個特定服務器身份驗證的有名字的加密密鑰
Key key-id 
            Algorithm string
            Secret string
};
5controls語句規定了rndc如何控制一個正在運行的named進程
Controls  
          Inet ip_addr port ip-port allow {address_match_list} keys {key_list}
}
說了這麼多 是不是有點不耐煩了  那行 我們就先做一個試驗 緩解一下一的神經啊
安裝下列軟件包
bind.i386        bind-libs.i386        bind-utils.i386  caching-nameserver.i386  
我是用yum安裝的比較簡單,關於怎樣將本地光盤配置成yum源的可以看我的另一篇文章
安裝好的效果如下:
[root@db ~]# yum list all | grep bind
This system is not registered with RHN.
RHN support will be disabled.
bind.i386                               30:9.3.6-4.P1.el5         installed     
bind-libs.i386                          30:9.3.6-4.P1.el5         installed     
bind-utils.i386                         30:9.3.6-4.P1.el5         installed     
ypbind.i386                             3:1.19-12.el5             installed  
caching-nameserver.i386                 30:9.3.6-4.P1.el5         installed安裝最後這個軟件包是爲了配置的簡單,因爲裏面有一些配置文件可以當模板。
這裏我沒有安裝bind-chroot.i386 因爲安裝這個軟件包容易出錯,當然你也可以安裝注意路徑就好了。
下面我們配置named配置文件/etc/named.conf,我們先從簡單的開始,下面是我的配置,,我沒有建localhost0.0.127.in-addr.arpa這兩個區,其實最好建上,我們在下面的試驗中在建立吧。
下面我們就配置區文件,區文件全部放在/var/named/目錄下了,由於我們安裝了caching-nameserver.i386 這個軟件包,所以裏面已經有了named.ca這個區文件這裏我們就不需要配置了。我們再配置example.com.zone這個區文件,下面是我的配置

接下來我們配置0.168.192.in-addr.arpa.zone這個區文件,我的配置如下:

要注意這兩個文件中的A記錄和他們對應的PTR記錄相匹配很重要,兩者不匹配或遺漏PTR記錄會導致身份驗證失敗,這樣系統會變得很慢很慢。這裏要注意各個文件的屬組和屬主下面是我的配置文件,可以參考一下

配置DNS一定要注意自己的主機名,因爲linux的主機名必須是FQDN的樣式。
一定要注意下面三個文件中的內容:

呵,忘了說了我的IP地址是192.168.0.131,如果沒記錯的話,前面我已經說過了這三個文件夾的意義了,不信你看看開始的內容。
到這裏文件應該配置完了。我們啓動一下試試

我們看看端口是否開啓了

端口也正常啓動了,
有時間即使沒有語法錯誤也可以正常啓動但就是解析不到,你就要回頭檢查哪三個文件,我們首先用dig試試

好了 查詢成功
我們看看郵件記錄是否可以正常解析

下面我們再在另一個客戶機上查詢試試,我們用hostnslookup進行解析

要想在客戶段進行解析你一定要將DNS服務器指對,好了現在可以稍微休息一下了,接下來我們會進行更深入的講解。如果你有什麼問題,那就說出來,我們一起解決,千萬別灰心。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章