DNS 域名服务器

最近两天接触到DNS 的相关内容,也做了一些示例,好记性不如烂笔头,随手就写了下来,
希望有等对有需要DNS这块知识的网友们有所帮助,如有不周的地方希望博友们见谅!!并给予批评指导!!
         次先谢过了!!!
  废话不所说直切正题!!!


一、基础知识:

 DNS 用来做域名称解析,提供双向解析,ip-->域名 , 域名-->ip
 域名,
www.xxxx.com   严格意义上叫 FQDN
 组织域:.com , .org , .net , .cc 等....
 国家域:.cn ,  .tw , .hk , .iq   等...
 反向域:IP-->FQDN
 正向  FQDN-->IP
 
 查询:
 递归:只发出一次请求
 迭代:发出多次请求
 NDS:是分布式数据库
 上级仅知道直属下级
 下级仅知道根

二、常见的DNS服务器类型 

 
    
  1. 常见DNS服务器类型:  
  2.  缓存DNS服务器: 做DNS本地数据缓存  
  3.  转发服务器   : 对DNS查询请求做转发  
  4.  主DNS        : 数据修改  
  5.  辅助DNS      : 请求数据同步  
  6.  辅助dns服务器会定期按照设置时间去探测主dns上的数据,依据以下5种属性信息设置  
  7.  seral number   版本号,定义版本号  
  8.  refresh        刷新时间,定义刷新版本号时间  
  9.  retry          重试时间,定义刷新版本号没有响应后的重新刷新时间  
  10.  expire         过期时间,定义规定时间内没有反应说明主机当掉  
  11.  nagative answer ttl  否定答案的缓存时长   
  12.             

三、资源记录类型:

 
    
  1. 资源记录类型:  
  2.  SOA: 起始授权记录, 用于标记一个区域文件的开始  
  3.  ZONE NAME    TTL   IN   SOA  FQDN  mail地址  (5种属性值)  
  4.  5种属性值:seral number,refresh,retry,expire,angative answer ttl  
  5.  时间单位: M分钟,H小时,D天,W周, 默认是秒钟  
  6.  mail地址格式: 邮箱地址不能带@ 如  
  7.   [email protected]    错误写法  
  8.   admin.mageedu.com    正确写法  
  9.  格式如:  
  10.  mageedu.com.  600  IN  SOA  ns.mageedu.com.  admin.mageedu.com.  (  
  11.                             20130401  #版本号  
  12.                             1H        #刷新时间  
  13.                             5M        #重试时间  
  14.                             1W        #过期时间  
  15.                             1D )      #否定答案缓存时间  
  16.  或者:  
  17.  mageedu.com.  600  IN  SOA  ns.mageedu.com.  admin.mageedu.com. 20130401 1H 5M 1W 1D                 
  18.  在换行情况下 5种属性值要加(), 不换行则不用加,中间用空格隔开即可                    
  19.                                     
  20.  NS:(ZONE NAME)区域名-->FQDN       也成为名称服务器  
  21.  mageedu.com.    600   IN   NS  ns.madeu.com.  
  22.  ns.mageedu.com. 600   IN   A   1.1.1.1  
  23.  NS 和 A 记录要 一起出现。  
  24.    
  25.  MX:(ZONE NAME)区域名 ---> FQDN  也称为邮件交换器  
  26.  格式:  
  27.  ZONE NAME   TTL    IN    MX   pri    VALUE  
  28.  pri称为优先级: 0-99 数字越小级别越高  
  29.  mageedu.com.  600      IN  MX   10   mail.magedu.com.  
  30.  mail.magedu.com.  600  IN  A         1.1.1.1  
  31.     
  32.  A :FQDN--->IPV4  
  33.    
  34.  AAAA: FQDN--->IPV6    
  35.       
  36.  PTR : IP--->FQDN     也成为指针记录  
  37.      
  38.  CNAME: FQDN--->FQDN   也成为别名记录  
  39.  如:  
  40.  www2.magedu.com.    IN    CNAME    www.magedu.com.     这行字符意思是www2是www 的别名  
  41.            
  42.            
  43.  DOMAIN 域: 逻辑概念 理论上一个域里面有多个区域,而区域里面有定义了下一级的域。  
  44.  ZONE 区域: 物理概念 区域是真正存在的数据文件,定义了数据文件。  
  45.            
  46. 区域传送类型:  
  47.  完全区域传送axfr  
  48.  增量区域传送ixfr  
  49.            
  50. 区域类型:  
  51.  主区域master  
  52.  从区域slave  
  53.  提示区域hint  
  54.  转发区域forward 

