用dnsmasq搭建小型的内网DNS

简介:

dnsmasq是个非常小巧的dns服务器,可以解决小范围的dns查询问题,譬如机房内网。

 

大致思路是这样的:

配置dnsmasq为DNS缓存服务器,同时在/etc/hosts文件中加入本地内网解析,这样一来,每当内网机器查询时就会优先查询hosts文件,这就等于将/etc/hosts共享给全内网机器使用,从而解决内网机器互相识别的问题。相比逐台机器编辑hosts文件或者添加bind DNS记录,仅编辑一个hosts文件,这简直太容易了。

实施过程以CentOS 6为例

 

 
 
  1. 安装配置 
  2. yum install dnsmasq -y 
  3. service dnsmasq start 

将其他机器的DNS换成dnsmasq所在的IP即可,玩完了,就这么容易。

 

接下来你就可以编辑hosts文件了,你懂的,简单列举一下格式

 
 
  1. 127.0.0.1  localhost 
  2.  
  3. 192.168.1.10   web01.xxx.com    web01 
  4. 192.168.1.20   web02.xxx.com    web02 

 

hosts文件的强大之处还在于能够劫持解析,譬如mirror.centos.org是CentOS仓库所在,几乎是机器正常必访问一个域名,我将它解析成一个内网地址,搭建一个内网镜像站,不仅内网机器也可以及时得到安全更新,每月还可以节省很多流量。 

 

其他问题 

 
 
  1. 默认配置文件为/etc/dnsmasq.conf,注释掉的不是示例就是默认值。   
  2.    
  3. 默认直接缓存resolv.conf中的nameserver,通过下面的选项指定其他文件   
  4. resolv-file=/etc/resolv.dnsmasq.conf   
  5.    
  6. 默认监听本地所有端口,指定监听端口的办法(别忘了本地回环)   
  7. listen-address=127.0.0.1,192.168.1.56   
  8.   
  9. 我要给dns记录在另外一个文件,而不是/etc/hosts  
  10. addn-hosts=/etc/addion_hosts  
  11.   
  12. 设置dns缓存大小  
  13. cache-size=150  
  14.  
  15. 我担心dnsmasq的稳定性怎么办 
  16. 解决办法一:写脚本或用nagios监视dnsmasq进程,或者定时重启 
  17. 解决办法二:在另一台机器也搭建一个dnsmasq,/etc/hosts文件拷一份过去,客户端指定2个内网DNS 

 

记得在iptables防火墙开放53端口哦!

 

最后补充 一点关于性能优化的想法:

 我们都知道,bind不配合数据库的情况下,经常需要重新载入并读取配置文件,这是造成性能低下的原因。

根据这点教训,我们可以考虑不读取/etc/hosts文件。而是另外指定一个在共享内存里的文件,比如/dev/shm/dnsrecord.txt ,这样就不费劲了,又由于内存的非持久性,重启就消失,可以定期同步硬盘上的某个内容到内存文件中。

 

具体一点就是下面的步骤

 

 
 
  1. /etc/dnsmasq.conf 
  2.  
  3. no-hosts 
  4. addn-hosts=/dev/shm/dnsrecord.txt 

解决同步问题

 
 
  1. 开机启动 
  2. #echo "cat /etc/hosts > /dev/shm/dnsrecord.txt" >>/etc/rc.local 
  3.  
  4. 定时同步内容 
  5. #crontab -e 
  6. */10 * * * * cat /etc/hosts > /dev/shm/dnsrecord.txt 

 










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1083354,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
监控 算法 安全
基于 C# 的内网行为管理软件入侵检测算法解析
当下数字化办公环境中,内网行为管理软件已成为企业维护网络安全、提高办公效率的关键工具。它宛如一位恪尽职守的网络守护者,持续监控内网中的各类活动,以确保数据安全及网络稳定。在其诸多功能实现的背后,先进的数据结构与算法发挥着至关重要的作用。本文将深入探究一种应用于内网行为管理软件的 C# 算法 —— 基于二叉搜索树的入侵检测算法,并借助具体代码例程予以解析。
76 4
|
5月前
|
监控 算法 安全
内网桌面监控软件深度解析:基于 Python 实现的 K-Means 算法研究
内网桌面监控软件通过实时监测员工操作,保障企业信息安全并提升效率。本文深入探讨K-Means聚类算法在该软件中的应用,解析其原理与实现。K-Means通过迭代更新簇中心,将数据划分为K个簇类,适用于行为分析、异常检测、资源优化及安全威胁识别等场景。文中提供了Python代码示例,展示如何实现K-Means算法,并模拟内网监控数据进行聚类分析。
127 10
|
5月前
|
存储 算法 安全
基于 Go 语言的公司内网管理软件哈希表算法深度解析与研究
在数字化办公中,公司内网管理软件通过哈希表算法保障信息安全与高效管理。哈希表基于键值对存储和查找,如用户登录验证、设备信息管理和文件权限控制等场景,Go语言实现的哈希表能快速验证用户信息,提升管理效率,确保网络稳定运行。
80 0
|
7月前
|
存储 监控 算法
企业内网监控系统中基于哈希表的 C# 算法解析
在企业内网监控系统中,哈希表作为一种高效的数据结构,能够快速处理大量网络连接和用户操作记录,确保网络安全与效率。通过C#代码示例展示了如何使用哈希表存储和管理用户的登录时间、访问IP及操作行为等信息,实现快速的查找、插入和删除操作。哈希表的应用显著提升了系统的实时性和准确性,尽管存在哈希冲突等问题,但通过合理设计哈希函数和冲突解决策略,可以确保系统稳定运行,为企业提供有力的安全保障。
|
8月前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
1149 1
|
9月前
|
弹性计算 网络协议 网络安全
内网DNS解析&VPN网关联动实现云上访问云下资源
内网DNS解析&VPN网关联动实现云上访问云下资源
|
4月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
409 29
|
4月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
125 4
|
4月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS