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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少。对于两者都熟悉的,实现 Bind+DLZ+MySQL正向解析的也已经很多了,但实现反向解析的恐怕是没有几个人去做。原因:一是不怎么需要反向解析,而是即使需要也不知道如何配置。

其实反向解析还是需要的,比如说邮件系统或者防火墙系统会判断电子邮件的域名和IP地址是否在DNS注册的值相匹配以确定是否是垃圾邮件。

实现DNS的反向解析其实和正向解析的原理是一样的,只要对DNSDLZACLVIEW以及原理深刻理解一下就可以类比互通,以和正向解析同样的方式来实现反向解析。

对比一下下面的示例一看便知。

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.');

插入NSA记录

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服务器自身)而不使用其他网络中的主机进行测试时,则必须指定一个anyview类型,否则服务器可能返回一个错误信息。

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”。

Windowsnslookup命令返回“*** [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的反向解析其实和正向解析的原理是一样的,只要对DNSDLZACLVIEW的原理深刻理解一下就可以类比互通,以和正向解析的同样的方式来实现反向解析。

插入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.');

插入NSA记录

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,如需转载请自行联系原作者

相关文章
|
9天前
|
SQL 关系型数据库 MySQL
深入解析MySQL的EXPLAIN:指标详解与索引优化
MySQL 中的 `EXPLAIN` 语句用于分析和优化 SQL 查询,帮助你了解查询优化器的执行计划。本文详细介绍了 `EXPLAIN` 输出的各项指标,如 `id`、`select_type`、`table`、`type`、`key` 等,并提供了如何利用这些指标优化索引结构和 SQL 语句的具体方法。通过实战案例,展示了如何通过创建合适索引和调整查询语句来提升查询性能。
74 9
|
1天前
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
24 12
|
4天前
|
存储 缓存 关系型数据库
MySQL的count()方法慢
MySQL的 `COUNT()`方法在处理大数据量时可能会变慢,主要原因包括数据量大、缺乏合适的索引、InnoDB引擎的设计以及复杂的查询条件。通过创建合适的索引、使用覆盖索引、缓存机制、分区表和预计算等优化方案,可以显著提高 `COUNT()`方法的执行效率,确保数据库查询性能的提升。
67 12
|
11天前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
|
1月前
|
监控 关系型数据库 MySQL
MySQL自增ID耗尽应对策略:技术解决方案全解析
在数据库管理中,MySQL的自增ID(AUTO_INCREMENT)属性为表中的每一行提供了一个唯一的标识符。然而,当自增ID达到其最大值时,如何处理这一情况成为了数据库管理员和开发者必须面对的问题。本文将探讨MySQL自增ID耗尽的原因、影响以及有效的应对策略。
130 3
|
1月前
|
存储 关系型数据库 MySQL
MySQL 字段类型深度解析:VARCHAR(50) 与 VARCHAR(500) 的差异
在MySQL数据库中,`VARCHAR`类型是一种非常灵活的字符串存储类型,它允许存储可变长度的字符串。然而,`VARCHAR(50)`和`VARCHAR(500)`之间的差异不仅仅是长度的不同,它们在存储效率、性能和使用场景上也有所不同。本文将深入探讨这两种字段类型的区别及其对数据库设计的影响。
78 2
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发深度解析####
本文作为技术性文章,深入探讨了PHP与MySQL结合在动态网站开发中的应用实践,从环境搭建到具体案例实现,旨在为开发者提供一套详尽的实战指南。不同于常规摘要仅概述内容,本文将以“手把手”的教学方式,引导读者逐步构建一个功能完备的动态网站,涵盖前端用户界面设计、后端逻辑处理及数据库高效管理等关键环节,确保读者能够全面掌握PHP与MySQL在动态网站开发中的精髓。 ####
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
13 3
|
3天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
18 3
|
3天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
22 2

相关产品

  • 云解析DNS
  • 推荐镜像

    更多