四、实现DNS功能软件 BIND  和 BIND97
 bind97配置文件解析:

 
    
  1. 实现DNS功能软件 BIND  和 BIND97   
  2.  bind97配置文件解析:  
  3.           
  4.  /etc/named.conf    bind97配置文件 定义BIND进程的工作属性,区域的定义  
  5.  /etc/rndc.key      实现让远程工作的秘钥文件  
  6.  /etc/rndc.conf     rndc的配置文件  
  7.  /var/named/xxx     区域数据文件 ,需要管理员手动创建  
  8.  /etc/rc.d/init.d/named   bind控制文件,接受start|stop|status|reload|  
  9.  /etc/rc.d/init.d/named   这两个脚本是rpm包制作者 制作的,如果使用源码包安装bind97   
  10.  /etc/sysconfig/named    
  11.            
  12.  BIND 的二进制进程 :named  
  13.  DNS 监听端口 53 和rndc 监听的953  
  14.  用户发起请求连接用的是UDP 53 端口  
  15.  从服务器 刷新数据的时候用的 TCP 53 端口 

五、配置过程中所用到的额外命令、参数和用法 

 
    
  1. 临时性关闭SElinux    在使用bind97的时候要用到 SELinux 所以简单的说一下使用方法。  
  2.  getenforce      查看状态  
  3.  enforcing       开启状态  
  4.  setenforce 0    关闭  
  5.  setenforce 1    开启   
  6.  
  7.  永久关闭selinux  
  8.  vim /etc/selinux/config  
  9.  SELINUX=enforcing    把此行改为下面内容   
  10.  SELINUX=permissive               
  11.       
  12. 测试DNS所用到的命令:  
  13.  dig: 是一个用于询问DNS域名服务器的灵活的工具。他执行DNS搜索,显示从受请求的域名服务器返回的答复。  
  14.       多数DNS管理员利用dig作为DNS问题的故障诊断。  
  15.  dig -t <资源记录类型RT> NAME  查询对应RT的FQDNip  
  16.  dig -t A FQDN  查询FQDN 的A记录  
  17.  dig -t MX FQDN  查询FQDN 域的MX 记录  
  18.  dig -x ip  反向查询  ,查询对应ip的FQDN  
  19.  dig命令返回信息里面flags项里出现aa 表示权威答案  
  20.  host -t RT  NAME : 查询名称的解析结果  
  21.             
  22.             
  23.  nslookup :是一个交互式命令可以在windows上使用,nslookup命令的功能是查询一台机器的IP地址和其对应的域名。  
  24.           它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,  
  25.           就可以用这个命令查看不同主机的IP地址对应的域名。  
  26.  在win的命令提示符里输入nslookup  
  27.  >server ip #  指定DNS服务器 查询ip  
  28.  >set a=RT  # RT指资源记录类型  
  29.  >name   # 输入想要查找的 域名 

