一、什么是DNS?

1.1 简单的理解,Domain Name System,是互联网一项核心的服务,他作为一个桥梁可以将域名和IP地址相互因素的一个分布式数据库,能够使人更加方便的访问互联网,而不用去记复杂的IP地址。

1.2 DNS分成3类:

主DNS

从DNS

转发DNS

1.3 DNS的查询方式

1.3.1 递归查询:只要发出递归查询,服务器必需回答目标IP与域名的映射关系。一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外DNS服务器发出查询请求,得到结果后转交给客户机;

1.3.2 迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以使其他的DNS服务器地址。

一般DNS服务器之间属迭代查询,若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便再向DNS3发出请求;

二、主从DNS的搭建及域名的正反向解析

2.1 测试环境

准备2台虚拟机,一台为主DNS,IP地址为192.168.1.10,另一台为从DNS,IP地址为192.168.1.11

2台虚拟机都装好bind,

1
[root@localhostcw ~]# yum -y install bind
1
[root@localhostcw ~]# yum install -y bind-utils (包含一些配置和测试工具)

bind服务器端程序 
主要执行程序:/usr/sbin/named 
服务脚本:/etc/init.d/named 
默认监听端口:UDP和TCP的53 
主配置文件: /etc/named.conf 
保存DNS解析记录的数据文件位于:/var/named/

2.2 主DNS的配置文件

配置主配置文件/etc/named.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
options {
//      listen-on port 53 { any; };
//      listen-on-v6 port 53 { ::1; };
        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-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";

2.3定义工作目录,添加两个区域,一个正向解析,一个反向解析

编辑/etc/named.rfc1912.zones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//
// 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 {
        type master;
        file "named.localhost";
        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; };
};
添加这2
zone "cwlinux.com" IN {                    //正向解析
        type master;                      //类型为主DNS
        file "cwlinux.com.zone";          //正向解析文件位置
        allow-transfer { 192.168.1.11; }; //授权从DNS连接主DNS
        allow-update { none; };           //允许自动更新
};
zone "1.168.192.in-addr.arpa" IN {      //反向解析
        type master;                     //类型为主DNS
        file "192.168.1.zone";           //反向解析文件位置
        allow-transfer { 192.168.1.11; };//授权从DNS连接主DNS
        allow-update { none; };          //允许自动更新
};

2.3.1 在/var/named/目录中添加正反向解析文件

添加正向解析文件 cwlinux.com.zone

1
[root@localhostcw ~]# vim /var/named/cwlinux.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$TTL 600
@        IN   SOA    dns.cwlinux.com   dnsadmin.cwlinux.com. (//SOA字段
                          2015031288   //版本号    同步一次  +1
                             1H        //更新时间
                             2M        // 更新失败,重试更新时间
                             2D        // 更新失败多长时间后此DNS失效时间
                             1D        //解析不到请求不予回复时间
)
         IN    NS   dns            //有两域名服务器
         IN    NS   ns2
         IN    MX  10 mial        // 定义邮件服务器,10指优先级  0-99 数字越小优先级越高
ns2      IN    A    192.168.1.113  //ns2域名服务器的ip地址
dns      IN    A    192.168.1.10   //dns域名服务器的ip地址
mail     IN    A    192.168.1.111   //邮件服务器的ip地址
www      IN    A    192.168.1.112   //www.cwlinux.com的ip地址
pop      IN   CNAME  mail         //pop的正式名字是mail
ftp      IN   CNAME  www         //ftp的正式名字是www

添加反向解析文件 192.168.1.zone

1
[root@localhostcw ~]# vim /var/named/192.168.1.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 600
@         IN   SOA    dns.cwlinux.com.   dnsadmin.cwlinux.com. (
                             2014031224
                             1H
                             2M
                             2D
                             1D
)
         IN   NS      dns.cwlinux.com.
10       IN   PTR     dns.cwlinux.com.     //反向解析PTR格式
111       IN   PTR     mail.cwlinux.com.
112       IN   PTR     www.cwlinux.com.
// 声明域的时候已经有了,192.168.1 所以我们只需要输入10既代表192.168.1.10

 

检查语法错误

把两个自定义区域文件的属组改为named

1
2
#chown :named /var/named/cwlinux.com.zone   //若这步没做正向解析会出现”server can't find www.cwlinux.com:SERVFAIL”的错误
#chown :named /var/named/192.168.1.zone  //若这步没做反向解析会出现”server can't find 10.1.168.192.in-addr.arpa:SERVFAIL”的错误

安全起见,把这2个文件权限改成640

1
[root@localhostcw ~]# chmod 640 cwlinux.com.zone 1.168.192.zone

2.4 重启主DNS,然后在主DNS上测试正反向解析

 

反向解析

2.5 从DNS主配置文件

vim /etc/named.conf 和主DNS配置一样

