DNS(Domain NameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

 

域名:wKiom1PiNe3j0rxEAAMFEWXiA14071.jpg

 

如何解析-->迭代和递归

hosts --> local dns cache --> dns server (cache) --> 迭代

 

下面需要注意的是:

  1. 每次解析库更新后,版本号会升级;

  2. DNS服务器只有解析直属自己的域名时才具有权威性;

  3. 如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性
        对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

  4.   检测主配置文件是否有语法错误命令: /usr/sbin/named-checkconf  

  5. 检测区域配置文件是否有语法错误命令: /usr/sbin/named-checkzone

  6. 区域文件索引:/etc/named.rfc1912.zones

  7. 区域解析库文件:/var/named/zone结尾的文件。

  8. 解析localhost为127.0.0.1区域配置文件:/var/named/named.localhost

  9. 解析127.0.0.1为localhost区域配置文件:/var/named/named.loopback

  10. 从服务器同步的区域文件在:/var/named/slaves

(**由于本人为初学者,关于DNS的详细使用请自己查询相关书籍**) 

 

关于编辑解析库文件各参数的意义:

     SOA: start of authority ,起始授权记录,一个区域文件只能有一个。当前区域主DNS的fqdn.

     NS:name server ,      可以有多个,每个负载一个领域

     MX:mail exchange     邮件交换器,指定本域的邮件服务器。可以有多个,每个服务器有优先级,( 0- 99),数据越小优先级越高

    A: fqdn与ip对应 , 专用于正向解析库

    AAAA:fqdn与ipv6对应,专用正向解析库,

    CNAME:canonical name,正式名称。

    PTR: ip与fqdn对应,专用反向解析库

    ttl值: 指定本次解析返还给请求者后,请求者最多可以缓存时间。如果不写,则使用默认。

                ($TTL   值)

创建下面DNS服务的原理图

wKiom1PiO7-jlPLlAAVsmqEhWRE234.jpg

1.创建二级域的DNS权威服务器
  安装软件:#yum install bind  (软件安装后就是一各DNS缓存服务器)
  编辑主配置文件/etc/named.conf,注释掉不需要的项wKioL1PiM93jgzTVAANmHUnPJLk251.jpg
  为服务器设定作用域

wKioL1PiNBWjynFtAAHfkyjdWCo536.jpg

  为服务器编辑配置文件

wKioL1PiNCjSXlh8AAFpxP2BicA552.jpg
  使用:hosts 、nslookup、dig  这三个工具可以测试服务器是否可以正常工作
     eg:#dig -t A  www.zhou.com @172.16.1.10

 

2、为了保证提高系统的冗余能里我们需要为主服务器创建一个或多个从服务器
    安装软件后,编辑主配置软件,和上面一样注释掉我们不需要的选项
    在主服务器上的解析库中添加如下内容:

wKioL1PiNkOBZqhrAACsGPRFidk337.jpg    为从服务器设定作用域

wKioL1PiNFPj7ebMAACezjeXIsg271.jpg
    **同步主从服务器不要注意的是,从服务器的版本不能低于主服务器的版本,否则会导致无法兼容;主从服务器的时间必须保持一直,否则会产生错去信息;
    测试从服务器是否架设成功
   
3.使服务器具有反向解析功能
      在主服务器上编辑作用域,并创建反向解析库文件

wKiom1PiM4Ljn4eiAACXWx_nVas883.jpg

wKioL1PiNK6j4fs7AAE0053AWUU907.jpg
      在从服务器编辑作用域就行(需要升级主服务器的版本号)

wKioL1PiNMOg4picAACezjeXIsg477.jpg
     
   
4、为二级服务器创建子域
    我们安装完服务后,需要在父域获得授权

wKiom1PiM7uRDeHfAAA1WvrVr8M350.jpg
    同上面一样需要编辑主配置文件(省略),编辑作用域

wKiom1PiM9Dw5FmnAACwJ24hKG8191.jpg
    编辑解析库文件

wKiom1PiM96zzOelAADigmSw6dQ729.jpg
 

 5、为子服务器添加转发功能,使其能将非自己负责区域的请求转发给父服务器
    编辑主配置文件wKioL1PiNQeQ-ydbAAFoxQjKhCY573.jpg

wKiom1PiNAWgR7etAAB3OPXplvA084.jpg
测试转发功能是否能使用:由于DNS的解析中上级知道下级的地址和域名,而下级却知道上级的任何信息,所以我们可以直接用主域中的主机测试父域之间解析的服务器

wKiom1PiNqXyV7qfAAPeRcFjqIU597.jpg    
   


   
6、为二级服务器创建view功能

view的作用是使不同类的用户解析出不同的结果;适用于区分不同的网络

wKiom1PiRk2ivt1PAAMI8In0yU0640.jpg    将所有的zone选项添加到如下格式:

 view VIEW_NAME {    #名称自己随便定义
  match-clients { telecom; };    #定义类型,也可以定义某网段ip地址或者某段ip地址
  zone "mageedu.com" IN {
   type master;
   file "mageedu.com.tel";   #同上面编辑解析库文件一样    
  };

 };

但是在定第二个view时就可以直接定义作用域了,而不需要将所有类型的zone全部写入

 view VIEW_NAME {
  match-clients { unicom; };
  zone "mageedu.com" IN {
   type master;
   file "mageedu.com.uni";
  };
 };

 

关于view请看:http://wukui.blog.51cto.com/1080241/1536606