實(shí)例:在RHEL5系統(tǒng)中配置DNS服務(wù)
首先,應(yīng)該檢查自己是否已經(jīng)安裝了bind。
[root@killgoogle ~]# rpm -qa bind* bind-9.3.3-10.el5 bind-libbind-devel-9.3.3-10.el5 bind-sdb-9.3.3-10.el5 bind-devel-9.3.3-10.el5 caching-nameserver postgresql-libs-8.1.11-1.el5_1.1.i386.rpm bind-chroot-9.3.3-10.el5 |
如果出現(xiàn)下現(xiàn)報(bào)錯(cuò)信息:
Locating /var/named/chroot//etc/named.conf failed: [失敗] |
則將/usr/share/doc/bind-9.3.3/sample/etc/named.conf范本文件復(fù)制為/etc/named.conf
使用了chroot后,虛擬根目錄為/var/named/chroot,則namd.conf實(shí)際位置為/var/named/chroot/etc,而工作目錄/var/named實(shí)際路徑為/var/named/chroot/var/named.
個(gè)人比較推薦yum安裝,不會(huì)發(fā)生如上所述的bind報(bào)錯(cuò),整個(gè)安裝過(guò)程也很輕松
root@killgoogle ~]# yum install bind* [root@killgoogle ~]# yum install caching-nameserver |
安裝過(guò)后BIND服務(wù)就已經(jīng)完成三分之一了,剩下的三分之二就是配置BIND服務(wù)。好,開(kāi)始!我是想配置一個(gè)DNS可以解析我的域名:www.test.com和ftp.test.com。假設(shè)我的IP是:192.168.1.12
[root@killgoogle ~]# cd /var/named/chroot/etc/ [root@killgoogle etc]# ls localtime named.rfc1912.zones named.caching-nameserver.conf named.rfc1912.zones.rpmsave rndc.key |
這里我們可以看到在/var/named/chroot/etc/下的幾個(gè)主要的配置文件。但是我們還是不要?jiǎng)舆@些文件的好,可以先復(fù)制它們并對(duì)它們進(jìn)行修改。在進(jìn)行復(fù)制的時(shí)候應(yīng)該加上參數(shù)-P,這樣在復(fù)制的時(shí)候把文件的屬性不會(huì)改變。
[root@killgoogle etc]# cp -p named.caching-nameserver.conf named.conf |
現(xiàn)在就可以用named.conf文件進(jìn)行配置了。
[root@killgoogle etc]# vi named.conf //紅色為改動(dòng)部分 options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; query-source port 53; query-source-v6 port 53; allow-query { any; };}; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view localhost_resolver { match-clients { any; }; match-destinations { any; }; recursion yes; include "/etc/named.rfc1912.zones"; }; [root@killgoogle etc]# vi named.rfc1912.zones |
下面是我的文件內(nèi)容
zone "." IN { type hint; file "named.ca"; }; zone "localdomain" IN { type master; file "localdomain.zone"; allow-update { none; };}; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; };}; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; };}; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.ip6.local"; allow-update { none; };}; zone "255.in-addr.arpa" IN { type master; file "named.broadcast"; allow-update { none; };}; zone "0.in-addr.arpa" IN { type master; file "named.zero"; allow-update { none; };}; zone "test.com" IN { type master; file "test.com.zone"; allow-update { none; };}; zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.zone"; allow-update { none; };}; |
其中可以看見(jiàn)有這個(gè)配置文件里又引用了兩個(gè)新的文件:test.com.zone和192.168.1.zone。這兩個(gè)文件可以CP過(guò)來(lái)。
[root@killgoogle var]# cd /var/named/chroot/var/named/ [root@killgoogle var]# cp -p localdomain.zone test.com.zone [root@killgoogle var]# cp -p named.local 192.168.1.zone |
在這之中比較重要的還是要加參數(shù)P,要不然很有可能啟動(dòng)不了named服務(wù)。好了,現(xiàn)在就可以編輯這兩個(gè)文件了。
[root@killgoogle var]# vi 192.168.1.zone $TTL 86400 @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS test.com. 12 IN PTR www.test.com. 12 IN PTR ftp.test.com. |
有必要說(shuō)明的是最后兩句前面的那個(gè)12是指的我自己IP:192.168.1.12的最后一個(gè)數(shù)
[root@killgoogle var]# vi test.com.zone $TTL 86400 @ IN SOA localhost root ( 42 ; serial (d. adams) 3H ; refresh <5M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost www IN A 192.168.1.12 ftp IN A 192.168.1.12 |
其中192.168.1.zone是反向解析文件,而test.com.zone是正向解析文件.下一步就是修改/etc/resolv.conf文件了.只有修改了這個(gè)文件才可以用自己的的機(jī)器進(jìn)行域名解析
[root@killgoogle var]# vi /etc/resolv.conf |
只要加上一句:nameserver 192.168.1.12就行了。
這樣配置就完成了。不過(guò)現(xiàn)在開(kāi)始配置rhel5的selinux。因?yàn)椴慌渲眠@個(gè)的話就不會(huì)讓別人訪問(wèn)你的DNS服務(wù)器。
[root@killgoogle var]# setup |
彈出一個(gè)對(duì)話框。我們要進(jìn)行的是防火墻配置,所以選擇第六個(gè)選項(xiàng):防火墻配置。選擇“定制”再在彈出的對(duì)話框的允許進(jìn)入的最后一欄即:其它端口里輸入:53:tcp 53:udp
好了。這樣就完成了所有過(guò)程。實(shí)驗(yàn)中可關(guān)閉Selinux,開(kāi)啟服務(wù)service named start.
以上即是配置主域名服務(wù)器過(guò)程,如果是從域名呢 ?這個(gè)配置過(guò)程也是一樣的,只需要改動(dòng)named.rfc1912.zones文件即可,以下是變動(dòng)部分.
zone "test.com" IN { type slave; file "slaves/test.com.zone"; masters { 192.168.1.12; };}; zone "1.168.192.in-addr.arpa" IN { type slave; file "slaves/192.168.1.zone"; masters { 192.168.1.12; };}; [root@killgoogle ~]# nslookup > www.killgoogle.com Server: 192.168.1.12 Address: 192.168.1.12#53 Name: www.test.com Address: 192.168.1.12 |
◆需要注意的是:
1、rndc reload一個(gè)非常有用的命令,能在不關(guān)閉服務(wù)的情況下,即時(shí)更新bind;另nslookup交互環(huán)境中,可以用命令server 192.168.1.102指定此DNS服務(wù)器為提供服務(wù)的DNS服務(wù)器,因?yàn)楣P者的機(jī)子上面有3個(gè)服務(wù)器.
2、Non-authoritative answer項(xiàng),它表示非授權(quán)的回答,說(shuō)明來(lái)自其他DNS服務(wù)器或緩存
3、泛域名: 比如用戶的域名是abc.com,那么我們將主機(jī)名設(shè)置為"*",IP解析到比如:218.104.78.100,大家都知道*是通配符,他表明abc.com之前的所有子域名都將解析到218.104.78.100,這就意味著例如輸入bbs.abc.com或者123.abc.com或者123.234.abc.com都將解析到218.104.78.100,這里需要說(shuō)明的是,在我們系統(tǒng)里面如果單獨(dú)設(shè)置一個(gè)子域名解析,比如將主機(jī)名設(shè)置為mail,單獨(dú)解析到218.104.78.79,那么該解析記錄優(yōu)先。泛域名在實(shí)際使用中作用是非常廣泛的,比如實(shí)現(xiàn)無(wú)限二級(jí)域名功能,提供免費(fèi)的url轉(zhuǎn)發(fā),在IDC部門(mén)實(shí)現(xiàn)自動(dòng)分配免費(fèi)網(wǎng)址,在大型企業(yè)中實(shí)現(xiàn)網(wǎng)址分類管理等等,都發(fā)揮了巨大的作用。
4、在實(shí)際工作中,可把自己的DNS服務(wù)器設(shè)置成forarding DNS,而將公網(wǎng)開(kāi)放的DNS作為forwarder DNS.
5、源碼安裝bind9.6-P1也剛剛安裝成功,并且配置了主從服務(wù)器及rndc控制,感覺(jué)難度比yum包安裝要大,不過(guò)語(yǔ)法熟悉也沒(méi)什么,多花些時(shí)間而矣。


















