linux下DNS服务器的搭建 自己搭建dns服务器

本文出处http://cnsky.blog.51cto.com/2474423/433157一、概念介绍1、DNSDNS(domain name system)域名系统,DNS的主要功能就是将主机名称转换成IP地址。2、FQDNFQDN(fully qualified domainname)完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。FQDN=hostname.domainname3、正解/反解正解就是域名解析为IP地址,反解就是IP地址解析为域名。4、DNS查询的过程当客户端程序要通过一个主机名称来访问网络中的一台主机时,它首先要得到这个主机名称所对应的IP地址,因为IP数据报中允许放置的是目地主机的IP地址,而不是主机名称。可以从本机的hosts文件中得到主机名称所对应的IP地址,但如果hosts文件不能解析该主机名称时,只能通过向客户机所设定DNS服务器进行查询了。在linux系统中,可以设置hosts和dns的使用次序。可以以不同的方式对DNS查询进行解析。第一种是本地解析,就是客户端可以使用缓存信息就地应答,这些缓存信息是通过以前的查询获得的;第二种是直接解析,就是直接由所设定的DNS服务器解析,使用的是该DNS服务器的资源记录缓存或者其权威回答(如果所查询的域名是该服务器管辖的);第三种是递归查询,即设定的DNS服务器代表客户端向其他DNS服务器查询,以便完全解析该名称,并将结果返回至客户端。第四种是迭代查询,即设定的DNS服务器向客户端返回一个可以解析该域名的其他DNS服务器,客户端再继续向其他DNS服务器查询。详细介绍:http://book.51cto.com/art/200912/169285.htm二、DNS搭建环境操作系统suse10安装包 使用的是系统自带的安装包bind-chrootenv-9.3.4-1.23#将bind主程序关在dns的根目录下bind-utils-9.3.4-1.23#客户端搜索主机的相关指令bind-9.3.4-1.23#DNS服务器主程序bind-doc-9.3.4-1.23bind-libs-9.3.4-1.23bind-devel-9.3.4-1.23bind-chrootenv的作用:chroot代表的是change toroot,root代表的是根目录。早期的BIND默认将程序启动在/var/named中,但是该程序可以在根目录中到处转移,因此若BIND程序有问题,则该程序会造成整个系统的危害,为了避免这个问题,所以将某个目录指定为BIND程序的跟目录,由于是根目录,所以BIND程序不能离开该目录。如果该程序被攻击,最还的情况也就是在某个特定目录下的文件被破坏而已。Suse10默认将BIND锁定在/var/lib/named目录中。三、DNS安装与相关文件1、安装rpm -ivh bind-chrootenv-9.3.4-1.23.i586.rpmrpm -ivh bind-devel-9.3.4-1.23.i586.rpmrpm -ivh bind-9.3.4-1.23.i586.rpmrpm -ivh bind-doc-9.3.4-1.23.i586.rpmrpm -ivh bind-libs-9.3.4-1.23.i586.rpmrpm -ivh bind-utils-9.3.4-1.23.i586.rpm2、BIND的默认路径设置与chrootBIND这个DNS服务器的设置需要有以下的文件:(1)配置文件:主要规范主机的设置、zone file的所在、权限的设置等。(2)数据库文件:记录主机名称与IP对应等。Suse10的默认目录是这样的:(1)/etc/named.conf这是配置文件。(2)/etc/sysconfig/named有该文件控制是否启动chroot及额外的参数。(3)/var/lib/named数据库文件默认放置的目录。(4)/var/run/namednamed程序执行时默认将pid-file放置在此目录。出入系统安全性方面的考虑,suse10已经自动将BIND的相关程序chroot了。BIND的相关程序所需要的相关数据会放在以下的目录中:(1)/var/lib/named/etc/named.conf配置文件(2)/var/lib/named/var/lib/named数据库文件默认放置的目录(3)/var/lib/name/var/run/namedpid-file目录Suse10已经做好了一切链接对应,因此依旧可以使用/etc/named.conf设置DNS。依旧可以在/var/lib/named目录下修改数据库文件。3、DNS服务器的类型DNS服务器的类型可分为三类:masterslavecache-only(1)Master这种类型的DNS本身还有域名的配置文件(就是有zone),这个配置文件就是设置正解或者反解的“数据库”,所以它本身具有提供internet查询所需要的数据。(2)SlaveSlave主机需要和master主机搭配使用,slave主机本身不需要配置数据库文件,需要下载master上的数据库文件。(3)Cache-only这种类型的DNS主机没有自己的数据库,仅用于帮助client端向外部DNS主机请求数据。四、DNS服务器配置1、DNS服务器配置环境(1)配置的是内部DNS服务器,因此不需要外部授权;(2)为了保证DNS服务器的可用性,需要配置为master/slave架构;Master IP:10.10.0.200slave ip:10.10.1.3(3)Client需要访问外部地址,若每次都要到根DNS服务器查询,效率太慢,因此要提供forward功能。2、Master服务器配置(1)配置文件options{#定义整个DNS服务器的相关环境directory "/var/lib/named";dump-file "/var/log/named_dump.db";statistics-file "/var/log/named.stats";forwarders{ 202.106.0.20; 202.96.134.133;};#转发功能allow-query { any;};#允许所有client查询allow-recursion { localnets; localhost;};notify no;};zone "." in{#关于root(.)的设置typehint;#特殊的类别,专给root(.)使用file"root.hint";#文件名的定义};zone "sxit.com.cn" in {#规范了sxit.com.cn的域typemaster;#master DNSfile"sxit.com.cn.zone";#数据库文件名allow-transfer { 10.10.1.3;};#允许slave DNS下载数据库文件};zone "localhost" in{type master;file "localhost.zone";};zone "10.10.in-addr.arpa" in{#规范了sxit.com.cn的反解数据库文件type master;file "10.10.zone";allow-transfer { 10.10.1.3; };};zone "0.0.127.in-addr.arpa" in {type master;file "127.0.0.zone";};(2)数据库文件正反解得数据库文件可以简单那的分为以下几部分观察:a 关于本领域的基础设置方面。例如缓存记忆时间(TTL)、域名(ORIGIN)等。b 关于master/slave的认证方面(SOA)c 关于本领域的域名服务器所在主机名称与IP对应(NS、A、PTR)d 其他正反解相关的资源记录(RR)正解数据库文件 sxit.com.cn.zone$TTL 1W#设置外部DNS服务器对您的DNS领域进行查询时,记录会放置在对方DNS服务器内的时间@IN SOA@ root(#@代表的zone的意思,是由/etc/named.conf定义的,这里zone就是sxit.com.cn;root为管理员邮箱,代表root@sxit.com.cn42; serial (d. adams) #序号,slave更新数据库文件时使用2D; refresh#slave 服务器更新时间4H;retry#slave 更新失败,重试时间6W;expiry#retry多久后宣告失败,不在更新1W); minimum#可视为TTL@INNSwww.sxit.com.cn.#NS记录 注意这个NS记录必须有wwwINA10.10.0.200#A记录oaINCNAMEwww#CNAME(别名)记录bbsINCNAMEwwwftpINA10.10.3.240@IN MX10mail#域邮件服务器 MX记录mail INA10.10.3.1smtp INCNAMEmailpop3 INCNAMEmail反解数据库文件$TTL 1W@INSOAlocalhost. root.localhost.(42; serial (d. adams)2D; refresh4H; retry6W; expiry1W); minimum@INNSdns.sxit.com.cn.72.0 INPTRdns.sxit.com.cn.3.1INPTRwww.sxit.com.cn.1.3INPTRmail.sxit.com.cn.注意:正、反解数据库文件中的“.”,这个很容易出错,加“.”表示完整的主机名称,即hostname+domainname;如果没有加“.”,表示该名称仅为hostname。(3)启动服务Service named start查看日志 tail -20 /var/log/messageNov 12 11:41:13 suse-web named[20753]: starting BIND 9.3.4 -t/var/lib/named -u namedNov 12 11:41:13 suse-web named[20753]: found 1 CPU, using 1worker threadNov 12 11:41:13 suse-web named[20753]: loading configurationfrom '/etc/named.conf'Nov 12 11:41:13 suse-web named[20753]: listening on IPv6interfaces, port 53Nov 12 11:41:13 suse-web named[20753]: listening on IPv4interface lo, 127.0.0.1#53Nov 12 11:41:13 suse-web named[20753]: listening on IPv4interface eth1, 10.10.0.200#53Nov 12 11:41:14 suse-web named[20753]: command channellistening on 127.0.0.1#953Nov 12 11:41:14 suse-web named[20753]: command channellistening on ::1#953Nov 12 11:41:14 suse-web named[20753]: zone10.10.in-addr.arpa/IN: loaded serial 42Nov 12 11:41:14 suse-web named[20753]: zone0.0.127.in-addr.arpa/IN: loaded serial 42Nov 12 11:41:14 suse-web named[20753]: zone sxit.com.cn/IN:loaded serial 43Nov 12 11:41:14 suse-web named[20753]: zone localhost/IN:loaded serial 42Nov 12 11:41:14 suse-web named[20753]: running查看服务端口suse-web:/var/lib/named # netstat -na |grep :53tcp0010.10.0.200:530.0.0.0:*LISTENtcp00127.0.0.1:530.0.0.0:*LISTENtcp00:::53:::*LISTENudp0010.10.0.200:530.0.0.0:*udp00127.0.0.1:530.0.0.0:*udp00:::53:::*由日志和端口可知,服务正常启动了。上边顺利启动的情况,如果出现问题怎么办?通常出现问题的原因如下:a语法设置错误:这个问题很好解决,因为在/var/log/message中有详细的说明,按照内容去修订即可。在服务启动时也会出现错误提示。b逻辑设置错误:这个问题解决起来比较困难,因为它主要是在你设置DNS主机的时候,对所产生的问题考虑不周全。例如忘记加上“.”,系统不会显示错误信息,但会造成查询的误判,而MX设置的主机名称错误时,也不会显示错误信息,但会造成邮件服务器收不到信的问题,这些错误都需要很详细的DNSclient的测试才能知道问题的所在。如# service named restartShutting down name serverBINDdoneStarting name server BIND startproc:exitstatus of parent of /usr/sbin/named: 1Failed查看日志Nov 12 12:24:40 suse-web named[25568]: loading configurationfrom '/etc/named.conf'Nov 12 12:24:40 suse-web named[25568]: /etc/named.conf:51:missing ';' before 'listen-on-v6'可发现错误时 在listen-on-v6前面 少个 “;”。修改即可。3、Slave服务器配置(1)配置文件zone "sxit.com.cn" in{#规范了sxit.com.cn域typeslave;#slave DNSfile"sxit.com.cn.zone";#区域数据库文件名masters { 10.10.0.200;}; #masterDNS IP};zone "10.10.in-addr.arpa" in {type slave;file "10.10.zone";masters { 10.10.0.200; };其他和masterDNS配置相同,不需要配置数据库文件。(2)启动服务Service named start查看日志:Nov 11 15:55:04 suse-web2 named[29211]: found 1 CPU, using 1worker threadNov 11 15:55:04 suse-web2 named[29211]: loading configurationfrom '/etc/named.conf'Nov 11 15:55:04 suse-web2 named[29211]: listening on IPv6interfaces, port 53Nov 11 15:55:04 suse-web2 named[29211]: listening on IPv4interface lo, 127.0.0.1#53Nov 11 15:55:04 suse-web2 named[29211]: listening on IPv4interface eth0, 10.10.1.3#53Nov 11 15:55:04 suse-web2 named[29211]: command channellistening on 127.0.0.1#953Nov 11 15:55:04 suse-web2 named[29211]: command channellistening on ::1#953Nov 11 15:55:04 suse-web2 named[29211]: zone0.0.127.in-addr.arpa/IN: loaded serial 42Nov 11 15:55:04 suse-web2 named[29211]: zone localhost/IN:loaded serial 42Nov 11 15:55:04 suse-web2 named[29211]: runningNov 11 15:55:04 suse-web2 named[29211]: zone sxit.com.cn/IN:Transfer started.Nov 11 15:55:04 suse-web2 named[29211]: transfer of'sxit.com.cn/IN' from 10.10.0.200#53: connected using10.10.1.3#8598Nov 11 15:55:04 suse-web2 named[29211]: dumping master file:tmp-1EzbmRBqxu: open: permission deniedNov 11 15:55:04 suse-web2 named[29211]: transfer of'sxit.com.cn/IN' from 10.10.0.200#53: failed while receivingresponses: permission deniedNov 11 15:55:04 suse-web2 named[29211]: transfer of'sxit.com.cn/IN' from 10.10.0.200#53: end of transferNov 11 15:55:05 suse-web2 named[29211]: zone10.10.in-addr.arpa/IN: Transfer started.Nov 11 15:55:05 suse-web2 named[29211]: transfer of'10.10.in-addr.arpa/IN' from 10.10.0.200#53: connected using10.10.1.3#58127Nov 11 15:55:05 suse-web2 named[29211]: dumping master file:tmp-7j8ABKiol2: open: permission deniedNov 11 15:55:05 suse-web2 named[29211]: transfer of'10.10.in-addr.arpa/IN' from 10.10.0.200#53: failed while receivingresponses: permission deniedNov 11 15:55:05 suse-web2 named[29211]: transfer of'10.10.in-addr.arpa/IN' from 10.10.0.200#53: end of transfer查看日志可发现,DNS启动成功,但是数据文件传输失败,原因为 permission denied。可知是权限设置问题。/var/lib/named这个目录named用户一定要有写权限的。修改权限chown -R named:named /var/lib/named/chmod -R 750 /var/lib/named/重启服务service named restart查看日志Nov 11 16:10:01 suse-web2 /usr/sbin/cron[29585]: (root) CMD(/home/sxit/synuser/SynUser.sh >>/home/sxit/synuser/synuser.log)Nov 11 16:13:40 suse-web2 named[29705]: starting BIND 9.3.4 -t/var/lib/named -u namedNov 11 16:13:40 suse-web2 named[29705]: found 1 CPU, using 1worker threadNov 11 16:13:40 suse-web2 named[29705]: loading configurationfrom '/etc/named.conf'Nov 11 16:13:40 suse-web2 named[29705]: listening on IPv6interfaces, port 53Nov 11 16:13:40 suse-web2 named[29705]: listening on IPv4interface lo, 127.0.0.1#53Nov 11 16:13:40 suse-web2 named[29705]: listening on IPv4interface eth0, 10.10.1.3#53Nov 11 16:13:40 suse-web2 named[29705]: command channellistening on 127.0.0.1#953Nov 11 16:13:40 suse-web2 named[29705]: command channellistening on ::1#953Nov 11 16:13:40 suse-web2 named[29705]: zone0.0.127.in-addr.arpa/IN: loaded serial 42Nov 11 16:13:40 suse-web2 named[29705]: zone localhost/IN:loaded serial 42Nov 11 16:13:40 suse-web2 named[29705]: runningNov 11 16:13:40 suse-web2 named[29705]: zone sxit.com.cn/IN:Transfer started.Nov 11 16:13:40 suse-web2 named[29705]: transfer of'sxit.com.cn/IN' from 10.10.0.200#53: connected using10.10.1.3#55804Nov 11 16:13:40 suse-web2 named[29705]: zone sxit.com.cn/IN:transferred serial 42Nov 11 16:13:40 suse-web2 named[29705]: transfer of'sxit.com.cn/IN' from 10.10.0.200#53: end of transferNov 11 16:13:40 suse-web2 named[29705]: zone10.10.in-addr.arpa/IN: Transfer started.Nov 11 16:13:40 suse-web2 named[29705]: transfer of'10.10.in-addr.arpa/IN' from 10.10.0.200#53: connected using10.10.1.3#60659Nov 11 16:13:40 suse-web2 named[29705]: zone10.10.in-addr.arpa/IN: transferred serial 42Nov 11 16:13:40 suse-web2 named[29705]: transfer of'10.10.in-addr.arpa/IN' from 10.10.0.200#53: end of transfer可以看到传输成功了。此时查看/var/lib/named目录会发现存在sxit.com.cn.zone和10.10.zone文件,内容和masterDNS相同。五、测试DNS服务器1、修改client端的DNS配置修改/etc/resolv.confnameserver10.10.0.200nameserver10.10.1.32、使用DNS查询指令测试(host、nslookup)(1)hosthost[-a][FQDN][server]#-a列出该主机所有的相关信息。host-l[domain] [server]#-l列出该domain所管理的所有主机名称的对应数据。如:host -a www.sxit.com.cnTrying "www.sxit.com.cn";;->>HEADER<<-opcode: QUERY, status: NOERROR, id: 30204;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1,ADDITIONAL: 0;; QUESTION SECTION:;www.sxit.com.cn.INANY;; ANSWER SECTION:www.sxit.com.cn.604800INA10.10.0.200;; AUTHORITY SECTION:sxit.com.cn.604800INNSwww.sxit.com.cn.Received 63 bytes from 10.10.0.200#53 in 0 mshost -lsxit.com.cnsxit.com.cn name server www.sxit.com.cn.ftp.sxit.com.cn has address 10.10.3.240mail.sxit.com.cn has address 10.10.3.1www.sxit.com.cn has address 10.10.0.200注意host –l 命令在10.10.0.200上使用时,出现Host sxit.com.cn not found:5(REFUSED); Transfer failed. 的错误,在10.10.1.3上使用时,正常,出现上边内容,原因在那呢?还记得masterDNS上配置的这个么 allow-transfer { 10.10.1.3; };只有domain设置的允许allow-transfer ,才能列出该domain所管理的所有主机名称的对应数据。(2)nslookup# nslookup> www.sxit.com.cnServer:10.10.0.200Address:10.10.0.200#53Name:www.sxit.com.cnAddress: 10.10.0.200> mail.sxit.com.cnServer:10.10.0.200Address:10.10.0.200#53Name:mail.sxit.com.cnAddress: 10.10.3.1> smtp.sxit.com.cnServer:10.10.0.200Address:10.10.0.200#53smtp.sxit.com.cncanonical name = mail.sxit.com.cn.Name:mail.sxit.com.cnAddress: 10.10.3.1> 10.10.3.1Server:10.10.0.200Address:10.10.0.200#531.3.10.10.in-addr.arpaname =mail.sxit.com.cn.测试可知master DNS服务器可用。停掉master DNS,测试slave DNS ,测试过程同上。DNS服务器搭建完成。出处http://cnsky.blog.51cto.com/2474423/433157

