(七)DNS伺服器配置執行個體 舉例一: 使用view語句搭建具有内外視圖功能的DNS伺服器,并能夠根椐不同的用戶端位址實作不同的解析結果,假設區域網路位址為192.168.255.0/24,區域網路内各主機分别為rhel1:192.168.255.128; rhel2:192.168.255.12; rhel3:192.168.255.129; rhel4:192.168.255.120; rhel5:192.168.255.4為從DNS伺服器;以及一個提供DNS服務的主機(主機名:dns,區域網路内IP位址:192.168.255.3,外網IP位址:101.25.67.89);此外還有三個應用伺服器:www伺服器(主機名:www;IP位址:101.25.67.5),郵件伺服器(主機名:mail;IP位址:101.25.67.2),FTP伺服器(主機名:ftp;IP位址:101.25.67.1),要實作的功能是:區域網路内的主機可以解析到外網;外網使用者可以解析到内網的WWW伺服器,郵件伺服器和FTP伺服器,但不可以解析到區域網路内的主機;不允許外網使用者反向解析内網位址,不允許外網使用者采用遞歸查詢方式使用該DNS伺服器。配置步驟如下: (1)需安裝以下兩個軟體包: #rpm –ivh bind-9.3.3-7.el5.i386.rpm(第二張CD光牒) ; #rpm –ivh bind-chroot-9.3.3-7.el5.i386.rpm(第二張CD光牒) (2)編輯/var/named/chroot/etc/named.conf檔案内容如下: (此檔案需使用者自己建立,可從/usr/share/doc/bind-9.3.3/sample/etc中複制到/var/named/chroot/etc/目錄下,并在/etc/下建立一個連結) option { directory “/var/named”; //預設路徑 dump-file “/var/named/data/cache_dump.db”; startistice-file “/var/named/data/named_stats.txt0”; }; acl “my lan” { //建立一個通路控制清單,其中127.0.0.1是本機,192.168.255.0/24表示本地區域網路 127.0.0.1; 192.168.255.0/24; //位址清單可以用any , none , localnets , localhost }; //any:任何主機;none:不比對任何主機;localhost:本地主機;localnets:本地網絡所有主機 view “internal” { //定義内部視圖 match-clients { “my lan” }; recursion yes; //表示在這個view中的所有請求都使用遞歸查詢 zone “.” IN { //IN為位址類型,可以不寫,預設的就是IN類 type hint; //根伺服器的特殊類型 file “name.root”; //檔案在name.ca下 }; //每個view必須有zone “.” //設定正向解析 zone “mydomain.com” { type master; file “mydomain.com.internal.db”; allow-transfer { 192.168.255.4 }; //設定域傳輸控制選項 }; //設定反向解析 zone “ 255.168.192.in-addr.arpa” IN { type master; file “255.168.192.in-addr.arpa.internal.db”; }; }; view “external” { match-clients { any; }; //any表示external視圖對任何主機開放,但一定要放在internal視圖的後面,這樣acl中定義的主機就會首先使用internal視圖裡面的zone recussion no; //關閉遞歸,使DNS伺服器忽略外部使用者的非本地解析請求 zone “.” IN { //每個view必須有zone “.” type hints; file “name.root”; }; //該zone與internal視圖中的設定類似,由于外網使用者不允許反向解析到内網,是以沒有設定反向解析zone zone “mydomain.com” { type master; file “mydomain.com.external.db”; allow-transfer { 123.66.88.2; }; }: }; 其中name.root可以從ftp://ftp.rs.internal.net下載下傳,不需要自己編寫。 (3)編輯區域檔案mydomain.com.internal.db(位于/var/named/chroot/var/named/目錄下),如下所示: $TTL 86400 @ IN SOA dns.mydomain.com. admin.mydomain.com. ( 2007060901;28800;14400;3600000;86400; ) //主授權記錄,@表示mydomain.com域,admin.mydomain.com.是使用者admin在mydomain.com域下的郵箱位址// @ IN NS dns.mydomain.com. //@域的DNS伺服器是dns.mydomain.com @ MX 10 mail.mydomain.com. //@域的郵件投遞到mail.mydomail.com dns IN A 192.168.255.3 //DNS伺服器的位址是192.168.255.3 mail IN A 101.25.67.2 //mail伺服器的位址是101.25.67.2 ftp IN A 101.25.67.1 //ftp伺服器的位址是101.25.67.1 www IN A 101.25.67.5 //www伺服器的位址是101.25.67.5 rhel1 IN A 192.168.255.128 //rhel1.mydomain.com的IP位址是192.168.255.128 rhel2 IN A 192.168.255.12 //rhel2.mydomain.com的IP位址是192.168.255.12 rhel3 IN A 192.168.255.129 //rhel3.mydomain.com的IP位址是192.168.255.129 rhel4 IN A 192.168.255.120 //rhel4.mydomain.com的IP位址是192.168.255.120 rhel5 IN A 192.168.255.4 //rhel5.mydomain.com的IP位址是192.168.255.4 (4)編輯區域檔案 mydomain.com.external.db(同樣位于/var/named/chroot/var/named/目錄下),如下所示: @ IN SOA dns.mydomain.com. admin.mydomain.com. ( 2007060901;28800;14400;3600000;86400; ) //主授權記錄,@表示mydomain.com域,admin.mydomain.com.是使用者admin在mydomain.com域下的郵箱位址// @ IN NS dns.mydomain.com. //@域的DNS伺服器是dns.mydomain.com @ MX 10 mail.mydomain.com. //@域的郵件投遞到mail.mydomail.com dns IN A 192.168.255.3 //DNS伺服器的位址是192.168.255.3 mail IN A 101.25.67.2 //mail伺服器的位址是101.25.67.2 ftp IN A 101.25.67.1 //ftp伺服器的位址是101.25.67.1 www IN A 101.25.67.5 //www伺服器的位址是101.25.67.5 //由于該視圖對應外網的查詢,不希望外部使用者知道本地區域網路的IP位址,是以沒有添加本地主機資訊 (5)編輯反向解析區域檔案255.168.192.in-addr.arpa.internal.db(同樣位于/var/named/chroot/var/named/目錄下),如下所示: $TTL 86400 @ IN SOA dns.mydomain.com. admin.mydomain.com. ( 2007060901;28800;14400;3600000;86400; ) @ IN NS dns.mydomain.com. 3 IN PTR dns.mydomain.com. 128 IN PTR rhel1.mydomain.com. 12 IN PTR rhel2.mydomain.com. 129 IN PTR rhel3.mydomain.com. 120 IN PTR rhel4.mydomain.com. 4 IN PTR rhel5.mydomain.com. 舉例二: 1建構單純的緩存域名伺服器--RHEL5系統專門為配置緩存域名伺服器提供了名為caching-nameserver-9.3.3-7.el5.i386.rpm的軟體包,而且緩存域名伺服器安裝完caching-nameserver軟體包後不需要修改任何其它的配置工作就可以啟動運作,并實作域名查詢和緩存的功能,但該伺服器主機需要能夠通路網際網路,因為緩存伺服器應能夠與網際網路中的其他DNS伺服器進行網絡連接配接,以查詢DNS客戶機的域名解析請求,在區域網路内部建構緩存域名伺服器的主要目的是提高域名解析的速度和節約對網際網路通路的出口帶寬。 (1)需安裝以下兩個軟體包 #rpm –ivh bind-9.3.3-7.el5.i386.rpm(被依賴,第二張CD光牒) ;#rpm -ivh caching-nameserver-9.3.3-7.el5.i386.rpm(第四張CD光牒) 安裝生成了以下主要的配置檔案: 配置檔案: /etc/named.caching-nameserver.conf /etc/named.rfc1912.zones 正向和反向區域檔案:/var/named/localdomain.zone /var/named/localhost.zone /var/named/named.ca /var/named/named.broadcast /var/named/named.local /var/named/named.ip6.local /var/named/named.zero 緩存域名伺服器的主配置檔案named.caching-nameserver.conf内容如前面所示,不需要進行任何修改。在緩存域名伺服器啟動後就可以使用nslookup等域名查詢指令對緩存域名伺服器進行測試。 2建構主域名伺服器----假設要建構的主域名伺服器的IP位址是192.168.1.2,并且在主域名伺服器中設定從域名伺服器位址為192.168.1.3,需要在主域名伺服器中添加名為1test.com的域名區域,該域名中主機的網絡位址為192.168.1.0/24。在1test.com區域中需要設定位址記錄,别名記錄,域名伺服器記錄和郵件交換記錄等基本的域名資源記錄,本例不涉及網際網路中DNS伺服器對1test.com域名的指向,即1test.com域隻在區域網路内部的主,從域名伺服器中有效。 (1)建立主配置檔案:在上面建構好的緩存域名伺服器的基礎上,由named.caching-nameserver.conf複制一份名為named.conf的主配置檔案(如果沒有建立named.conf檔案時,則系統在啟動named程序時,預設讀取的配置檔案為named.caching-nameserver.conf.如果存在named.conf檔案,則不再讀取named.caching-nameserver.conf檔案)。 (2)修改配置檔案:在/etc/named.conf配置檔案的未尾添加1test.com域的正向區域和反向區域設定。正向區域的區域名稱為1test.com,類型為主域名伺服器,區域檔案名稱為1test.com.zone,設定内容如下: zone “1test.com” { type master; file “1test.com.zone”; }; 1test.com域中所有主機都在子網192.168.1.0中,是以反向解析區域的名稱是1.168.192.in-addr.arpa,類型為主域名伺服器,區域檔案名是192.168.1.rev: zone “1.168.192.in-addr.arpa” { type master; file “192.168.1.rev”; }; (3)在/var/named目錄中建立正向和反向區域檔案:根據主配置檔案named.conf中的設定,正反向區域檔案須儲存在工作目錄/var/named下,可用vi編輯器建立。 在1test.com.zone區域檔案中按照如下要求添加位址記錄: 名為ns1的主機,IP位址為192.168.1.2,該主機将作為主域名伺服器使用; 名為ns2的主機,IP位址為192.168.1.3,該主機将作為從域名伺服器使用; 名為host1的主機,IP位址為192.168.1.11,該主機将作為郵件伺服器使用; 名為host2的主機,IP位址為192.168.1.12,該主機将作為網頁伺服器使用; 設定别名:别名記錄又稱CNAME記錄,用于在區域檔案中對主機名稱設定别名。通過設定别名記錄,具有多種功能的同一個伺服器可以具有多個域名。在1test.com域中為host1主機設定别名為mail,host1主機将使用别名mail.1test.com作為郵件伺服器使用;為host2主機設定别名為www,host2主機将使用别名www.1test.com作為網頁伺服器使用。 添加郵件交換記錄:郵件交換記錄又稱MX記錄,用于設定目前域中提供郵件服務的伺服器名稱。1test.com域名需要設定使用mail.1test.com主機作為郵件伺服器。設定了郵件交換記錄後,所有發向[email protected]郵箱的電子郵件都将發往mail.1test.com伺服器主機。 完整的正向區域檔案内容如下: #cat /var/named/1test.com.zone $TTL 86400 @ IN SOA ns1.1test.com. hostmaster.1test.com. ( 42 ;serial (d. adams) 3H ;refresh 15M ;retry 1W ;expiry 1D ) ;minimum @ IN NS ns1.1test.com. @ IN NS ns2.1test.com. ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 host1 IN A 192.168.1.11 host2 IN A 192.168.1.12 mail IN CNAME host1 www IN CNAME host2 @ IN MX 5 mail.1test.com. 建立對應的反向區域檔案: #cat /var/named/192.168.1.rev $TTL 86400 @ IN SOA ns1.1test.com. hostmaster.1test.com. ( 42 ;serial (d. adams) 3H ;refresh 15M ;retry 1W ;expiry 1D ) ;minimum @ IN NS ns1.1test.com. @ IN NS ns2.1test.com. 2 IN PTR ns1.1test.com. 3 IN PTR ns2.1test.com. 11 IN PTR host1.1test.com. 12 IN PTR host2.1test.com. (4)測試配配置檔案和區域檔案: #name-checkconf ------------自動檢測系統中的”/etc/named.conf”檔案的内容,如果有文法錯誤,螢幕将顯示發現的錯誤内容。 #name-checkzone 1test.com /var/named/1test.com.zone----第一個參數需指定區域名稱,如1test.com;第二個參數需指定區域檔案名 (5)重新開機named伺服器程式:#service named restart 3建構從域名伺服器-------從域名伺服器作為主域名伺服器的輔助和備份伺服器,在自身DNS伺服器中不建立區域檔案,而是從主伺服器中查詢接收并儲存區域檔案,從域名伺服器需要在與主域名伺服器不同的主機中建構,本例為上面建構的主域名伺服器建構從域名伺服器,(1)從域名伺服器主機需要安裝如下兩個軟體包: #rpm –ivh bind-9.3.3-7.el5.i386.rpm(被依賴,第二張CD光牒) ;#rpm -ivh caching-nameserver-9.3.3-7.el5.i386.rpm(第四張CD光牒) (2)軟體包安裝完成後,同樣由/etc/named.caching-nameserver.conf複制一份名為/etc/named.conf的主配置檔案,并添加1test.com域和其反向