DNS原理详解

1、DNS概述

  domain name service  区域名称服务或者domain named system 区域名称系统,是互联网最基础的服务,分为正向域名解析(将域名解析为IP地址)和反向域名解析(将IP地址解析为域名)两部分。

2、bind

  bind(Berkeley Internet Name Domain)是当今应用最广泛的 DNS服务器软件,由加州大学柏克利学院开发。已经成为事实上的业界标准。

3、DNS工作原理

   DNS系统的原理图,类似于一个倒挂树结构,顶端是分布在全球的13台根服务器,负责返回给查询者TLD顶级域名服务器地址;TLD是按顶级域名com,net,org,net等划分,负责管理、登记和返回对应顶级域名下的地址。

   当用户发对某个域名发起请求后,客户机首先查找本地HOST文件是否有对应条目,没有则查找本地缓存是否有对应条目,仍然没有,则向本地网络配置的DNS服务器发起递归查询(此DNS服务器通常为网络运营商提供,在网络中扮演DNS缓存服务器角色,为方便区分,后文称之为“电信DNS”),电信DNS收到请求后,查找本地缓存条目,缓存没有,则开始发起迭代查询。

   迭代查询过程: 首先电信DNS向根服务器发起查询请求,要服务器返回对应的TLD(顶级域名服务器)地址, 电信DNS再向所返回的TLD地址发起查询,TLD服务器返回在TLD上已登记的查询域NS服务器地址。电信DNS再次向查询域的NS服务器发起查询,NS服务器返回权威答案;电信DNS将权威答案返回给客户机;一次查询结束。

dns.png

4、bind版本

    Centos 6 yum自带9.8.2

    Centos 6 yum自带9.9.4

5、bind安装

bind 安装包为Bind, bind-utils , bind-libs

bind 为主程序安装包

bind-utils 为相关工具

bind-libs为库文件

直接使用yum install即可

6、bind服务启动

bind服务启动后监听在tpc和udp的53端口

rndc: remote name domain controller,与bind安装在同一主机,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能;临听在TCP的953端口

centos6使用service bind start 启动服务

7、bind配置文件详解

   a、主配置文件

     主配置文件包括:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key

     1)、named.con 主要对bind服务的相关配置,包括option, logging和zone三部分,named.conf使用c++风格,每一行结尾要以; 结尾,所有{}的前后都要空格

       option 部分:

listen-on port 53 { 127.0.0.1; };                                    //ipv4监听地址,默认只监听本机,需要改为外网网卡地址

listen-on-v6 port 53 { ::1; };                                    //ipv6临听地址

directory       "/var/named";                                  //工作目录

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     { any; };                                     /允许为哪些地址作解析

recursion yes;                                             //是否开启递归查询

dnssec-enable yes;                                          //是否开启dnssec

logging部分,主要定义日志相关

zone部分,定义区域,通常默认会自带 根区域;但通常自定义区域不会放在named.conf文件中,而是采用了include "/etc/named.rfc1912.zones“,将自定义区域载入

    2)、named.rfc1912.zones

               向文件尾部增加自定义区域

   zone "patrickli.com" IN {

       type master;               \\类型,有master、slave、hint、forward

       file "patrickli.com.zone";      \\区域配置文件,位于/var/named目录下

      };

   b、区域配置文件

       在/var/named目录下新建,文件名以.zone结尾,文件属组为named,文件权限为640。示例如下

$TTL 1D      \\全局TTL值 

@ IN SOA ns1.patrickli.com. admin.patrickli.com (

                20160801           \\序列号

                1D               \\刷新时间

                20M              \\重试时间

                1W               \\过期时间

                2D               \\ 否定TTL值

)

patrickli.com.       IN NS    ns1.patrickli.com.    \\NS记录

ns1.patrickli.com.     IN  A   172.16.244.5        \\A记录

www.patrickli.com.     IN  A  172.16.244.5

   区域配置文件中,有且只能有一个SOA记录,通常SOA记录后应该为NS记录,一个NS记录应该对应一条A记录,还可以添加MX邮件转发记录,AAAA   IPV6记录,CNAME别名记录,PTR反向解析记录。

MX记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;    一个MX记录后面的服务器名字,都应该在对应有一个A记录;

例如:

  aa.com.IN  MX  10  mx1.aa.com.

         IN MX  20  mx2.aa.com.

                               

8、主从设置

      1、在主服务器上必须有对应的NS和A记录指向从服务器

      2、主服务器的区域配置type必须为master

      3、从服务器在增加区域,type为slave ,同时指定masters "主服务器地址"

      4、从服务器区域配置文件位于/var/named/slaves目录下,配置文件不用手动配置,会自动从主服务器同步过来

原创文章,作者:N21-沉舟,如若转载,请注明出处:http://www.178linux.com/40216

赞 (1)
N21-沉舟N21-沉舟
上一篇 2016-08-26 09:14
下一篇 2016-08-26 15:32

相关推荐

  • MySQL系列之一键安装脚本—-单实例/多实例

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1440414       最近在搞MySQL,由于经常测试一些东西。因此,就写了一个一键安装脚本。 脚本用途: 用于在…

    Linux干货 2016-08-15
  • case条件判断语句

    条件判断: case语句     在shell编程中,对于多分支判断,用if 虽然也可以实现,但有些时候,写起来很麻烦,也不容易代码理解。这个时候,可以考虑case。 case 变量引用 in PAT1) 分支1 ;; PAT2) 分支2 ;; … *) 默认分支 ;; esac case语句结构特点如下:…

    Linux干货 2016-08-16
  • 推荐-LVM

    LVM LVM Linux应用 1.LVM简介 LVM:Logical Volume Manager,逻辑卷管理器。LVM利用Linux内核的device-mapper模块来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分…

    2016-04-11
  • linux第一天,不正经的感想

    课是正经课,人正不正经就不知道了

    2018-03-26
  • Linux nginx服务之反向代理

                       Linux nginx服务之反向代理 Nginx服务之反向代理: GSLB:Global Service LB 全局服务负载均衡: SLB:Service LB 应用程序发布: 灰度模型:   ngx_http_…

    系统运维 2016-11-18
  • M22 xfs文件系统命令总结

    Centos6.0及之前的默认文件系统是ext系列的,而在最新的Centos7上却使用了xfs作为默认的文件系统。在Centos7中xfs文件系统包括如下命令: xfs_admin:修改xfs文件系统的参数,需要先卸载分区 用法:xfs_admin [ -eflpu ] [ -c 0|1 ] [ -L label ] [ -U uuid ] device x…

    Linux干货 2017-03-16

评论列表(1条)

  • Net21-冰冻vs西瓜
    Net21-冰冻vs西瓜 2016-08-29 07:02

    图画的不错哈!
    (4、版本 — bind版本有点问题吧,两个CentOS6)
    (6、监听在tpc和udp的53端口,应该是tcp,“临听”应该是”监听”吧),输入法害死人,呵呵