基于Bind实现的DNS正反向解析及主从DNS的配置
一、什么是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的正式名字是mailftp 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的配置的更多相关文章
- linux服务基础之DNS正反向解析、主从同步、子域授权及视图
关键词: 正向解析 反向解析 主从复制 自域授权 视图 一.DNS基本原理 1.1 什么是DNS?BIND又是什么? DNS:Domain Name Service,它是一个基于应用层的协议,是C/S ...
- bind域名dns解析及主从服务的配置
bind域名dns解析及主从服务的配置 1.dns解析介绍 人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...
- 架构师成长之路6.4 DNS服务器搭建(部署主从DNS)
点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS) 部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install ...
- DNS正反向区域解析(二)
域名查询工具 Nslookup命令 >server 202.106.0.20 #指定DNS服务器 >set q=A #指定要查询的类型(A,PTR,MX,CNAME,NS) >www ...
- DNS服务搭建(正反向解析)
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址链接:https://www.cnblogs.com/wannengachao/p/11954625.html 1.安 ...
- linux下DNS服务器搭建,正反向解析配置
dns服务器之前自己搭建玩过,一段时间不搞,加上当时没写文档,基本忘光光了,这次老实了,写个文档记下来,方便以后查阅. 1.服务器准备 为了避免不必要的问题,关闭防火墙,关闭selinux,hosts ...
- Linux搭建基于BIND的DNS服务器
Linux搭建基于BIND的DNS服务器 实验目标: 通过本实验掌握基于Linux的DNS服务器搭建. 实验步骤: 1.安装BIND 2.防火墙放通DNS服务 3.编辑BIND的主配置文件 4.编 ...
- Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...
- DNS原理及其解析过程 精彩剖析
本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...
随机推荐
- 从开发者的角度分析iOS应如何省电
从开发者的角度分析iOS应如何省电 说明 网上关于iPhone如何省电的文章很多.但是基本没有讲原理.而在生活中,很多人在使用iPhone中有着明显的错误的省电习惯. 本文从iOS开发者的角度,对iO ...
- Linux运维学习笔记-通配符及正则表达式知识总结
通配符: * 代表所有 ? 任意一个字符 : 两个命令的分隔符 # 注释 | 管道,将|前命令的执行结果作为|后命令的输入 ~ 用户的家目录 - 上一次的目录 $ 变量前面 ...
- Codeforces 983B. XOR-pyramid【区间DP】
LINK 定义了一种函数f 对于一个数组b 当长度是1的时候是本身 否则是用一个新的数组(长度是原数组-1)来记录相邻数的异或,对这个数组求函数f 大概是这样的: \(f(b[1]⊕b[2],b[2] ...
- Redis学习笔记-常用命令篇(Centos7)
redis提供了丰富的命令,这些命令可以在linux终端使用.在各类语言中,这些命令都有对应的方法. 一.键值相关 1.keys 返回满足给定pattern的所有key 127.0.0.1:6379& ...
- 微信跳一跳,Python辅助自动跳程序
一.说明 此代码借鉴一位大神提供在gitHub上的源码,已经做了简化合并处理,成功连上手机并运行后,可实现自动玩微信跳一跳游戏,刷个1000+的分数轻轻松松 github源码地址 https://gi ...
- Windows 2008 关闭远程桌面的单用户多会话模式
Windows 2008 关闭远程桌面的单用户多会话模式 在腾讯云上购买了一台云服务器. 因为设置了自动登录,在远程桌面连接后会启动一个新的会话,然后软件被运行了两次,端口被占用,无法起动. 还有可能 ...
- jquery on() bind()绑定的点击事件在js动态新添加的元素生效
方法一:$('.class').on("click",function(){……}); 相当于 $('.class').bind("click",functio ...
- 后端渲染html、前端模板渲染html,jquery的html
作者:赵魏璇链接:https://www.zhihu.com/question/28725977/answer/116177149来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- ruby里面的属性访问器
和ios的@property一样 attr_accessor 表明是示例的getter和setter 下面的是rails的扩展,裸体class里面用,貌似会报错 cattr_accessor 表明是类 ...
- Think in java.chm 第14章 多线程
例子1引入线程概念通过得到当前线程方式循环主线程做某事 例子2演示了在主线程之外开启多个线程的基本方式 ( new一个extends Thread ) 例子3 ( task extends Threa ...