linux下DNS服务器的搭建 自己搭建dns服务器

  

爱华网本文地址 » http://www.aihuau.com/a/25101010/27162.html

更多阅读

Windows 7下VPN服务器架设攻略 ipsec vpn服务器架设

Windows 7下VPN服务器架设攻略——简介 由于工作经常出差的关系常常移动办公,因此资料的传递、与公司信息的及时交流或是累了想在异地打开公司或家里的电脑看看电影等等应用显得很头疼。这方面的应用也就是说要通过INTERNET进行安全

LINUX下数据恢复 linux数据恢复工具

LINUX下数据恢复——简介数码照片进入每家每户,但在硬盘、U盘等逻辑结构容易损坏,可是损坏了怎么办呢,或者误删除了照片从文件夹里看不到了,其它数据还在,参照以下一步步可以帮您挽回您丢失的照片LINUX下数据恢复——方法/步骤LINUX下数

转 Linux下,使用cue拆分flac文件并转换mp3 flac生成cue

Linux下,使用cue拆分flac文件并转换mp3最近flac格式很流行。虽然它有这样那样的好处。但是很多专辑都被做成了一个大flac文件。这使得使用播放器播放起来不太方便。而且,很多随身听也不支持这种格式。在Linux下,通过几个程序的协作就可

在Linux下使用ipmsg飞鸽传书 飞鸽传书 linux 64

2007年03月31日 16:01ipmsg是个不错的局域网通讯软件,非常小巧,无需服务器端,使用非常方便。在Linux下使用需要自行编译。在官方网站下载源码:http://www.ipmsg.org/index.html.en解压后需要修改源码以支持中文:文件:src/codeset.c原文:#de

声明:《linux下DNS服务器的搭建 自己搭建dns服务器》为网友水墨泪分享!如侵犯到您的合法权益请联系我们删除