编辑区域文件 /etc/named.rfc1912.zones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// 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 {
        type master;
        file "named.localhost";
        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; };
};
添加以下2
zone  "cwlinux.com" IN {                //正向解析
          type slave;                   //类型为从DNS
          masters { 192.168.1.10; };    //主DNS ip地址
        file "slaves/cwlinux.com.zone"// cwlinux.com.zone拷贝到slaves目录下(/var/named/slaves)
      allow-update { none; };           //允许自动更新
};
zone "1.168.192.in-addr.arpa" IN {   // 反向解析
          type slave;                //类型为从DNS
          masters { 192.168.1.10; };  //主DNS ip地址
         file "slaves/192.168.1.zone";// 192.16.1.zone拷贝到slaves目录下(/var/named/slaves)
        allow-update { none; };       //允许自动更新
};
~

重启从DNS

查看/var/named/slaves/

测试正向解析

三、主从同步

在主DNS /var/named/cwlinux.com.zone 中加一条A记录

主DNS重读配置文件

1
[root@localhostcw named]# service named reload

到从DNS上查看是否同步复制过来

从上图看出,数据已经同步传输过来了

这次先介绍了下基于bind实现的主从DNS的配置,正反向域名解析,主从复制这些内容,由于初学DNS,不足之处在所难免,敬请见谅!下次再来介绍下DNS的子域授权和转发机制,view机制!

基于Bind实现的DNS正反向解析及主从DNS的配置的更多相关文章

  1. linux服务基础之DNS正反向解析、主从同步、子域授权及视图

    关键词: 正向解析 反向解析 主从复制 自域授权 视图 一.DNS基本原理 1.1 什么是DNS?BIND又是什么? DNS:Domain Name Service,它是一个基于应用层的协议,是C/S ...

  2. bind域名dns解析及主从服务的配置

    bind域名dns解析及主从服务的配置 1.dns解析介绍     人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...

  3. 架构师成长之路6.4 DNS服务器搭建(部署主从DNS)

    点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS)  部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install ...

  4. DNS正反向区域解析(二)

    域名查询工具 Nslookup命令 >server 202.106.0.20 #指定DNS服务器 >set q=A #指定要查询的类型(A,PTR,MX,CNAME,NS) >www ...

  5. DNS服务搭建(正反向解析)

    版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址链接:https://www.cnblogs.com/wannengachao/p/11954625.html 1.安 ...

  6. linux下DNS服务器搭建,正反向解析配置

    dns服务器之前自己搭建玩过,一段时间不搞,加上当时没写文档,基本忘光光了,这次老实了,写个文档记下来,方便以后查阅. 1.服务器准备 为了避免不必要的问题,关闭防火墙,关闭selinux,hosts ...

  7. Linux搭建基于BIND的DNS服务器

    Linux搭建基于BIND的DNS服务器   实验目标: 通过本实验掌握基于Linux的DNS服务器搭建. 实验步骤: 1.安装BIND 2.防火墙放通DNS服务 3.编辑BIND的主配置文件 4.编 ...

  8. Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法

    使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...

  9. DNS原理及其解析过程 精彩剖析

    本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...

随机推荐

  1. ssh命令的使用

    ssh命令是用来远程登录服务器的,默认端口号为22. 常用的命令是: ssh   用户名@服务器地址 然后回车,输入登录服务器的密码 登录服务器后要进行上传下载文件,可以用scp命令,命令格式为: s ...

  2. 【java多线程】java的内存模型

    Java内存模型 下面是我从百度上引入的一张具有代表性的图 ①解释:我根据这张图来解释java内存模型,从图中可以看出每个线程都需要从主内存中读取操作,这个就是java内存模型的规定之一,所有的变量存 ...

  3. POJ 2406Power Strings(KMP)

    POJ 2406 其实就是一个简单的kmp应用: ans = n % (n - f[n]) == 0 ? n / (n - f[n]) : 1 其中f是失配函数 //#pragma comment(l ...

  4. SQL2008如何清空压缩数据库日志

    SQL2008如何清空压缩数据库日志 编写人:左丘文 2015-4-10 近期在给一系统初始化资料时,不断的导入导出,因此一不小心,就将数据的SQL(sql2008R2)的是日志档弄得比数据库还大,给 ...

  5. 智能家居入门DIY——【四、组合】

    前面几篇介绍了一些传感器和代码,这篇介绍一下把它们组合起来.之所以单独列出这部分,原因在于组合更多功能的时候发现使用软串口库驱动ESP8266时由于内存过小导致发送失败甚至整个系统无法工作的情况.所以 ...

  6. 【转】Java常量池详解

    今天My partner问我一个让他头疼的Java question,求输出结果: /** * * @author DreamSea 2011-11-19 */ public class Intege ...

  7. hackerrank Week of Code 31

    https://www.hackerrank.com/contests/w31/challenges Beautiful Word 模拟 Accurate Sorting 检查每个数字距离原位是否都不 ...

  8. PAT 甲级 1011 World Cup Betting (20)(20 分)(水题,不用特别在乎精度)

    1011 World Cup Betting (20)(20 分) With the 2010 FIFA World Cup running, football fans the world over ...

  9. VS2017如何配置openGL环境

    转自:http://blog.csdn.net/qq_26982531/article/details/62056913 这里着重介绍vs2017配置openGL环境与以前版本的不同之处:       ...

  10. OpenGL 画高斯随机函数

    高斯函数代码 const float CFFTOceanShader::_getGaussianRandomFloat() const { float u1 = rand() / (float)RAN ...