DNS是域名系统(DomainNameSystem)的缩写,是因特网的一项核心服务,它能提供域名与IP地址之间对应关系的转换服务。 这样我们就可以更方便地去访问互联网了,不用去记住那一串IP数字。本文档主要是说明如何把一台CentOS主机配置成一个DNS 服务器,以便能提供域名解析服务。 (1)DNS服务器端配置 操作系统:CentOS6。4 IP地址:172。16。1。4 DNS软件:Bind9。8 测试域名:realhostip。com 作用:主要提供解析realhostip。com域名的服务 1。安装bind yuminstallbind 2。修改etcnamed。conf配置文件 vietcnamed。conf 〔html〕viewplaincopynamed。confProvidedbyRedHatbindpackagetoconfiguretheISCBINDnamed(8)DNSserverasacachingonlynameserver(asalocalhostDNSresolveronly)。Seeusrsharedocbindsampleforexamplenamedconfigurationfiles。 options{listenonport53{any;};开启监听端口53,接受任意IP连接listenonv6port53{::1;};支持IPV6directoryvarnamed;所有的正向反向区域文件都在这个目录下创建dumpfilevarnameddatacachedump。db;statisticsfilevarnameddatanamedstats。txt;memstatisticsfilevarnameddatanamedmemstats。txt;allowquery{0。0。0。00;};允许任意IP查询recursionyes; dnssecenableyes;dnssecvalidationyes;dnsseclookasideauto; PathtoISCDLVkeybindkeysfileetcnamed。iscdlv。key; managedkeysdirectoryvarnameddynamic;}; logging{channeldefaultdebug{filedatanamed。run;severitydynamic;};}; zone。IN{typehint;filenamed。ca;}; includeetcnamed。rfc1912。zones;主要配置文件includeetcnamed。root。key; 3。修改etcnamed。rfc1912。zones文件,添加realhostip。com的正向和反向区域 vietcnamed。rfc1912。zones 〔html〕viewplaincopynamed。rfc1912。zones:ProvidedbyRedHatcachingnameserverpackageISCBINDnamedzoneconfigurationforzonesrecommendedbyRFC1912section4。1:localhostTLDsandaddresszonesand(c)2007RWFranksSeeusrsharedocbindsampleforexamplenamedconfigurationfiles。 zonelocalhost。localdomainIN{typemaster;filenamed。localhost;allowupdate{none;};}; zonelocalhostIN{typemaster;filenamed。localhost;allowupdate{none;};}; zone1。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。arpaIN{typemaster;filenamed。loopback;allowupdate{none;};}; zone1。0。0。127。inaddr。arpaIN{typemaster;filenamed。loopback;allowupdate{none;};}; zone0。inaddr。arpaIN{typemaster;filenamed。empty;allowupdate{none;};}; realhostip。com的正向区域zonerealhostip。comIN{typemaster;filenamed。realhostip。com;allowupdate{none;};};realhostip。com的反向区域zone1。16。172。inaddr。arpaIN{typemaster;file172。16。1。arpa;allowupdate{none;};}; 这里需要注意的是,添加反向区域时,网络号要反过来写(网络号是IP地址与子网掩码进行与操作后的结果)。 例如,我现在配置的网络号172。16。1这个网段,那么它的反向区域是1。16。172。inaddr。arpa。区域里面的file 字段表明解析时的数据来源文件,接下来我们去创建named。realhostip。com和172。16。1。arpa文件。 4。创建正向和反向区域资源文件 在配置named。conf时,指明的资源文件目录是varnamed,故先进入该目录。 cdvarnamed vinamed。realhostip。com 〔html〕viewplaincopyTTL1DINSOArealhostip。com。rname。invalid。(0;serial1D;refresh1H;retry1W;expire3H);minimumNSA127。0。0。1AAAA::117216150INA172。16。1。5017216151INA172。16。1。51 以上我添加了两条记录,其中17216150INA172。16。1。50表明域名17216150。realhostip。com对应的IP地址为172。16。1。50。 如果需要添加多条,按此类似添加,留意realhostip。com后面的那个不起眼的点(。)。 vi172。16。1。arpa 〔html〕viewplaincopyTTL1DINSOArealhostip。com。rname。invalid。(0;serial1D;refresh1H;retry1W;expire3H);minimumNSAAAA::150PTR17216150。realhostip。com。51PTR17216151。realhostip。com。 以上我也添加了两条记录,其中50PTR17216150。realhostip。com表明IP地址172。16。1。50对应的 域名为17216150。realhostip。com。如果要添加多条,按此类似添加,留意realhostip。com后面的那个不起眼的点(。)。 5。启动named服务 servicenamedstart 至此,DNS服务器端的配置已完成,下面我们稍微配置一下客户端来测试我们的DNS服务器是否正常工作。 (2)客户端配置 操作系统:windows和linux都可以,我这里是CentOS6。4 IP地址:能够ping通DNS服务器的IP(172。16。1。4)都可以,我这里是172。16。1。104 作用:测试DNS服务器是否正常工作。 1。安装bindutils包,以便能使用nslookup、dig和host工具 yuminstallbindutils 2。修改DNS配置使用我们的DNS服务器 vietcresolv。conf 〔html〕viewplaincopynameserver172。16。1。4nameserver192。168。13。31nameserver172。16。1。1 如果是windows客户端,需要在本地连接属性里面修改,如下图: resolv。conf文件中可能会有多个nameserver,必须把我们的DNS服务器放在所有nameserver的最前面, 这样当需要解析域名时,第一个使用的就是我们配置的DNS服务器,其它的都是候选项。 3。正向解析测试,使用nslookup命令 nslookup 〔html〕viewplaincopy17216150。realhostip。comServer:172。16。1。4Address:172。16。1。453 Name:17216150。realhostip。comAddress:172。16。1。50 17216151。realhostip。comServer:172。16。1。4Address:172。16。1。453 Name:17216151。realhostip。comAddress:172。16。1。51 从结果可以看到,我们配置的两个域名都能成功解析,并且DNS服务器就是我们配置的那个服务器。 4。反向解析,使用nslookup命令 nslookup 〔html〕viewplaincopy172。16。1。51Server:172。16。1。4Address:172。16。1。453 51。1。16。172。inaddr。arpaname17216151。realhostip。com。172。16。1。50Server:172。16。1。4Address:172。16。1。453 50。1。16。172。inaddr。arpaname17216150。realhostip。com。 从结果来看,可以正确解析我们的IP地址,并且DNS服务器就是我们配置的那个服务器。 5。查看realhostip。com这个域名是哪个DNS服务器管理的,使用dig命令 digtnsrealhostip。com 〔html〕viewplaincopy;DiG9。8。2rc1RedHat9。8。20。17。rc1。el64。6tnsrealhostip。com;;globaloptions:cmd;;Gotanswer:;;HEADERopcode:QUERY,status:NOERROR,id:37964;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:0,ADDITIONAL:2 ;;QUESTIONSECTION:;realhostip。com。INNS ;;ANSWERSECTION:realhostip。com。86400INNSrealhostip。com。 ;;ADDITIONALSECTION:realhostip。com。86400INA172。16。1。4realhostip。com。86400INAAAA::1 ;;Querytime:1msec;;SERVER:172。16。1。453(172。16。1。4);;WHEN:WedOct2314:15:222013;;MSGSIZErcvd:90 6。使用dig命令进行正向解析 dig17216150。realhostip。com 〔html〕viewplaincopy;DiG9。8。2rc1RedHat9。8。20。17。rc1。el64。617216150。realhostip。com;;globaloptions:cmd;;Gotanswer:;;HEADERopcode:QUERY,status:NOERROR,id:21109;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:1,ADDITIONAL:2 ;;QUESTIONSECTION:;17216150。realhostip。com。INA ;;ANSWERSECTION:17216150。realhostip。com。86400INA172。16。1。50 ;;AUTHORITYSECTION:realhostip。com。86400INNSrealhostip。com。 ;;ADDITIONALSECTION:realhostip。com。86400INA172。16。1。4realhostip。com。86400INAAAA::1 ;;Querytime:1msec;;SERVER:172。16。1。453(172。16。1。4);;WHEN:WedOct2314:17:572013;;MSGSIZErcvd:118 注意: windows客户端上只有nslookup工具。