六、配置过程:
     要求:
        域名 mageedu.com
        网段 172.16.163.0
     1,添加 NS记录
     2,实现域名拥有两个ip 172.16.163.1 和 172.16.163.3
     3,添加 MX 记录 ip 是172.16.163.2
     4,为域名www 添加一个别名 ftp
   系统环境: redhat5.8  
 

 
    
  1.         
  2.     配置过程:  
  3. 1,# rpm -e  bind-libs   bind-utils  
  4. 2,# yum install bind97 -y  
  5.     yum install -y bind97-utils  
  6. 3,# mv /etc/named.conf  /etc/named.conf.orgi  重命名配置文件 根据自己需求重新写  
  7. 4,# vim /etc/named.conf  
  8.  
  9.      options {  
  10.      directory "/var/named";  
  11.      };  
  12.  
  13.      zone "." IN {  
  14.      type hint;  
  15.      file "named.ca";  
  16.      };  
  17.  
  18.      zone "localhost" IN {  
  19.        type master;  
  20.        file "named.localhost";  
  21.      };  
  22.  
  23.      zone "0.0.127.in-addr.arpa" IN {  
  24.        type master;  
  25.        file "named.loopback";  
  26.      };  
  27.  
  28. 5,# chown root:named /etc/named.conf  
  29. 6,# chmod 640 /etc/named.conf  
  30. 7,# named-checkzone "." /var/named/named.ca   测试语法错误  
  31. 8,# named-checkzone "." /var/named/named.ca   检查根区  
  32.      如果出现以下提示请继续进行 属于正常情况  
  33.       zone ./IN: has 0 SOA records  
  34.       zone ./INnot loaded due to errors.    
  35. 9,# named-checkzone "localhost" /var/named/named.localhost   
  36. 10,# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback  
  37.   #####测试以上内容都没有错情况下 可以启动服务了#####  
  38. 11,# service named start  
  39. 12,# vim /etc/resolv.conf  
  40.      nameserver 172.16.163.1                  这个ip修改为本机ip即可  
  41. 13,# dig -t NS . @A.root-server.net  
  42. 14,# chkconfig  named on 
  43. 15,# vim /etc/named.conf       
  44.       添加:  实现解析 mageedu.com  
  45.       zone "mageedu.com" IN {  
  46.         type master;  
  47.         file "magedu.com.zone";  
  48.      };  
  49. 16,# named-checkconf  /etc/named.conf        检查语法  
  50. 17,# chown root.named  mageedu.com.zone  
  51. 18,# chmod 640 mageedu.com.zone  
  52. 19,# vim /var/named/mageedu.com.zone  
  53.         
  54.      
  55.          
  56.        $TTL 600  
  57.        mageedu.com.   IN    SOA   ns1.mageedu.com.     admin.mageedu.com. (  
  58.                                   2013040201  
  59.                                   1H  
  60.                                   5M  
  61.                                   2D  
  62.                                   6H )  
  63.                       IN    NS    ns1  
  64.                       IN    MX 10 mail  
  65.        ns1            IN    A     172.16.163.1  
  66.        mail           IN    A     172.16.163.2  
  67.        www            IN    A     172.16.163.1  
  68.        www            IN    A     172.16.163.3  
  69.        ftp            IN    CNAME www  
  70. 20,# named-checkzone  "mageedu.com" /var/named/mageedu.com.zone          
  71. 21,# dig -t A www.mageedu.com          查看mageedu.com A记录        
  72.   ####### 写反向记录####   
  73. 22,# vim /etc/named.conf  
  74.      最后面加入一下几行  
  75.      zone "163.16.172.in-addr.arpa" IN {  
  76.          type master;  
  77.          file "172.16.163.zone";  
  78.      };  
  79. 23,# vim /var/named/172.16.163.zone  
  80.      写入一下反向解析内容  
  81.      $TTL 600  
  82.      @              IN    SOA   ns1.mageedu.com.     admin.mageedu.com. (  
  83.                            2013040201  
  84.                            1H  
  85.                            5M  
  86.                            2D  
  87.                            6H )  
  88.                IN    NS    ns1.mageedu.com.  
  89.      1              IN    PTR   ns1.mageedu.com.  
  90.      2              IN    PTR   mail.mageedu.com.  
  91.      1              IN    PTR   www.mageedu.com.  
  92.      3              IN    PTR   www.mageedu.com.  
  93.        
  94. 24,#  named-checkzone "163.16.172.in-addr.arpa" 172.16.163.zone    
  95. 25,# service named restart       
  96. 26,# dig -x 172.16.163.3       查看逆向解析  
  97.      dig -x 172.16.163.2  
  98.      dig -x 172.16.163.1  
  99.        
  100.        
  101.      到此为止配置完成!!!