[實驗目的] 1.配置一個只可轉發請求的DNS. 2.配置一個masterDNS. 3.配置一個slaveDNS. [實驗環境] 1.兩台互連的計算機. 2.系統Redhat 8.0. [實驗步驟] 一.實驗准備. 1.兩台機關掉iptables # service iptables stop # chkconfig iptables off 2.兩台機檢查安裝必要軟件 # rpm -q bind # rpm -q bind-utils # rpm -q caching-nameserver 根據結果,安裝沒安裝的軟件,從安裝盤裡找出沒安裝的包,有選擇的執行下列步驟: # rpm -Uvh bind-9* # rpm -Uvh bind-utils* # rpm -Uvh caching-nameserver* 3.互連兩台機. ①編輯兩台機的相應文件.(編輯最好用vi,以下也是) 機器1: /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.0.254 NETMASK=255.255.255.0 /etc/hosts 127.0.0.1 localhost localhost.localdomain /etc/resolv.conf nameserver 192.168.0.254 /etc/sysconfig/network NETWORKING=yes HOSTNAME=server1 機器2: /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.0.1 NETMASK=255.255.255.0 /etc/hosts 127.0.0.1 localhost localhost.localdomain /etc/resolv.conf nameserver 192.168.0.1 /etc/sysconfig/network NETWORKING=yes HOSTNAME=station1 ②分別在兩台機上運行: 機器1: # ifdown eth0 # ifup eth0 # ping 192.168.0.1 機器2: # ifdown eth0 # ifup eth0 # ping 192.168.0.254 主意:兩台機能互相ping通,繼續下列實驗,不通,再找找原因. 二.機器1上配置一個masterDNS. 機器1上: 1.編輯/etc/named.conf文件: /etc/named.conf options { Directory “/var/named/”; }; zone “.” IN { type hint; file “named.ca”; }; zone “localhost” IN { type master; file “localhost.zone”; }; zone “0.0.127.in-addr.arpa” IN { type master; file “named.local”; }; zone “example1.com” IN { type master; file “db.example1”; }; zone “0.168.192.in-addr.arpa” IN { type master; file “db.192.168.0”; }; ---------------------------------------------------------------------- 解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段. 上述文件有六部分:option ,5個zone. 其中option,”.”,”localhost”,”0.0.127.in-addr.arpa”原來就有. “example1.com”,“0.168.192.in-addr.arpa”為現在子網的正向和反向搜索區的 定義,“db.example1”,”db.192.168.0”的名字是隨便取的,它們必需在/var/named/下 存在. 主義{}前後及中間的空格,及分號. ----------------------------------------------------------------------- 2.用vi創建兩個文件,/var/named/db.example1,/var/named/db.192.168.0 /var/named/db.example1 $TTL 86400 @ IN SOA server1.example1.com. Root.server1.example1.com. ( 2003070401 1H 1M 1W 1D ) IN NS server1.example1.com. IN A 192.168.0.254 server1 IN A 192.168.0.254 station1 IN A 192.168.0.1 www IN A 192.168.0.254 FTP IN A 192.168.0.254 pop IN A 192.168.0.254 www1 IN CNAME server1.example1.com. ftp1 IN CNAME server1.example1.com. @ IN MX 10 server1.example1.com. server1.example1.com IN MX 10 server1.example1.com. ---------------------------------------------------------------------- 解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段. 上述文件是一個正向搜索的數據庫: $TTL 86400 是文件開頭,數字表示默認存活期,用秒計算的,做什麼不用不要管它, 記著添上就行. 接著的格式就是:[domain] [class] [domain]如: server1.example1.com ,www. Www是簡寫,實際會默認添上定義這個文件的那個 zone “example1.com”裡的 example1.com,即:www=www.example1.com.這個段可以升略不寫,默認跟前一行的 [domain]相同.@¡理示”example1.com”. [class]一般為internet類,即:IN ,可以省去不寫. 分別有SOA,NS,A,MX,CNAME,及反向數據庫裡的PTR. SOA=start of authority 必要的 NS=nameserver 必要的 A=域名和ip地址的映射. 必要的 MX=mail exchange. 可選的 CNAME=域名的一個假名 可選的 PTR=用在反向:ip地址和域名的影射. 必要的 假名不可以放在NS MX 的字段. SOA 括弧中的5個數字: 對應為( serial refresh retry eXPire Minimum ) serial 可以是任何數字,一般:年月日修改數. refresh 是SOA信息的刷新時間. Retry是與授權服務器聯系的頻率. Expire slave服務器保存有關的區域信息,不更新它的時間間隔. Minimum 區域中記錄的存活時間. H=hour D=day M=minute W=week SOA 後的server1.example1.com.表示這個區域授權給哪台機. root.server1.example1.com.表示管理人.用.代?æ@ 完整域名後一定要加.號,否則會自動為你加”example1.com”. 以上如果你不懂,不用急,以後慢慢想清楚. ----------------------------------------------------------------------- /var/named/db.192.168.0 $TTL 86400 @ IN SOA server1.example1.com. root.server1.example1.com. ( 2003070401 1H 1M 1W 1D ) IN NS server1.example1.com. 254.0.168.192.in-addr.arpa IN PTR server1.example1.com. 1.0.168.192.in-addr.arpa IN PTR station1.example1.com. ---------------------------------------------------------------------- 解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段. 此文件是反向搜索的數據庫. 主意IP反著寫. 其它的不用解釋. ----------------------------------------------------------------------- 3.檢驗: # cat >> /var/log/messages ****** ****** [ctrl]+d # service named restart # host server1.example1.com # host station1.example1.com # host www.example1.com # host www1.example1.com # host 192.168.0.254 看看是否可以解析,如:server1.example1.com 對應的IP為192.168.0.254, 192.168.0.254對應域名為server1.example1.com.如果不能解析,說明,配置有問題, 可以到日志/var/log/messages裡查看.具體位置在文件末尾的兩行*******後,和調試 程序一樣,甚至他會告訴你哪個文件,哪行錯了.修改後,重新執行: # cat >> /var/log/messages ****** ****** [ctrl]+d # service named restart # host server1.example1.com # host station1.example1.com # host www.example1.com # host www1.example1.com # host 192.168.0.254 直到無錯,且能夠正確解析. 三.機器2上配置一個只負責轉發請求域名解析的DNS 機器2上: 1.編輯/etc/named.conf /etc/named.conf options { directory “/var/named/”; forwarders { 192.168.0.254; }; }; ........ ------------------------------------------------------------ 解釋上述文件,如果你對上述文件比較熟悉,可以跳過此段. forwarders { 192.168.0.254; }表示,如果此DNS不能解析出IP,則交給 192.168.0.254這個DNS,其實在配置masterDNS時,也可以在option裡加一個forwarders 具體IP就是你平時上網用的DNS.如果有兩個或多個也可以這樣寫: { 210.35.92.77.45; 210.35.77.46; } 或者 { 210.35.92.77/24; 192.168.0.254 ;} .....表示其它的東西,不要動. --------------------------------------------------------------------- 2.檢驗: # cat >> /var/log/messages ****** ****** [ctrl]+d # service named restart # host server1.example1.com # host station1.example1.com # host www.example1.com # host www1.example1.com # host 192.168.0.254 看看是否可以解析,如:server1.example1.com 對應的IP為192.168.0.254, 192.168.0.254對應域名為server1.example1.com. 這個配置比較簡單,一般