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的不足之 ...
随机推荐
- 用SQL*Plus命令启动和关闭数据库
用SQL*Plus命令启动和关闭数据库 1.启动方式 starup或startup open startup nomount startup mount startup read only [x] s ...
- Go golang语言特性
一.垃圾回收 1.内存自动回收. 2.只需要创建,不需要释放 二.天然并发: 1.语言层支持并发,对比python,少了GIL锁. 2.goroute,轻量级线程. 3.基于CSP模型实现 三.cha ...
- Java第二十四天,线程安全
线程安全 1.定义 多线程访问共享数据,会产生线程安全问题. 2.代码模拟 卖票Ticked类: package com.lanyue.day22; public class Person { pub ...
- MySQL5.7使用Notifier启动、停止服务时出现的问题
1.选择右击右下角 MySQL Notifier ,选择 Actions -> Manage Monitored Items 2.选择当前的服务 MySQL57 并进行删除 3.然后点击 a ...
- 数据结构和算法(Golang实现)(24)排序算法-优先队列及堆排序
优先队列及堆排序 堆排序(Heap Sort)由威尔士-加拿大计算机科学家J. W. J. Williams在1964年发明,它利用了二叉堆(A binary heap)的性质实现了排序,并证明了二叉 ...
- ADT_Bundle搭建
1.打开SDK Manager.exe,打开的速度有点慢.点击右下角的[install n packages...],选择[accept ...],点击[install],然后等待安装.过程有点漫长, ...
- 使用 PyQt5 实现图片查看器
一.前言 在学习 PyQt5 的过程中我会不断地做一些小的 Demo,用于让自己能够更好地理解和学习,这次要做的就是一个图片查看器,主要功能包括打开图片.拖动图片.放大和缩小图片. 最终实现的图片查看 ...
- cmd命令行中查看、修改、删除与添加环境变量
注意:只在当前窗口生效!! 1.查看当前所有可用的环境变量:输入 set 即可查看. set 2.查看某个环境变量:输入 “set 变量名”即可 set python 3.修改环境变量 :输入 “se ...
- shiro:入门程序(一)
SpringMVC项目 1:pom引入相关依赖 <dependencies> <!--测试依赖--> <dependency> <groupId>jun ...
- Springboot:thymeleaf模板(八)
存放位置:resources\templates 访问方式:通过Controller请求访问,不可直接访问(相当于web项目的WEB-INF目录) 环境依赖: <!--thymeleaf模板支持 ...