DNS是域名系統(tǒng)(Domain Name System)的縮寫,是因特網(wǎng)的一項(xiàng)核心服務(wù),它能提供域名與IP地址之間對(duì)應(yīng)關(guān)系的轉(zhuǎn)換服務(wù)。
這樣我們就可以更方便地去訪問(wèn)互聯(lián)網(wǎng)了,不用去記住那一串IP數(shù)字。本文檔主要是說(shuō)明如何把一臺(tái)CentOS主機(jī)配置成一個(gè)DNS
服務(wù)器,以便能提供域名解析服務(wù)。
(1) DNS服務(wù)器端配置
操作系統(tǒng):CentOS 6.4
IP地址:172.16.1.4
DNS軟件:Bind 9.8
測(cè)試域名:realhostip.com
作用:主要提供解析realhostip.com域名的服務(wù)
1. 安裝bind
# yum install bind
2. 修改/etc/named.conf配置文件
# vi /etc/named.conf
//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS resolver only).//// See /usr/share/doc/bind*/sample/ for example named configuration files.//options { listen-on port 53 { any; }; //開啟監(jiān)聽端口53,接受任意IP連接 listen-on-v6 port 53 { ::1; }; //支持IP V6 directory '/var/named'; //所有的正向反向區(qū)域文件都在這個(gè)目錄下創(chuàng)建 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'; allow-query { 0.0.0.0/0; }; //允許任意IP查詢 recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file '/etc/named.iscdlv.key'; managed-keys-directory '/var/named/dynamic';};logging { channel default_debug { file 'data/named.run'; severity dynamic; };};zone '.' IN { type hint; file 'named.ca';};include '/etc/named.rfc1912.zones'; //主要配置文件include '/etc/named.root.key';
3. 修改/etc/named.rfc1912.zones文件,添加realhostip.com的正向和反向區(qū)域
# vi /etc/ named.rfc1912.zones
// named.rfc1912.zones://// Provided by Red Hat caching-nameserver package //// ISC BIND named zone configuration for zones recommended by// RFC 1912 section 4.1 : localhost TLDs and address zones// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt// (c)2007 R W Franks// // See /usr/share/doc/bind*/sample/ for example named configuration files.//zone 'localhost.localdomain' IN { type master; file 'named.localhost'; allow-update { none; };};zone 'localhost' IN { type master; file 'named.localhost'; allow-update { none; };};zone '1.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.loopback'; allow-update { none; };};zone '1.0.0.127.in-addr.arpa' IN { type master; file 'named.loopback'; allow-update { none; };};zone '0.in-addr.arpa' IN { type master; file 'named.empty'; allow-update { none; };};//realhostip.com的正向區(qū)域zone 'realhostip.com' IN { type master; file 'named.realhostip.com'; allow-update { none; };};//realhostip.com的反向區(qū)域zone '1.16.172.in-addr.arpa' IN { type master; file '172.16.1.arpa'; allow-update { none; };};
這里需要注意的是,添加反向區(qū)域時(shí),網(wǎng)絡(luò)號(hào)要反過(guò)來(lái)寫(網(wǎng)絡(luò)號(hào)是IP地址與子網(wǎng)掩碼進(jìn)行與操作后的結(jié)果)。
例如,我現(xiàn)在配置的網(wǎng)絡(luò)號(hào)172.16.1這個(gè)網(wǎng)段,那么它的反向區(qū)域是1.16.172.in-addr.arpa。區(qū)域里面的file
字段表明解析時(shí)的數(shù)據(jù)來(lái)源文件,接下來(lái)我們?nèi)?chuàng)建named.realhostip.com和172.16.1.arpa文件。
4. 創(chuàng)建正向和反向區(qū)域資源文件
在配置named.conf時(shí),指明的資源文件目錄是/var/named,故先進(jìn)入該目錄。
# cd /var/named
# vi named.realhostip.com
$TTL 1D@ IN SOA realhostip.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1172-16-1-50 IN A 172.16.1.50172-16-1-51 IN A 172.16.1.51
以上我添加了兩條記錄,其中172-16-1-50 IN A 172.16.1.50表明域名172-16-1-50.realhostip.com對(duì)應(yīng)的IP地址為172.16.1.50。
如果需要添加多條,按此類似添加,留意realhostip.com后面的那個(gè)不起眼的點(diǎn)(.)。
# vi 172.16.1.arpa
$TTL 1D@ IN SOA realhostip.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ AAAA ::150 PTR 172-16-1-50.realhostip.com.51 PTR 172-16-1-51.realhostip.com.
以上我也添加了兩條記錄,其中50 PTR 172-16-1-50.realhostip.com表明IP地址172.16.1.50對(duì)應(yīng)的
域名為172-16-1-50.realhostip.com。如果要添加多條,按此類似添加,留意realhostip.com后面的那個(gè)不起眼的點(diǎn)(.)。
5. 啟動(dòng)named服務(wù)
#service named start
至此,DNS服務(wù)器端的配置已完成,下面我們稍微配置一下客戶端來(lái)測(cè)試我們的DNS服務(wù)器是否正常工作。
(2) 客戶端配置
操作系統(tǒng):windows和linux都可以,我這里是CentOS 6.4
IP地址:能夠ping通DNS服務(wù)器的IP(172.16.1.4)都可以,我這里是172.16.1.104
作用:測(cè)試DNS服務(wù)器是否正常工作。
1. 安裝bind-utils包,以便能使用nslookup、dig和host工具
yum install bind-utils
2. 修改DNS配置使用我們的DNS服務(wù)器
vi /etc/resolv.conf
nameserver 172.16.1.4nameserver 192.168.13.31nameserver 172.16.1.1
如果是windows客戶端,需要在本地連接屬性里面修改,如下圖:
resolv.conf文件中可能會(huì)有多個(gè)nameserver,必須把我們的DNS服務(wù)器放在所有nameserver的最前面,
這樣當(dāng)需要解析域名時(shí),第一個(gè)使用的就是我們配置的DNS服務(wù)器,其它的都是候選項(xiàng)。
3. 正向解析測(cè)試,使用nslookup命令
#nslookup
> 172-16-1-50.realhostip.comServer: 172.16.1.4Address: 172.16.1.4#53Name: 172-16-1-50.realhostip.comAddress: 172.16.1.50> > 172-16-1-51.realhostip.comServer: 172.16.1.4Address: 172.16.1.4#53Name: 172-16-1-51.realhostip.comAddress: 172.16.1.51>
從結(jié)果可以看到,我們配置的兩個(gè)域名都能成功解析,并且DNS服務(wù)器就是我們配置的那個(gè)服務(wù)器。
4. 反向解析,使用nslookup命令
#nslookup
> > 172.16.1.51Server: 172.16.1.4Address: 172.16.1.4#5351.1.16.172.in-addr.arpa name = 172-16-1-51.realhostip.com.> > > 172.16.1.50Server: 172.16.1.4Address: 172.16.1.4#5350.1.16.172.in-addr.arpa name = 172-16-1-50.realhostip.com.> >
從結(jié)果來(lái)看,可以正確解析我們的IP地址,并且DNS服務(wù)器就是我們配置的那個(gè)服務(wù)器。
5. 查看realhostip.com這個(gè)域名是哪個(gè)DNS服務(wù)器管理的,使用dig命令
# dig -t ns realhostip.com
; <>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <>> -t ns realhostip.com;; global options: +cmd;; Got answer:;; ->>HEADER<- opcode:="" query,="" status:="" noerror,="" id:="" 37964;;="" flags:="" qr="" aa="" rd="" ra;="" query:="" 1,="" answer:="" 1,="" authority:="" 0,="" additional:="" 2;;="" question="" section:;realhostip.com.="" in="" ns;;="" answer="" section:realhostip.com.="" 86400="" in="" ns="" realhostip.com.;;="" additional="" section:realhostip.com.="" 86400="" in="" a="" 172.16.1.4realhostip.com.="" 86400="" in="" aaaa="" ::1;;="" query="" time:="" 1="" msec;;="" server:="" 172.16.1.4#53(172.16.1.4);;="" when:="" wed="" oct="" 23="" 14:15:22="" 2013;;="" msg="" size="" rcvd:="">->
6. 使用dig命令進(jìn)行正向解析
# dig 172-16-1-50.realhostip.com
; <>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <>> 172-16-1-50.realhostip.com;; global options: +cmd;; Got answer:;; ->>HEADER<- opcode:="" query,="" status:="" noerror,="" id:="" 21109;;="" flags:="" qr="" aa="" rd="" ra;="" query:="" 1,="" answer:="" 1,="" authority:="" 1,="" additional:="" 2;;="" question="" section:;172-16-1-50.realhostip.com.="" in="" a;;="" answer="" section:172-16-1-50.realhostip.com.="" 86400="" in="" a="" 172.16.1.50;;="" authority="" section:realhostip.com.="" 86400="" in="" ns="" realhostip.com.;;="" additional="" section:realhostip.com.="" 86400="" in="" a="" 172.16.1.4realhostip.com.="" 86400="" in="" aaaa="" ::1;;="" query="" time:="" 1="" msec;;="" server:="" 172.16.1.4#53(172.16.1.4);;="" when:="" wed="" oct="" 23="" 14:17:57="" 2013;;="" msg="" size="" rcvd:="">->
注意:
windows客戶端上只有nslookup工具。
(3) 相關(guān)資料
[1] http://www.linuxidc.com/Linux/2012-03/56086.htm
[2] http://www.linuxidc.com/Linux/2013-07/87440.htm
[3] http://wenku.baidu.com/view/e7095ad7b14e852458fb57db.html
[4] http://blog.csdn.net/flyoxs/article/details/5940415
[5] http://yuelei.blog.51cto.com/202879/106228
[6] http://yuelei.blog.51cto.com/202879/109657
[7] http://future.blog.51cto.com/26959/90603
[8] http://www.linuxdiyf.com/viewarticle.php?id=16156
[9] http://linux.chinaunix.net/techdoc/install/2007/10/25/970650.shtml