Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少。对于两者都熟悉的,实现 Bind+DLZ+MySQL正向解析的也已经很多了,但实现反向解析的恐怕是没有几个人去做。原因:一是不怎么需要反向解析,而是即使需要也不知道如何配置。
其实反向解析还是需要的,比如说邮件系统或者防火墙系统会判断电子邮件的域名和IP地址是否在DNS注册的值相匹配以确定是否是垃圾邮件。
实现DNS的反向解析其实和正向解析的原理是一样的,只要对DNS、DLZ、ACL和VIEW以及原理深刻理解一下就可以类比互通,以和正向解析同样的方式来实现反向解析。
对比一下下面的示例一看便知。
1.实现DNS的正向解析
插入SOA记录
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`,`mx_priority`,
`refresh`, `retry`, `expire`, `minimum`, `serial`, `resp_person`, `primary_ns`,`second_ns`,
`data_count`) VALUES
('vtest.org', '@', 'SOA', 'ns1.vtest.org.', 10, NULL, 600, 3600, 86400,
10, 2011061200, 'vtest.org.', 'ns1.vtest.org.','ns2.vtest.org.',0);
插入@和NS记录
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES
('vtest.org', '@', 'NS', 'ns1.vtest.org.'),
('vtest.org', '@', 'NS', 'ns2.vtest.org.');
插入NS和A记录
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES
('vtest.org', 'ns1', 'A', '172.16.201.204'),
('vtest.org', 'ns2', 'A', '172.16.201.206');
注意:在插入的过程中需要指定属于哪一个ISP提供商,见附表。
|
ISP |
简称 |
|
中国电信 |
dx |
|
中国联通 |
lt |
|
中国移动 |
yd |
|
中国铁通 |
td |
|
中国教育网 |
edu |
|
其他ISP类型 |
any |
如果只使用内网进行测试(特别是使用DNS服务器自身)而不使用其他网络中的主机进行测试时,则必须指定一个any的view类型,否则服务器可能返回一个错误信息。
Linux的dig命令返回“;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 49529”;nslookup命令返回“** server can't find www.vtest.org: NXDOMAIN”或“** server can't find www.vtest.org: SERVFAIL”。
Windows的nslookup命令返回“*** [172.16.201.204] can't find www.vtest.org: Server failed”。
如果日志中没有提示错误,配置文件也没有权限或者限制等问题,则一定是出在view这种逻辑问题上。
插入CNAME记录
注意事项与插入A记录相同(view问题)。
INSERT INTO dns_records (zone,host,type,DATA,view) VALUES
('vtest.org', 'bbs', 'CNAME', 'www','dx');
2.实现DNS的反向解析
实现DNS的反向解析其实和正向解析的原理是一样的,只要对DNS、DLZ、ACL和VIEW的原理深刻理解一下就可以类比互通,以和正向解析的同样的方式来实现反向解析。
插入SOA记录
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`,`mx_priority`,
`refresh`, `retry`, `expire`, `minimum`, `serial`, `resp_person`, `primary_ns`,`second_ns`,
`data_count`) VALUES
('201.16.172.in-addr.arpa', '@', 'SOA', 'ns1.vtest.org.', 10, NULL, 600, 3600, 86400,
10, 2011061200, 'vtest.org.', 'ns1.vtest.org.','ns2.vtest.org.',0);
插入@和NS记录
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES
('vtest.org', '@', 'NS', 'ns1.vtest.org.'),
('vtest.org', '@', 'NS', 'ns2.vtest.org.');
插入NS和A记录
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES
('201.16.172.in-addr.arpa', '204', 'PTR', 'www1.vtest.org.'),
('201.16.172.in-addr.arpa', '205', 'PTR', 'www2.vtest.org.');
总之设置方面一句话,只要明白zone记录的写法一切就OK了!思路方面:多类比,多尝试,遇到问题不要急于找资料,先理顺思路、分析透彻,一切慢慢来。
本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1174723,如需转载请自行联系原作者
Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法的更多相关文章
- DNS的正向解析与反向解析
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据I ...
- Python3.6正向解析与反向解析域中主机
公司最近接手的一家跨国企业的项目,该企业单域.多站点,且遍布美国.巴西.日本.东京.新加坡等多个国家,服务器及客户端计算机数量庞大.由于处理一些特殊故障,需要找出一些不在域中的网络设备及存储.NBU等 ...
- Django 正向解析与反向解析
正向解析就是按照顺序查找访问(urls.py---view--templates) 反向解析就是根据命名空间命名来调到指定的页面 用反向解析的原因: 随着功能的增加会出现更多的视图,可能之前配置的正则 ...
- DNS正向解析与反向解析
DNS:(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网, 而不去记住能够被机器直接读取的IP数串.通过主机名,最 ...
- bind+dlz+mysql实现区域记录动态更新
BIND-DLZ实验:http://bind-dlz.sourceforge.net/ 实验环境:RHEL4,BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已含DLZ补丁),Mysql ...
- Django正向解析和反向解析
转载:https://blog.csdn.net/jeekmary/article/details/79673867 先创建一个视图界面 urls.py index.html index页面加载的效果 ...
- DNS服务正向解析实验
DNS域名解析服务是用于解析域名与ip地址对应关系的服务,功能上可以实现正向解析和反向解析 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据IP地址查找对应的主机名(域名). 下面我来 ...
- Mysql异常问题排查与处理——mysql的DNS反向解析和客户端网卡重启
中午刚想趴一会,不料锅从天降!!!Mysql连不上了....... 现象如下: 现象1:登录mysql所在服务器,连接MySQL 成功: 现象2:通过客户端远程连接MySQL,返回失败,如下: Ent ...
- bind9+dlz+mysql连接断开问题
前言 关于bind-dlz介绍:http://bind-dlz.sourceforge.net/ DLZ(Dynamically Loadable Zones)与传统的BIND9不同,BIND的不足之 ...
随机推荐
- 《闲扯Redis四》List数据类型底层编码转换
一.前言 Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要. ...
- 六、路由详细介绍之动态路由RIP(了解一下就行)
动态路由分为距离矢量路由(RIP)和链路状态(OSPF和ISIS) 一.离矢量路由协议-RIP RIP协议现在基本上被淘汰. RIP动态路由协议工作原理,如上图: R12中有192.168.1.0和1 ...
- MySQL中information_schema 数据库 是干什么的
MySQL中information_schema是什么 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库. information_sc ...
- 数据结构和算法(Golang实现)(21)排序算法-插入排序
插入排序 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序.就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复. 插入排序属于插入类排序算法. 除了我以外,有些人打扑 ...
- 如何改变Xcode字体大小?
运行Xcode后依次点击左上角Xcode/Preferences/Fonts & Colors里就可以调整,在右边随便点中一个字体就可以调整这个字体的大小和颜色了,按command+a可以将所 ...
- JAVA—线程(Thread)
1.线程的状态有哪些 我记得在操作系统原理的书上有一张具体的图,暂时找不到书... new:新建状态,被创建出来后未启动时的线程状态. runnable:就绪状态,表示可以运行. blocked:阻塞 ...
- [书籍精读]《React Native精解与实战》精读笔记分享
写在前面 书籍介绍:本书由架构师撰写,包含ReactNative框架底层原理,以及与iOS.Android混合开发案例,精选了大量实例代码,方便读者快速学习.主要内容分为两大部分,第1部分" ...
- PHP常量:JSON_UNESCAPED_UNICODE
函数: json_encode() - 对变量进行 JSON 编码 说明: json_encode ( mixed $value [, int $options = 0 [, int $depth = ...
- curl book
curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 官方地址 man page 下载页面, ...
- Ansible Facts 变量详解
Ansible Facts 变量详解与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. ...