DNS不能改,我可以自己搭建DNSmaven服务器仓库搭建么?

用户名:zuzhou
文章数:79
评论数:72
访问量:168859
注册日期:
阅读量:1297
阅读量:3317
阅读量:582263
阅读量:466947
51CTO推荐博文
DNS概述DNS 为Domain NameSystem(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。我们平时访问网站比如我们只需要记住这个域名就可以访问到远程的服务器了,但实际上在我们向远程输入一个域名的时候,是有一个把域名转化为IP的过程,这个过程其实就是DNS服务器在起作用。DNS的工作流程假如我们想解析这个域名,首先浏览器将调用本地stub resolver解析器(存根解析器)会试图查看本地host文件,查看此域名有没有对应的IP地址如果没有则向DNS服务器发起查询请求,经过DNS查询,如果发现不是自己负责的区域则向上找根,根收到请求之后,返回查找答案则去查找com,com返回答案则去查找输入的域名服务器,返回的答案则先放入存根服务器再返回给浏览器,这时才可以跟真实服务器进行交互。DNS返回结果可以缓存,所以当存根解析器先查找本地DNS缓存,如果没有则 再去找与本地主机递归的DNS服务器,如此服务器发现曾经解析过此域名则用缓存直接响应,如果没有缓存则查询自己负责的域,如果是则将权威答案返回,如果不是自己负责的域则直接迭代查询授权是自上而下的 上级知道下级的存在而下级并不知道上级在什么地方子域授权记录:.com只需要在自己的机构上面注册域名即在自己服务器上建立一条NS记录,明确说明此主机有一A记录并追加IP地址1.根域服务器的地址、位置、IP?A INTERNIC.NET(美国,弗吉尼亚州) 198.41.0.4? B 美国信息科学研究所(美国,加利弗尼亚州) 128.9.0.107? C PSINet公司(美国,弗吉尼亚州) 192.33.4.12? D 马里兰大学(美国马里兰州) 128.8.10.90? E 美国航空航天管理局(美国加利弗尼亚州) 192.203.230.10? F 因特网软件联盟(美国加利弗尼亚州) 192.5.5.241? G 美国国防部网络信息中心(美国弗吉尼亚州) 192.112.36.4? H 美国陆军研究所(美国马里兰州) 128.63.2.53? I Autonomica公司(瑞典,斯德哥尔摩) 192.36.148.17? J VeriSign公司(美国,弗吉尼亚州) 192.58.128.30? K RIPE NCC(英国,伦敦) 193.0.14.129? L IANA(美国,弗吉尼亚州) 198.32.64.12? M WIDE Project(日本,东京) 202.12.27.332.域名?域名大致分为以下几类:(1)顶级域:中间由点号分隔开,最右边的那个词称为顶级(2)组织域:net com org mil edu gov cc(3)国家域:jp tw hk iq cn 等*反向域:通过FQDN来解析为IP地址?DNS解析类型:(1)正向解析:正向解析是指域名到IP地址的解析过程。(2)反向解析:反向解析是从IP地址到域名的解析过程,反向解析的作用为服务器的身份验证。通常如果一个企业想使用域名在公网使用时需申请顶级域,如 ,启动
为FQDN 而域名则是.3.资源记录SOA资源记录NS资源记录A资源记录PTR资源记录CNAME资源记录MX资源记录dig命令在部署Bind服务之前先来了解一下常用域名解析命令,这里最常用的就是dig和nslookup,首先来熟悉一下dig命令:dig命令是一个用于询问 DNS的灵活的工具。它执行 DNS 搜索,显示从受请求的域名服务器返回的答复。常规用法:dig-t &指定资源记录类型&&名称& &@server-ip +trace如下所示:# +trace参数表示查看整个解析的过程[root@test ~]# dig -t NS
+trace;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -tNS
+trace;;global options: +cmd#可以看到请求会先去找根DNS服务器,如下所示. & & & & & & 518281 & IN & NS & c.root-servers.net.. & & & & & & 518281 & IN & NS & l.root-servers.net.. & & & & & & 518281 & IN & NS & a.root-servers.net.. & & & & & & 518281 & IN & NS & j.root-servers.net.. & & & & & & 518281 & IN & NS & g.root-servers.net.. & & & & & & 518281 & IN & NS & k.root-servers.net.. & & & & & & 518281 & IN & NS & e.root-servers.net.. & & & & & & 518281 & IN & NS & b.root-servers.net.. & & & & & & 518281 & IN & NS & i.root-servers.net.. & & & & & & 518281 & IN & NS & f.root-servers.net.. & & & & & & 518281 & IN & NS & m.root-servers.net.. & & & & & & 518281 & IN & NS & h.root-servers.net.. & & & & & & 518281 & IN & NS & d.root-servers.net.;;Received 512 bytes from 219.141.136.10#53(219.141.136.10) in 2299 ms#DNS回复请求,指向.com服务器,所以用户要去向com服务器发送查询请求com. & & & & &172800 & IN & NS & a.gtld-servers.net.com. & & & & &172800 & IN & NS & b.gtld-servers.net.com. & & & & &172800 & IN & NS & c.gtld-servers.net.com. & & & & &172800 & IN & NS & d.gtld-servers.net.com. & & & & &172800 & IN & NS & e.gtld-servers.net.com. & & & & &172800 & IN & NS & f.gtld-servers.net.com. & & & & &172800 & IN & NS & g.gtld-servers.net.com. & & & & &172800 & IN & NS & h.gtld-servers.net.com. & & & & &172800 & IN & NS & i.gtld-servers.net.com. & & & & &172800 & IN & NS & j.gtld-servers.net.com. & & & & &172800 & IN & NS & k.gtld-servers.net.com. & & & & &172800 & IN & NS & l.gtld-servers.net.com. & & & & &172800 & IN & NS & m.gtld-servers.net.#由此服务器告诉用户由此台主机进行解析;;Received 491 bytes from 193.0.14.129#53(193.0.14.129) in6851 ms. & & & & 172800 & IN & NS & .. & & & & 172800 & IN & NS & .. & & & & 172800 & IN & NS & .. & & & & 172800 & IN & NS & .. & & & & 172800 & IN & NS & .;;Received 201 bytes from 192.48.79.30#53(192.48.79.30) in 111 ms#百度服务器如下,则挑选一台为用户解析. & & & & 1200 IN & CNAME & &www... & & &1200 IN & NS & ns4... & & &1200 IN & NS & ns5... & & &1200 IN & NS & ns1... & & &1200 IN & NS & ns3... & & &1200 IN & NS & ns2..;;Received 228 bytes from 202.108.22.220#53(202.108.22.220) in 30 ms2.查看其域的NS记录[root@test~]# dig -t NS
;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -tNS ;;global options: +cmd;;Got answer:;;-&&HEADER&&- opcode: QUERY, status: NOERROR, id: 48823;;flags: QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0;;QUESTION SECTION:;. & & & & & & IN & NS;;ANSWER SECTION:. & & & & 502 &IN & CNAME & &www..;;AUTHORITY SECTION:. & & &600 &IN & SOA &ns1..baidu_dns_.
5 5 ;;Query time: 5 msec;;SERVER: 219.141.136.10#53(219.141.136.10);;WHEN: Thu Dec 12 01:12:27 2013;;MSG SIZE &rcvd: 115常用命令参数还包括:dig-x ip @server-ipdig-t axfr zone & & & & & & & & #验证增量区域dig-t ixfr zone & 之后会在后面一一出现Bind服务Bind是BerkeleyInternet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Bind原本是美国DARPA资助伯克里大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上绝大多数的DNS服务器有都是用Bind来架设的。Bind经历了第4版、第8版和最新的第9版,第8版漏洞百出因此第9版修正了以前版本的许多错误,并提升了执行时的效能。其bind名称解析库位于 /var/named/文本文件:只能包含资源记录和宏定义 每一行称为一个资源记录资源记录有类型:?FQDN: & & & & & & & &ip将主机名解析为ip 称为A记录(IPV4),AAA记录(IPV6)?Domain: & & & & & & &DNS Server NS记录 又被称为nameserver ?Domain: & & & & & & & MasterDNS:明确说明主DNS服务器是谁 &SOA 定义主辅之间数据如何同步,也说明主服务器对应的地址是什么?FQDN: & & & & & & & & FQDN:CNAME(正式名称)?IP: & & & & & & & & &FQDN : PTR 指针记录?Domain: & & & & & & & &Mail Server:MX &有优先级:0-99各资源类型其名称有要求:一般而言其名称必须是当前区域的名称,如下所示SOA: & & & & zone NS: & & & & & zoneA: & & & & & &FQDNCNAME: & & & &FQDNFTR: & & & & &反向FQDN (RerversIP.in-addr.arpa.)而各资源记录类型其value有要求:SOA:主DNS服务器的FQDNNS:对应DNS服务器的FQDNA: & & & & & IP地址PTR: & & & & FQDNMX: & & & & & zone1.Bind配置文件初探:[root@test~]# cat /var/.zoneSOA: & & zone ttl &IN & & & FQDN & & & & &admin_mailbox ()版本号, & &;可使用日期标示(+1) & & & & & &2H(小时) & ;刷新时间 refreshtime,通知(notify) & &#主服务器通知只通知给本区域解析库中定义了NS记录的所有主机 & & & & & &5M(分钟) & ;重试时间,trtry time & & & & & &7d(天) & & ;过期时间,expiretime & & & & & &1d & & & & &;否定答案的ttl(缓存时间))某一条记录的后条记录:zone & & IN & NS & . &#如果不写zone则默认使用上一条的zone名称#还可以用@来标示zone2.安装Bdind[root@test~]# yum install bind#安装完成后会生成以下配置文件,这里我们需要了解以下3个配置文件,为最常用配置文件[root@testnetwork-scripts]# rpm -qc bind /etc/logrotate.d/named/etc/named.conf & & & & & & & & & & & & & #主配置文件/etc/named.iscdlv.key & & & & & & & & & & /etc/named.rfc1912.zones & & & & & & & & &#事先定义好区域/etc/named.root.key & & & & & & & & & & & #事物签名/etc/rndc.conf/etc/rndc.key/etc/sysconfig/named/var/named/named.ca/var/named/named.empty/var/named/named.localhost/var/named/named.loopback#安装完named会自动创建用户named系统用户[root@test~]# grep name /etc/passwdnamed:x:25:25:Named:/var/named:/sbin/nologin3.服务配置文件(1)主配置文件bind的主配置文件位于/etc/named.conf,其主配置文件主要分为3个区域,分别为:options & & & & & & & & & & & & & & #定义区域的全局配置,所有配置都生效logging & & & & & & & & & & & & & & #定义日志zone & & & & & & & & & & & & & & & &#定义区域每个语句都要使用分号结尾,否则视为语法错误(2)定义加载配置的文件include"/etc/named.rfc1912.zones";include"/etc/named.root.key"; &(3)初次启动bind启动bind之前首先编辑/etc/named.conf[root@test~]# vim /etc/named.conf将以下参数注释:注释,此意为需要监听的ip地址,将其注释// & & &listen-on port 53 { 127.0.0.1; };// & & &listen-on-v6 port 53 { ::1; };// & & &allow-query & & { };保存退出并且启动named[root@test~]# /etc/init.d/named startGenerating/etc/rndc.key: & & & & & & & & & & &#第一次启动会生成rndc.key文件,耐心等待即可查看是否启动监听端口,dns服务TCP和UDP协议的53端口[root@test~]# netstat -lntup | grep 53tcp & & & &0 & & 0 172.23.215.49:53 & & & & & 0.0.0.0:* & & & & & & & & & LISTEN & & &1794/named & & & & &tcp & & & &0 & & 0 10.0.10.60:53 & & & & & & &0.0.0.0:* & & & & & & & & & LISTEN & & &1794/named & & & & &tcp & & & &0 & & 0 127.0.0.1:53 & & & & & & & 0.0.0.0:* & & & & & & & & & LISTEN & & &1794/named & & & & &tcp & & & &0 & & 0 127.0.0.1:953 & & & & & & & 0.0.0.0:* & & & & & & & & & LISTEN & & &1794/named & & & & &tcp & & & &0 & & 0 ::1:953 & & & & & & & & & &:::* & & & & & & & & & & & &LISTEN & & &1794/named & & & & &udp & & & &0 & & 0 172.23.215.49:53 & & & & & 0.0.0.0:* & & & & & & & & & & & & & & & 1794/named & & & & &udp & & & &0 & & 0 10.0.10.60:53 & & & & & & &0.0.0.0:* & & & & & & & & & & & & & & &1794/named & & & & &udp & & & &0 & & 0 127.0.0.1:53 & & & & & & & 0.0.0.0:* & & & & & & & & & & & & & & &1794/named查看根的DNS记录,如果能通过DNS协议访问互联网则没有任何问题,因为.不是谁负责的域,如下所示:[root@test~]# &dig -t NS . @127.0.0.1;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -tNS . @127.0.0.1;;global options: +cmd;;Got answer:;;-&&HEADER&&- opcode: QUERY, status: NOERROR, id: 1194;;flags: QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0;;QUESTION SECTION:;. & & & & & & & & IN & NS;;ANSWER SECTION:. & & & & & & 479286 & IN & NS & j.root-servers.net.. & & & & & & 479286 & IN & NS & k.root-servers.net.. & & & & & & 479286 & IN & NS & h.root-servers.net.. & & & & & & 479286 & IN & NS & c.root-servers.net.. & & & & & & 479286 & IN & NS & d.root-servers.net.. & & & & & & 479286 & IN & NS & a.root-servers.net.. & & & & & & 479286 & IN & NS & e.root-servers.net.. & & & & & & 479286 & IN & NS & b.root-servers.net.. & & & & & & 479286 & IN & NS & l.root-servers.net.. & & & & & & 479286 & IN & NS & i.root-servers.net.. & & & & & & 479286 & IN & NS & f.root-servers.net.. & & & & & & 479286 & IN & NS & g.root-servers.net.. & & & & & & 479286 & IN & NS & m.root-servers.net.;;Query time: 1 msec;;SERVER: 127.0.0.1#53(127.0.0.1);;WHEN: Thu Dec 12 18:51:54 2013;;MSG SIZE &rcvd: 2284.配置DNS正向解析(1)定义一个本地区域的DNS解析,规划如下IP地址SOA类型FQDN10.0.10.60NS.10.0.10.60A10.0.10.60NS10.0.10.60MXCNAME(2) 编辑zones文件,此文件为解析配置文件[root@test~]# vim /etc/named.rfc1912.zones追加内容.zone" IN { & & & & & & & & &#定义域 & & & & & & & & & & & & & & &#类型为master & & & &file ".zone"; & & & & & & #定义域文件名};#区域文件存放路径可在named.conf全局配置里去配置定义或修改[root@testetc]# grep 'directory' /etc/named.conf
& & directory & & "/var/named";编辑完毕后保存退出并创建zone文件:[root@testnamed]# cd /var/named[root@testnamed]# lsdata &dynamic named.ca &named.empty &named.localhost &named.loopback &slaves#其中named.localhost为模板文件,如不知格式,则可以复制模板文件来进行修改。[root@test named]# cpnamed..zone#创建zone:#定义宏,如果没有定义ttl,则默认ttl值都为600秒$TTL & &600@ & & & IN & & SOA & & . & . ( & & & & & & & & & & & & & & & & & & & & & & & & & & & & #定义序列号 & & & & & & & & & & & &2H & & & & & & & & & & & & & & & & & #定义刷新时间为2小时 & & & & & & & & & & & &10M & & & & & & & & & & & & & & & & &#重置时间,10分钟重置一次 & & & & & & & & & & & &7D & & & & & & & & & & & & & & & & & #过期时间,7天过期 & & & & & & & & & & & &6H ) & & & & & & & & & & & & & & & & #缓存时间,假设每条缓存6个小时 & & & &IN & & NS & & &dns & & & & & & & & & & & & & & & & & #如果第二条记录与第一条记录对应则可以省略简写为dns,必须交代清楚区域的主DNS服务器是谁,这里为. (可以简写为dns,会自动找到named.conf对应的域)只要写全一定加. & & & &IN & & MX 10 & mail & & & & & & & & & & & & & & & & &#mail必须定义在前面与@对应不然则记录头上一条的记录dns & & IN & & A & & & 10.0.10.60 & & & & & & & & & & & & & &#必须给dns指定A记录www & & IN & & A & & & 10.0.10.60 & & & & & & & & & & & & & #必须给予A记录mail & &IN & & A & & & 10.0.10.60 & ftp & & IN & & CNAME & . & & & & & & & & & & &  #CNAME不用指定IP,这里的意思为www还有另外一条记录叫ftp保存退出并授权[root@testnamed]# chmod .zone [root@testnamed]# chown named..zone 检查配置文件[root@testnamed]# named-checkconf检查域用法:命令+域名+域配置文件检查zone文件配置是否正确[root@testnamed]# &named-" /var/.zone /IN: loaded serial OKoot@testnamed]# /etc/init.d/named reloadReloadingnamed: & & & & & & & & & & & & & & & & & & & & & [ &OK &][root@testnamed]# echo "nameserver 10.0.10.60" && /etc/resolv.conf通过本地来查找解析域名[root@testnamed]# dig -t A
@127.0.0.1;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -tA
@127.0.0.1;;global options: +cmd;;Got answer:;;-&&HEADER&&- opcode: QUERY, status: NOERROR, id: 58113;;flags: QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1;;QUESTION SECTION:;. & & & & & & &IN & A;;ANSWER SECTION:. & & &600 &IN & A & &10.0.10.60;;AUTHORITY SECTION:. & & 600 &IN & NS & .;;ADDITIONAL SECTION:. & & &600 &IN & A & &10.0.10.60;;Query time: 0 msec;;SERVER: 127.0.0.1#53(127.0.0.1);;WHEN: Thu Dec 12 21:20:48 2013;;MSG SIZE &rcvd: 80以上可以看到此域名可以被正常解析,一切正常4.1总结:1.当安装(yum安装)完成后,主配置文件位于/etc/named.conf2.编辑主配置文件,将以下参数注释:// & & &listen-on port 53 { 127.0.0.1; };// & & &listen-on-v6 port 53 { ::1; };// & & &allow-query & & { };当这些注释掉以上参数之后,即可启动named服务,之后则自动成为缓存DNS服务器,但给用户递归的结果数量是有限的,只有一千个。3.配置为主DNS服务器需要以下步骤:(1)在/etc/named.frc1912.zones新建一个区域,每行以分号结尾zone"zone_name" IN { & & type & master|slave| & & file & "zone_name.zone";};(2).建立在/var/named下"zone_name.zone"文件,经常只包含宏定义和资源记录,第一个记录必须是SOA记录则记录格式:$ttl & 600 & & & & & & & & & & & #配置ttl默认为600秒named & & &ttl & &IN & RR_Type(资源类型) & &value可以配置多个FQDN可对应多一个IP地址,从而可以实现负载均衡;可以配置多个FQDN也可对应一个IP (一台主机有多个域名);4.创建完毕需要检测主配置文件语法错误:#检查主配置文件:[root@testnamed]# named-checkconf#检查区域配置文件:[root@testnamed]# named-checkzone "" /var/.zone5.确保主配置文件和各区域域名解析库文件的权限为640属主为root属组为named6.服务启动后,如有需求修改配置文件,不建议重启,可以使用rndc reload 或/etc/init.d/named reload 来平滑加载named服务配置文件 5.配置DNS反向解析反向区域的区域名称格式:网络地址反过来.in-addr.arpa. 如:假设网络地址为172.16.100.1 那么规则命名为100.16.172.in-addr.arpa这里我本地的内网IP为10.0.10.60 所以则写成10.0.10.in-addr.arpa5.1.创建配置反向区域编辑配置文件:[root@test ~]# vim/etc/named.rfc1912.zones加入以下参数:zone"10.0.10.in-addr.arpa" IN { & & & & & & & &file "10.0.10.zone";};保存退出并编辑10.0.10.zone将之前创建好的正向zone文件拷贝一份并命名为10.0.10.zone[root@test~]# cd /var/named/[root@testnamed]# lsdata &dynamic named.ca &named.empty &named.localhost &named.loopback &.zone[root@testnamed]# .zone 10.0.10.zone[root@testnamed]# vim 10.0.10.zone修改参数为:$TTL & &600@ & & & IN & & SOA & & & & . & & & & &. ( & & & & & & & & & & & & & & & & & & & & & & & & & & & &2H & & & & & & & & & & & & & &10M & & & & & & & & & & & & & &7D & & & & & & & & & & & & & &6H ) & & & &IN & & NS & & & & &.60 & & &IN & & PTR & & & & .60 & & &IN & & PTR & & & & .60 & & &IN & & PTR & & & & .其中,MX类型绝对不可以在反向记录里出现;60相当于60.10.0.10.in-addr-arpa. 所以如果写网络地址最后一段则可以自动补全;CNAME则不需要做反向;保存退出检查语法:[root@testnamed]# named-checkzone "10.0.10.in-addr-arpa"/var/named/10.0.10.zone zone10.0.10.in-addr-arpa/IN: loaded serial OK授权[root@testnamed]# chown named.named 10.0.10.zone重新加载配置文件[root@testnamed]# /etc/init.d/named reload也可以使用rndc命令来重新加载[root@testnamed]# rndc statusversion:9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6CPUsfound: 1workerthreads: 1numberof zones: 21debuglevel: 0xfersrunning: 0xfersdeferred: 0soaqueries in progress: 0querylogging is OFFrecursiveclients: 0/0/1000tcpclients: 0/100serveris up and running[root@testnamed]# rndc reloadserverreload successful其rndc最常用参数有:[root@testnamed]# rndc &reconfig & & & & #重新加载[root@testnamed]# rndc &status & & & & & #查看当前状态[root@testnamed]# rndc &flush & & & & & &#刷新[root@testnamed]# rndc &reload & & & & & #重新加载配置验证:使用 dig -x ip 来查看此ip地址的反向解析[root@testnamed]# dig -x 10.0.10.60;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -x10.0.10.60;;global options: +cmd;;Got answer:;;-&&HEADER&&- opcode: QUERY, status: NOERROR, id: 5902;;flags: QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1;;QUESTION SECTION:;60.10.0.10.in-addr.arpa. & IN & PTR;;ANSWER SECTION:60.10.0.10.in-addr.arpa.600 & & IN & PTR &.60.10.0.10.in-addr.arpa.600 & & IN & PTR &.60.10.0.10.in-addr.arpa.600 & & IN & PTR &.;;AUTHORITY SECTION:10.0.10.in-addr.arpa. &600 &IN & NS & .;;ADDITIONAL SECTION:. & & &600 &IN & A & &10.0.10.60;;Query time: 0 msec;;SERVER: 10.0.10.60#53(10.0.10.60);;WHEN: Thu Dec 12 22:33:43 2013;;MSG SIZE &rcvd: 134验证NS:[root@testnamed]# dig -t NS 10.0.10.in-addr.arpa;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -tNS 10.0.10.in-addr.arpa;;global options: +cmd;;Got answer:;;-&&HEADER&&- opcode: QUERY, status: NOERROR, id: 25092;;flags: QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;;QUESTION SECTION:;10.0.10.in-addr.arpa. & & &IN & NS;;ANSWER SECTION:10.0.10.in-addr.arpa. &600 &IN & NS & .;;ADDITIONAL SECTION:. & & &600 &IN & A & &10.0.10.60查找此区域所有的资源记录[root@testnamed]# dig -t axfr 10.0.10.in-addr.arpa;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -taxfr 10.0.10.in-addr.arpa;;global options: +cmd10.0.10.in-addr.arpa. &600 &IN & SOA &.. 0 600 0010.0.10.in-addr.arpa. &600 &IN & NS & .60.10.0.10.in-addr.arpa.600 & & IN & PTR &.60.10.0.10.in-addr.arpa.600 & & IN & PTR &.60.10.0.10.in-addr.arpa.600 & & IN & PTR &.10.0.10.in-addr.arpa. &600 &IN & SOA &.. 0 600 00;;Query time: 1 msec;;SERVER: 10.0.10.60#53(10.0.10.60);;WHEN: Thu Dec 12 22:38:09 20135.2.总结(1)创建反向区域名必须是域名称格式:网络地址反过来.in-addr.arpa. ;(2)配置zone文件内容时,MX类型绝对不可以在反向记录里出现;(3)所以如果写网络地址最后一段则可以自动补全,否则必须写全,如10.0.10.in-addr.arpa;(4)CNAME则不需要做反向;(5)可以通过dig命令来详细查询DNS解析过程;配置Bind主辅首先master服务器每次修改完成并重启服务后,将传送notify给所有的slave服务器 slave服务器将查询master服务器的SOA记录,master服务器收到请求后将SOA记录发送给Slave 服务器,Slave服务器收到后同时对比查询结果中的serial值,如果serial值不大于本机的话将结束数据同步过程;但是如果serial值大于本机的话,slave将发送zone transfer请求要求(AXFR/IXFR)。Master响应zone transfer请求并传送结果,直到整个slave更新完成。主要工作在区域内,如果有多台DNS服务器则必须为每一个DNS服务器建立NS记录否则无法接收通知(主DNS讲不向其发起通知)区域定义/var/named/slaves/ 此目录存在主要目的就是为从服务器保存其同步过来的区域文件,所以定义辅DNS区域时候则将其保存到slaves/目录[root@test~]# ls -ld /var/named/slaves/drwxrwx---.2 named named 4096 Aug 27 23:55 /var/named/slaves/1.准备工作:新开一台虚拟机,并yum安装bind服务,使其内外网畅通,其服务角色如下所示:服务器角色服务器IPMaster10.0.10.60Slave10.0.10.612.创建Slave?准备工作略?配置Slave,编辑 /etc/named.rfc1912.zones 加入以下参数:" IN { & & & & & & & & & & & & & & & & & &#创建类型为slave & & & &file ".zone"; & & & & & #文件存放目录 & & & &masters { 10.0.10.60; }; & & & & & & & #其授权master主机ip};保存退出检测语法[root@test2named]# named-checkconf确保无误,回到masters编辑.zone 添加记录,如下所示[root@testnamed]# .zone $TTL 600@ & &IN & SOA & &. & &. ( & & & & & & &
& & & & & & & 2H & & & & & & & 10M & & & & & & & 7D & & & & & & & 6H ) & & &IN & NS & &dns & & &IN & NS & &dns2 & & &IN & MX 10 & maildns & IN & A & & 10.0.10.60dns2 &IN & A & & 10.0.10.61 & & & & & & & &#每个NS必须对应一个主机名www & IN & A & & 10.0.10.60mail &IN & A & & 10.0.10.60ftp & IN & &CNAME & .保存退出检查语法[root@testnamed]# &named-" /var/.zone /IN: loaded serial OK重新加载配置文件[root@testnamed]# rndc reload &serverreload successful查看其NS记录是否生效[root@testnamed]# dig -t
& &;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& -;;global options: +cmd;;Got answer:;;-&&HEADER&&- opcode: QUERY, status: NOERROR, id: 556;;flags: QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2;;QUESTION SECTION:;. & & & & & & IN & NS;;ANSWER SECTION:. & & 600 &IN & NS & .. & & 600 &IN & NS & .;;ADDITIONAL SECTION:. & & &600 &IN & A & &10.0.10.60. & & & & 600 &IN & A & &10.0.10.61;;Query time: 0 msec;;SERVER: 10.0.10.60#53(10.0.10.60);;WHEN: Thu Dec 12 23:25:26 2013;;MSG SIZE &rcvd: 95回到slave服务器,启动辅DNS[root@test2named]# /etc/init.d/named start先来查看是否可以拉取主dns的数据,使用dig -t axfr 来拉取其DNS服务器的数据,如下所示,默认可以全部解析:[root@test2named]# &dig -t
@10.0.10.60;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& - @10.0.10.60;;global options: +cmd. & & & & & & & 600 & &IN & & &SOA & & . .
600 00. & & & & & & & 600 & & IN & & NS & & &.. & & & & & & & 600 & & IN & & NS & & &.. & & & & & & & 600 & & IN & & MX & & &10 .. & & & & & 600 & & IN & & A & & & 10.0.10.60. & & & & &600 & & IN & & A & & & 10.0.10.61. & & & & & 600 & & IN & & CNAME & .. & & & & &600 & & IN & & A & & & 10.0.10.60. & & & & & 600 & & IN & & A & & & 10.0.10.60. & & & & & & & 600 & & IN & & SOA & & .. 0 600 00;;Query time: 1 msec;;SERVER: 10.0.10.60#53(10.0.10.60);;WHEN: Fri Dec 13 10:52:10 2013;;XFR size: 10 records (messages 1, bytes 248)启动从服务器后再来查看slaves目录下是否有数据生成:[root@test2named]# ll slaves/total4-rw-r--r--.1 named named 427 Dec 13 10:.zone更改dns解析千万不要在从上操作,否则就不同步了,一定要在主DNS上更改。而且只需要更改主的配置文件并重启主的named服务后,从就会跟着变3.使用windows自带的nslookup进行解析验证正向解析验证反向解析4.验证:如果主DNS配置文件被修改,那么从服务器是否会更新编辑主DNS服务器,修改配置文件.zone 追加记录:echo &" www & & IN & & &A & & &10.0.10.61" & &&&/var/.zoneecho " icmp & & IN & & &A & & &10.0.10.60" & &&&/var/.zone并且将其序列号+1=:把””修改为”” 这个是至关重要的,这个就是所谓的序列id,只有这个id号变了,从发现这个号变了,才会从主上获取数据,否则从不会改变,需要注意的是修改后的id号要比修改前的号要大才行如下所示:$TTL & &600@ & & & IN & & SOA & & . & . ( & & & & &#ID号+1 & & & & & & & & & & & &2H & & & & & & & & & & & &10M & & & & & & & & & & & &7D & & & & & & & & & & & &6H ) & & & &IN & & NS & & &dns & & & &IN & & NS & & &dns2 & & & &IN & & MX 10 & maildns & & IN & & A & & & 10.0.10.60dns2 & &IN & & A & & & 10.0.10.61www & & IN & & A & & & 10.0.10.60mail & &IN & & A & & & 10.0.10.60ftp & & IN & & CNAME & .www & & IN & & A & & & 10.0.10.61icmp & &IN & & A & & & 10.0.10.60保存退出并重新加载配置文件[root@testnamed]# rndc reload切换至从服务器,查看其配置文件[root@test2named]# cat .zone &| head-5$ORIGIN.$TTL600 ; 10 minutes & & &IN SOA & .. ( & ; serial & & & & & & & & & 7200 & & & ; refresh (2 hours)可以看到,其ID号已经发生变化,内容更不用说了5.查看DNS日志变化DNS日志大部分都保存在/var/log/messages以刚才主辅DNS为例,来看一下同步过程中是做了什么操作的:切换至slave,查看日志:[root@test2named]# tail -F /var/log/messagesDec13 10:49:53 test2 named[2065]: /IN: sending notifies (serial)Dec13 10:53:04 test2 init: tty (/dev/tty1) main process ended, respawning#主DNS10.0.10.60通知其区域发生变化Dec13 11:10:16 test2 named[2065]: client 10.0.10.60#44102: received notify forzone ''#已经开始传送相关数据Dec13 11:10:16 test2 named[2065]: /IN: Transfer started.#已经从10.0.10.60收到其修改文件的数据内容Dec13 11:10:16 test2 named[2065]: transfer of '/IN' from 10.0.10.60#53:connected using 10.0.10.61#43047#已经将域的ID号修改为Dec13 11:10:16 test2 named[2065]: /IN: transferred serial #已经完成同步域,耗时多久Dec13 11:10:16 test2 named[2065]: transfer of '/IN' from 10.0.10.60#53:Transfer completed: 1 messages, 12 records, 285 bytes, 0.002 secs (142500bytes/sec)#日志是非常重要的,会看日志是基本中的基本6.创建slave反向解析在slave服务器编辑/etc/named.rfc1912.zones 加入以下参数:zone"10.0.10.in-addr.apra" IN { & & & & & & & &file "slaves/10.0.10.zone"; & & & &masters { 10.0.10.60; };};保存退出并检查语法[root@test2named]# named-checkconf切换至master服务器编辑/etc/named.rfc1912.zones加入以下参数:需要注意的是初次序列号不用更改 & & & &IN & & NS & & &. & & & & & & & & &#此条需在最上面61 & & &IN & & PTR & & .保存退出,检查语法无误并重新加载服务[root@testnamed]# named-checkconf [root@testnamed]# rndc reloadserverreload successful注意:如果是CentOS6.x 发现日志出现 received notify for zone '': not authoritative或 master named-sdb[6324]: error (network unreachable)resolving信息,原因是IPv6 寻址的缘故,编辑配置文件/etc/sysconfig/named 将参数OPTIONS="whatever" 改为 OPTIONS="-4"保存退出重启服务即可切至slave服务器重新加载服务并查看结果[root@test2named]# ll /var/named/slaves/total8-rw-r--r--.1 named named 422 Dec 13 11:42 10.0.10.zone-rw-r--r--.1 named named 463 Dec 13 11:.zone在从上查看配置文件,可看到内容已发生变化,此步骤略7.总结:(1)创建slave的时候,其配置文件类型必须是 必须指定主服务器的 IP地址 ;其格式:" IN { & & & & & & & & & & & & & & & & & & & & #创建类型为slave & & & &file ".zone"; & & & & & & & #文件存放目录 & & & &masters { 10.0.10.60; }; & & & & & & & & & &#其授权master机ip 中括号内两侧必须有空格};(2)可以使用dig -t
@10.0.10.60 来拉取其服务器所有解析;(3)主辅同步完成后,将自动在slave服务器上的slaves/目录下生成zone文件,不建议更改slave的zone文件;(4)修改配置文件时,必须将其ID在其基础上加数字1 因为slave是通过其ID来进行判断更新的;(5)DNS的日志默认全部保存在/var/log/messege 文件中;DNS安全如果在公司里做了一DNS服务器任何人通过互联网连接到此DNS服务器都可以做一次区域传送。通过区域文件可以传递出公司的内部网络结构,为了避免此现象发生,必要仅让从服务器可以同步,其他IP全部禁止同步,如下所示:参数 allow-transfer { }; 定义白名单,仅限于指定IP可以定义在区域内也可以定义在全局配置。一般主服务器只允许从服务器传送,而从服务器没有其他需求则不允许任何人传送。编辑主配置文件:[root@testnamed]# vim /etc/named.rfc1912.zones 加入以下参数:" IN { & & & & & & & &file ".zone"; & & & &allow-transfer { 10.0.10.61; }; & & & & & &#明确指定白名单,只有列表内的ip才有权限传送};保存退出检查语法并且重新加载服务[root@test~]# rndc reloadserverreload successful切换至从服务器,加入参数:allow-transfer{ }; 如下所示" IN { & & & & & & & &file ".zone"; & & & &masters { 10.0.10.60; }; & & & &allow-transfer { }; & & & & & & & & & #none表示拒绝任何主机对其获取dns数据};[root@test2~]# named-checkconf [root@test2~]# rndc reloadserverreload successful验证:在另一台不相干的服务器仅限dig -axfr 命令来获取数据。这里新开一台虚拟机其IP为10.0.10.90查看网络是否畅通:[root@mode~]# ping -c 1 10.0.10.60 | head -2PING10.0.10.60 (10.0.10.60) 56(84) bytes of data.64bytes from 10.0.10.60: icmp_seq=1 ttl=64 time=0.500 ms[root@mode~]# ping -c 1 10.0.10.61 | head -2PING10.0.10.61 (10.0.10.61) 56(84) bytes of data.64bytes from 10.0.10.61: icmp_seq=1 ttl=64 time=0.411 ms在slave获取master数据,可以看到,可以正常获取,如下所示:[root@test2~]# dig -t
@10.0.10.60 | head -10;&&&& DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 &&&& - @10.0.10.60;;global options: +cmd. & & 600 &IN & SOA &.. 0 600 00. & & 600 &IN & NS & .. & & 600 &IN & NS & .. & & 600 &IN & MX & .. & & &600 &IN & A & &10.0.10.60. & & 600 &IN & A & &10.0.10.61. & & &600 &IN & CNAME & &.在其他服务器上使用dig命令来解析获取master数据将会失败,证明白名单功能已经生效,加大了对服务的安全保护,如下所示[root@mode~]# dig -t
@10.0.10.60;&&&& DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 &&&& - @10.0.10.60;;global options: &printcmd;Transfer failed.本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
08:49:48 09:20:41 23:27:14 15:27:45 17:26:19 &&1&
&&页数 ( 1/2 ) &

我要回帖

更多关于 web服务器搭建软件 的文章

 

随机推荐