<b> </b>
<b>《linux</b><b>网络服务</b><b>》</b>
<b>第三章</b><b>构建域名服务器</b>
一. <b>DNS</b><b>系统概述</b>
1. <b>DNS</b><b>系统的作用</b>
a. <b>正向解析:根据主机名称(域名)查找对应的</b><b>IP</b><b>地址</b>
b. <b>反向解析:根据</b><b>IP</b><b>地址查找对应的主机域名</b>
2. <b>DNS</b><b>系统的分布式数据结构</b>
3. <b>DNS</b><b>查询方式:</b>
a. <b>递归查询</b>
大多数客户机向DNS服务器解析域名的方式
b. <b>迭代查询</b>
大多数DNS服务器向其他DNS服务器解析域名的方式
二. <b>DNS</b><b>服务器的类型(角色)</b>
1. <b>缓存域名服务器</b>
a. <b>也称为</b><b>唯高速缓存服务器</b>
b. <b>通过向其他域名服务器查询获得域名</b><b>->IP</b><b>地址记录</b>
c. <b>将域名查询结果缓存到本地,提高重复查询时的速度</b>
2. <b>主域名服务器</b>
a. <b>特定</b><b>DNS</b><b>区域的官方服务器,具有唯一性</b>
b. <b>负责维护该区域内所有域名</b><b>->IP</b><b>地址的映射记录</b>
3. <b>从域名服务器</b>
a. <b>也称为</b><b>辅助域名服务器</b>
b. <b>其维护的</b><b>域名</b><b>->IP</b><b>地址记录</b><b>来源于主域名服务器</b>
三. <b>BIND</b><b>域名服务基础</b>
1. <b>BIND</b><b>(</b><b>Berkeley Internet Name Daemon</b><b>)</b>
<b>伯克利</b><b>Internet</b><b>域名服务</b>
<b>官方站点:</b><b>https://www.isc.org/</b>
2. <b>相关软件包</b>
<b>bind-9.3.3-7.el5.i386.rpm </b><b>主程序包</b>
<b>bind-utils-9.3.3-7.el5.i386.rpm </b><b>工具</b>
<b>bind-chroot-9.3.3-7.el5.i386.rpm </b><b>安全牢笼</b><b>(</b><b>伪装根目录</b><b>)</b>
<b>caching-nameserver-9.3.3-7.el5.i386.rpm </b><b>模板</b>
3. <b>BIND</b><b>服务器端程序</b>
<b>主要执行程序:</b><b>/usr/sbin/named</b>
<b>服务脚本:</b><b>/etc/init.d/named</b>
<b>默认监听端口:</b><b>53</b>
<b>主配置文件:</b><b>/var/named/chroot/</b>etc/named.conf
<b>保存</b><b>DNS</b><b>解析记录的数据文件位于:</b>
<b>/var/named/chroot/</b>var/named/
注意: named默认监听TCP、UDP协议的53端口,以及TCP的953端口:
其中UDP 53端口一般对所有客户机开放,以提供解析服务;
TCP 53端口一般只对特定从域名服务器开放,提高解析记录传输通道;
TCP 953端口默认只对本机(127.0.0.1)开放,用于为rndc远程管理工具提供控制通道
如果没有安装bind-chroot软件包,则主配置文件默认位于 /etc/named.conf,数据文件默认保存在 /var/named/ 目录
四. <b>主配置文件</b><b>named.conf</b>
<b>全局配置部分</b>
<b>options {</b>
<b> listen-on port 53 { 173.16.16.1; };</b><b>监听端口号</b>
<b> directory "/var/named";</b>
<b> allow-query { 192.168.1.0/24; 173.16.16.0/24; };</b><b>允许查询的客户机地址</b>
<b> recursion yes;</b><b>是否允许为客户机进行递归查询</b>
<b>};</b>
<b>根区域配置部分</b>
<b>zone "." IN { </b><b>定义根区域</b>
<b> type hint;</b><b>hint</b><b>表示根区域</b><b>;master</b><b>表示主区域</b><b>;slave</b><b>辅助区域</b><b> </b>
<b> file "named.ca"; file </b><b>用于设置</b><b>该区域对应的数据文件名</b>
<b>自己定义的区域配置部分</b>
<b>zone "benet.com" IN { benet</b><b>域名的正向区域</b>
<b> type master; </b><b>主</b><b>dns</b>
<b> file "benet.com.zone"; </b><b>正向区域的配置文件名字</b>
<b> allow-transfer { 173.16.16.2; };</b><b>允许下载该区域解析记录的从域名服务的地址</b>
<b> allow-update { none; }; </b><b>允许动态更新哪些客户机地址,</b><b>none </b><b>表示全部禁止</b>
<b>zone "16.16.173.in-addr.arpa" IN {benet</b><b>域名的反向区域</b>
<b> type master; </b><b>主</b><b>dns </b>
<b> file "173.16.16.arpa"; </b><b>反向区域配置文件</b>
五. <b>区域数据配置文件</b>
1)正向区域文件内容
<b>$TTL 86400 ; </b><b>有效地址解析记录的默认缓存时间</b>
<b>@ IN SOA benet.com. admin.benet.com. (</b>
<b> 2009021901 ;</b><b>更新序列号</b>
<b> 3H ;</b><b>刷新时间</b>
<b> 15M ;</b><b>重试延时</b>
<b> 1W ;</b><b>失效时间</b>
<b> 1D ;</b><b>无效地址解析记录的默认缓存时间</b>
<b>)</b>
<b>@ IN NS ns1.benet.com.</b><b>指定谁是域名服务器</b>
<b> IN MX 10 mail.benet.com.</b><b>指定邮件解析记录</b>
<b>ns1 IN A 173.16.16.1</b>
<b>mail IN A 173.16.16.1</b>
<b>www IN A 173.16.16.1</b>
<b>ftp IN CNAME www</b><b>别名记录</b>
2)反向区域文件内容
把A记录换为PTR记录,别的内容保持不变
<b>1 IN PTR www.benet.com. </b>
<b>4 IN PTR study.benet.com. 4</b><b>表示最后一位</b><b>ip</b>
六. <b>区域数据文件的几个特殊应用</b>
1. <b>基于域名解析的负载均衡</b>
<b>同一域名对应到多个</b><b>IP</b><b>地址</b>
<b> </b><b>例如有一个网站是</b><b>movie.benet.com</b>
<b> movie IN A 173.16.16.11</b>
<b>movie IN A 173.16.16.12</b>
<b>movie IN A 173.16.16.13</b>
2. <b>泛域名解析</b>
<b>找不到精确对应的</b><b>A</b><b>记录时,使用“</b><b>*</b><b>”进行匹配</b>
<b>* IN A 173.16.16.173</b>
3. 子域授权
<b>cn IN A 173.16.16.2</b>
<b> IN NS ns.jv.net.cn.</b>
<b>ns.jv.net.cn. IN A 173.16.16.2</b>
七. <b>对配置文件进行语法检查</b>
<b>1. named-checkconf</b><b>工具</b>
<b>named-checkconf named.conf</b>
<b>2. </b><b>named-checkzone</b><b>工具</b><b> </b><b>后面加域名</b><b> </b><b>然后是正</b><b>/</b><b>反向文件</b>
<b>例如</b><b>:named-checkzone benet.com benet.com.zone</b>
<b>八</b><b>.</b><b>在</b><b>dns</b><b>的主配文件当中</b><b>,</b><b>可以用</b><b>”#”,”//”,</b><b>或者</b><b>”/*……*/”</b>
<b> </b><b>但区域文件当中</b><b>,</b><b>只能以</b><b>”;”</b><b>来表示注释</b><b>. </b><b>切记</b><b>!!!!</b>
<b>补充:下面的的命令可以更新根区域配置文件</b>
dig @a.root-servers.net ns > /var/named/chroot/var/named/named.ca