Loading... <h2 style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;margin:0px 0px 10px;text-align:center" class="ue_t">bind的简单配置</h2> <p><strong><span style="font-size:12px">摘要</span></strong><span style="font-size:12px">:DNS bind简单配置<br /></span></p> <p><span style="font-size:12px" class="ue_t"><br /></span></p> <p style="line-height:1.5em"><strong> FQDN</strong></p> <p style="line-height:1.5em"><strong> http://www.178linux.com. WWW是主机名 .178linux.COM.是私有域名 .com.是DNS一级域名 .是根域 </strong></p> <p style="text-indent:2em"><span style="font-size:14px">D</span><span style="font-size:14px">NS解析顺序</span></p> <p style="text-indent:2em"><span style="font-size:14px">/etc/hosts<span style="font-size:14px;font-family:宋体">→</span>DNS缓存<span style="font-size:14px;font-family:宋体">→</span>DNS域服务器</span></p> <p style="text-indent:2em"><span style="font-size:14px">主机优先查找本地的hosts(/etc/hosts)文件,没有想对应的记录则去查找本地DNS客户端的解析缓存库,缓存库没有想对应的记录则询问本地配置的DNS服务器(DNS服务器配饰文件 /etc/resolv.conf)</span></p> <p style="text-indent:2em"><span style="font-size:14px">DNS服务器同样优先查找本地缓存数据,没有相对应的记录直接去找根,根会告诉你这事我委托给.com管理了这是.com的地址你去找他吧,DNS服务器找到.com得到这事我委托给178linux.com管理员ns.178linux.com来管理这事他的地址你去找他吧;继续拜访ns.178linux.com得到<strong>www.178linux.com</strong>的地址返回给主机。</span></p> <p style="text-indent:2em"><span style="font-size:14px">主机得到对应的IP地址就将访问数据报文发送给此IP</span></p> <p style="text-indent:2em"></p> <p style="text-indent:2em">递归查询:主机访问DNS服务器,并且DNS服务器最终返回解析结果给客户端的方式为递归查询。不轮客户端所查询的域名是否为此DNS服务器管理它最终会个客户端返回解析结果。</p> <p style="text-indent:2em">迭代查询:DNS服务器子根向下逐级查找解析资源记录的过程为迭代查询,被DNS访问的服务器只返回下级域的域管理员的地址。<br /><span style="font-size:14px"></span></p> <p style="text-indent:2em"><span style="font-size:14px"><br /></span></p> <p style="text-indent:2em">DNS域服务器架构</p> <p style="text-indent:2em"><img alt="dns树.jpg" src="//cto.wang/usr/uploads/2016/07/20160703180504-3.jpg" title="1444747915800744.jpg" /><span style="font-size:14px"></span></p> <p style="text-indent:2em"><span style="font-size:14px"><br /></span></p> <p style="line-height:1.5em"><strong>二、搭建一个DNS服务器<br /></strong></p> <p style="text-indent:2em"><strong>2.1 DNS服务器软件搭建采用bind</strong></p> <p style="text-indent:2em"> Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和 windows平台。</p> <p style="text-indent:2em"><strong>2.2 安装bind</strong></p> <p style="text-indent:2em">yum install bind -y</p> <p style="text-indent:2em">[root@localhost ~]# rpm -ql bind<br /> [root@localhost ~]# rpm -ql bind</p> <pre class="brush:bash;toolbar:false">#rpm生成的几个重要的配置文件 /etc/named.conf #bind的主配置文件 /etc/named.rfc1912.zones #bind的zone配置文件,通过主配置的include选项作为主配置文件的一部分 /etc/rndc.conf #rndc的主配置文件 /etc/rndc.key #rndc的消息完整性验证key /var/named/named.ca #DNS根服务器信息 #以上文件权限模型 640 root named /var/named/sslaves/ # 丛服务器配置文件存放目录 权限模型 770 named named</pre> <p style="text-indent:2em"></p> <p style="text-indent:2em"><strong>2.3 bind的主配置文件</strong></p> <pre class="brush:bash;toolbar:false">// 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 { 127.0.0.1; }; #监听的端口和地址 { } 前后需各有一个空格否则为语法错误, #每行结束需以“;”结尾否则也为语法错误 listen-on-v6 port 53 { ::1; }; #IPv6的端口和地址配置 directory "/var/named"; #bind工作目录;配置文件内的相对文件路径都是在此目录下 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 { localhost; }; #允许那些客户端来查询 此内的localhost为内置acl 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"; #同上</pre> <p> <strong>2.4 allow白名单控制</strong></p> <pre class="brush:bash;toolbar:false">allow-*** allow-query #原先那些主机前来查询DNS allow-transfer #允许那些主机进行区域传送 allow-update #允许接收那些主机动态DNS更新 allow-recursion #允许为哪些主机进行递归查询</pre> <p> <strong> 2.5 acl控制列表;定义在options内</strong></p> <p> 几个内建的acl:none: 所有都不<br /> any: 任意<br /> localhost: 本机</p> <pre class="brush:bash;toolbar:false">acl 语法格式 acl ACL_NAME { ip; ip; network; }; #示例 递归查询白名单 acl rec_network { 10.10.10.0/24; #网段 192.168.1.254; #ip localhost; #可包含其他acl }; recursion yes allow-recursion { localhost;rec_network; }</pre> <p style="text-indent:2em"><span style="font-size:14px" class="ue_t"></span><strong>2.6 named.rfc1912.zones配置文件</strong></p> <p style="text-indent:2em">域分为正向域和反向域:正向域为FQDN<span style="font-size:14px"><span style="font-size:14px;font-family:宋体">→</span></span>IP地址;反向域为IP地址<span style="font-size:14px"><span style="font-size:14px;font-family:宋体">→</span></span>FQND。</p> <p style="text-indent:2em">正向域和反向域的域配置文件是两份独立的配置文件。</p> <p style="text-indent:2em">其中邮件地址需配置反向域否则会被认为是垃圾邮件。</p> <pre class="brush:bash;toolbar:false">#####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 { #域名;IN为固定格式 type master; #服务类型:master|slave|forward|hind file "named.localhost"; #区域解析库配置文件,相对路径在options定义的工作目录下 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; }; };</pre> <p style="text-indent:2em"><strong>2.7 区域解析库配置文件</strong></p> <p style="text-indent:2em">区域解析库内存放地址映射资源记录:rr(resource record);映射信息有类型的概念:用于此记录解析的属性;主要类型分为以下几种<br /> SOA: Start Of Authority, 起始授权记录,一个区域文件只能有一个;<br /> NS:Name Server <br /> MX: Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99);<br /> A:FQDN –> IP,专用于正向解析库<br /> PTR: IP –> FQDN,专用于反向解析库<br /> AAAA:FQDN –> IPv6,专用于正向解析库<br /> CNAME: Canonical Name,正式名称<br /> 这些配置信息需要手动配置,配置前需要做好信息收集及信息注册<br /> 资源记录类型书写格式</p> <p style="text-indent:2em">SOA:</p> <pre class="brush:bash;toolbar:false">@ TTL IN SOA FQDN ADMIN.MAIL ( serial number ;解析库的版本号, refresh time ;主丛服务器周期性同步的时间间隔;time默认单位秒,也可使用1D,1H等代替 retry time ;主服务器为响应丛服务器后丛服务器的重试时间间隔 expire time ;主服务器一直未响应;丛服务器解析库失效时长 negative answer ttl ;无效主机名否定答案的统一缓存时长 ) # @:域名替代符 # TTL:缓存时间 # IN:固定字符 # SOA:资源记录类型 # FQND:区域内主DNS服务器的FQDN # ADMIN.MAIL:管理邮箱 其中邮箱的@在配置文件中有特殊意义需替换成.</pre> <p style="text-indent:2em">NS: </p> <pre class="brush:bash;toolbar:false">@ TTL IN NS FQDN # @:域名替代符 # TTL:缓存时间 # IN:固定字符 # NS:资源记录类型 # FQND:DNS服务器的FQDN</pre> <p> MX:</p> <pre class="brush:bash;toolbar:false">@ TTL IN NS priority FQDN # @:域名替代符 # TTL:缓存时间 # IN:固定字符 # NS:资源记录类型 # priority:优先级 0-99 越小越优先,用于有多个邮件服务器 # FQND:邮件服务器的FQDN</pre> <p> A:</p> <pre class="brush:bash;toolbar:false">FQND TTL IN A|AAAA IPADDR # FQDN:主机完全域名 # TTL:缓存时间 # IN:固定字符 # A:IPV4资源记录类型 # AAAA:IPV6资源记录类型 # IPADDR:IPV4或IPV6的主机地址</pre> <p> CNAME:</p> <pre class="brush:bash;toolbar:false">FQND1 TTL IN CNAME FQDN2 # FQDN1:主机完全域名 # TTL:缓存时间 # IN:固定字符 # FQDN2:主机完全域名,必须有A记录,访问FQDN1时会先解析到FQDN1=FQDN2然后再去查FQDN2的A记录</pre> <p> PTR:</p> <pre class="brush:bash;toolbar:false">反序IP.in-addr.arpa TTL IN PTR FQDN # 反序IP.in-addr.arpa:示例192.168.1.1PTR=1.1.168.192.in-addr.arpa # TTL:缓存时间 # IN:固定字符 # FQDN:主机完全域名</pre> <p><strong> 2.8 搭建缓存bind服务器</strong></p> <p> 逻辑拓扑结构图 bind服务器OS系统为centos 6.7 IP地址:10.10.10.3</p> <p> <img alt="dns.png" src="//cto.wang/usr/uploads/2016/07/20160703180504-30.png" title="1445005051148482.png" /></p> <p> 第一步:安装bind程序前面已经做完</p> <p> 第二步:配置主配置文件 /etc/named.conf</p> <pre class="brush:bash;toolbar:false">###将以下参数注释掉 //listen-on port 53 { 127.0.0.1; }; #注释后bind将监听所有IPv4地址的53号端口 listen-on-v6 port 53 { ::1; }; #如果你没有IPv6的配置这项无需配置 //allow-query { localhost; }; #注释后允许所有任何地址前来查询 recursion yes; #允许为所有客户端进行递归查询 //dnssec-enable yes; #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉 //dnssec-validation yes; #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉 //dnssec-lookaside auto; #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉 /* Path to ISC DLV key */ #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉 //bindkeys-file "/etc/named.iscdlv.key"; #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉 //managed-keys-directory "/var/named/dynamic"; #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉 //include "/etc/named.root.key"; #与DNS信息完整性及安全相关,简单那配置暂不做配置,注释掉</pre> <p> 第三步:增加解析域信息至named.rfc1912.zones</p> <pre class="brush:bash;toolbar:false">zone "mylinux.com" IN { type master; file "mylinux.zone"; allow-update { none; }; }; zone "10.10.10.in-addr.arpa" IN { #反向区域,我选的这个地址不是太直观,如果是172.16.1.2的话反向就是这样写1.16.172.in-addr.arpa type master; file "10.10.10.zone"; allow-update { none; }; }; #####检查配置文件是否正确 [root@localhost named]# named-checkconf [root@localhost named]# ##没有输出就没有错误</pre> <p></p> <p><strong> </strong> 第四步配置解析资源记录</p> <pre class="brush:bash;toolbar:false">[root@localhost named]# vim /var/named/mylinux.zone ################全称拼写格式 $TTL 7200 @ IN SOA ns.mylinux.com. admin.mylinux.com. ( 2015101600 1H 300 1W 1D ) IN NS ns.mylinux.com. #第一个字段如果与上一行一样可省略不写会自动补全 IN MX 10 mail.mylinux.com. ns.mylinux.com. IN A 10.10.10.3 #FQDN全名后面必须加.,.代表根区域 mail.mylinux.com. IN A 10.10.10.4 www.mylinux.com. IN A 10.10.10.5 ftp.mylinux.com. IN A 10.10.10.6 ############### 简写 $TTL 7200 $ORIGIN mylinux.com #自动将此变量作为FQDN的一部分补在,如果不声明此变量内容默认为zones文件中定义的域名 @ IN SOA ns admin ( 2015101600 1H 300 1W 1D ) IN NS ns IN MX 10 mail ns IN A 10.10.10.3 mail IN A 10.10.10.4 www IN A 10.10.10.5 ftp IN A 10.10.10.6 #####反向域配置 $TTL 7200 @ IN SOA ns.mylinux.com. admin.mylinux.com. ( 2015101600 1H 300 1W 2D) IN NS ns.mylinux.com. 3 IN PTR ns.mylinux.com. 4 IN PTR mail.mylinux.com. 5 IN PTR www.mylinux.com. 6 IN PTR ftp.mylinux.com. #####检查zone配置文件是否有错误 [root@localhost ~]# chown root:named /var/named/mylinux.zone /var/named/10.10.10.zone [root@localhost ~]# chmod 640 /var/named/mylinux.zone /var/named/10.10.10.zone [root@localhost named]#named.checkzone "mylinux.com" /var/named/mylinux.zone #检查无错误后执行重读配置文件 [root@localhost named]# named-checkzone "10.10.10.in-addr.arpa" /var/named/10.10.10.zone zone 10.10.10.in-addr.arpa/IN: loaded serial 2015101600 OK [root@localhost named]# rndc reload #重读配置文件 server reload successful [root@localhost named]# service named reload Reloading named: [ OK ] #重读配置文件 [root@localhost named]# ####如果修改过端口及监听地址需要重启服务 [root@localhost named]# service named restart [root@localhost ~]# chkconfig --level 2345 named on</pre> <p></p> <p>DNS测试</p> <p>常用的DNS测试命令有</p> <p>1、host -t RRType NAME [SERVER]<br /> 例如:host -t NS mylinux.com 10.10.10.3</p> <p>2、nslookup 交互式测试工具<br /> nslookup><br /> server IP:<br /> set type={A|SOA|NS|MX}<br /> name<br /> 3、dig<br /> dig -t TYPE name @server<br /> -t AXFR: 标示区域传送<br /> -x:测试反解<br /> +(no)trace:是否显示查询过程<br /> +(no)recurse:是否递归查询<br /> </p> <pre class="brush:bash;toolbar:false;">[mylinux@www ~]$ dig -t AXFR mylinux.com @10.10.10.3 #做区域传输测试,查看DNS服务器所有记录 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t AXFR mylinux.com @10.10.10.3 ;; global options: +cmd mylinux.com. 7200 IN SOA ns.mylinux.com. admin.mylinux.com. 2015101600 1800 300 604800 86400 mylinux.com. 7200 IN NS ns.mylinux.com. mylinux.com. 7200 IN MX 10 mail.mylinux.com. ftp.mylinux.com. 7200 IN A 10.10.10.6 mail.mylinux.com. 7200 IN A 10.10.10.4 ns.mylinux.com. 7200 IN A 10.10.10.3 www.mylinux.com. 7200 IN A 10.10.10.5 mylinux.com. 7200 IN SOA ns.mylinux.com. admin.mylinux.com. 2015101600 1800 300 604800 86400 ;; Query time: 0 msec ;; SERVER: 10.10.10.3#53(10.10.10.3) ;; WHEN: Thu Oct 15 21:09:36 2015 ;; XFR size: 8 records (messages 1, bytes 217) [mylinux@www ~]$ dig -x 10.10.10.5 @10.10.10.3 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 10.10.10.5 @10.10.10.3 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50444 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;5.10.10.10.in-addr.arpa. IN PTR ;; ANSWER SECTION: 5.10.10.10.in-addr.arpa. 7200 IN PTR www.mylinux.com. ;; AUTHORITY SECTION: 10.10.10.in-addr.arpa. 7200 IN NS ns.mylinux.com. ;; ADDITIONAL SECTION: ns.mylinux.com. 7200 IN A 10.10.10.3 ;; Query time: 2 msec ;; SERVER: 10.10.10.3#53(10.10.10.3) ;; WHEN: Thu Oct 15 23:18:54 2015 ;; MSG SIZE rcvd: 103 windows下测试</pre> <p><img alt="win.jpg" src="//cto.wang/usr/uploads/2016/07/20160703180504-28.jpg" title="1445090074238625.jpg" /></p> <p></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信