Dnsmasq是一个很实用的小工具,解决局域网的需求看来非常合适,特别是网关和防火墙上。

它可以提供如下几个实用的功能:
1 提供dns服务
2 优先使用本地自定义dns
3 提供dhcp服务

一般情况下,我们可以用bind解决dns的问题,dhcpd解决dhcp的问题,另外,还可以用ypbind解决自定义hostname解析的ip(当然还有用户的功能),它都解决了!很实用吧?这真的很吸引人,况且它一直在更新维护,最新版本是6月份的。

安装过程很简单:

wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.55.tar.gz
tar xfz dnsmasq-2.55.tar.gz
cd dnsmasq-2.55
make
make install
cp dnsmasq.conf.example /etc/dnsmasq.conf


运行起来就可以解决第一个问题:

[root@aslibra dnsmasq-2.55]# dnsmasq
[root@aslibra dnsmasq-2.55]# netstat -nlp|grep dnsmasq
tcp        0      0 0.0.0.0:53                  0.0.0.0:*                   LISTEN      25584/dnsmasq      
tcp        0      0 :::53                       :::*                        LISTEN      25584/dnsmasq      
udp        0      0 0.0.0.0:53                  0.0.0.0:*                               25584/dnsmasq      
udp        0      0 :::53                       :::*                                    25584/dnsmasq      


默认情况下,作为dns服务,第一个问题解决了。

我们尝试解决第二个问题,可以说是dns劫持?没有那么严重,用好了其实很实用。
有如下几个问题比较棘手:

1 局域网有很多机器希望使用一份一样的hosts定义一批名称对应的ip,你需要经常维护这份列表
2 你希望局域网的人访问某个域名时,拦截下来到指定的ip,做缓存节省带宽或者其它用途都可以
3 禁止某个域名的正常解析

这个更改涉及两个文件:
1 /etc/hosts
2 /etc/dnsmasq.conf

我们先在hosts文件里加入两行:

192.168.1.3     server1
192.168.1.2     www.aslibra.com


编辑dnsmasq.conf,找到如下代码:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
#address=/doubleclick.net/127.0.0.1
address=/baidu.com/127.0.0.1


重启dnsmasq即可,下面我们在局域网另外一个机器用dig命令测试一下:


#说明:查询公网返回失败
[root@aslibra ~]# dig server1
...
;; QUESTION SECTION:
;server1.                       IN      A

;; AUTHORITY SECTION:
.                       9949    IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2010072501 1800 900 604800 86400
#说明:查询dnsmasq,这里是dig的功能,模拟dns查询,返回hosts文件的设定
[root@aslibra ~]# dig server1 @192.168.1.45
...
;; QUESTION SECTION:
;server1.                       IN      A

;; ANSWER SECTION:
server1.                0       IN      A       192.168.1.3
#说明:正常查询
[root@aslibra ~]# dig www.aslibra.com
...
;; QUESTION SECTION:
;www.aslibra.com.               IN      A

;; ANSWER SECTION:
www.aslibra.com.        1029    IN      A       218.241.231.187
#说明:查询dnsmasq,返回hosts文件的设定
[root@aslibra ~]# dig www.aslibra.com @192.168.1.45
...
;; QUESTION SECTION:
;www.aslibra.com.               IN      A

;; ANSWER SECTION:
www.aslibra.com.        0       IN      A       192.168.1.2
#说明:正常查询
[root@aslibra ~]# dig www.baidu.com
...
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          1200    IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       600     IN      A       119.75.213.50
www.a.shifen.com.       600     IN      A       119.75.213.51
#说明:查询dnsmasq,返回配置文件的设定
[root@aslibra ~]# dig www.baidu.com @192.168.1.45
...
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          0       IN      A       127.0.0.1
#说明:其它二级域名也不能幸免
[root@aslibra ~]# dig tieba.baidu.com @192.168.1.45
...
;; QUESTION SECTION:
;tieba.baidu.com.               IN      A

;; ANSWER SECTION:
tieba.baidu.com.        0       IN      A       127.0.0.1


至此已经成功解决,dhcp功能可以自行测试,阅读默认配置文件即可,很便捷,可以按机器名称或mac地址分配ip。

另外,重启dnsmasq可以用SIGHUP(可以在修改hosts文件后,让配置生效)

killall -s SIGHUP dnsmasq


参考阅读:

1 dnsmasq官网
2 dnsmasq手册
3 移植Dnsmasq到Android
4 用dnsmasq解决firefox上网慢
5 dns缓存服务器 dnsmasq


原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
Tags: , ,
wuxinxinggg Homepage
2011/11/12 11:54
http://www.wuxinxinggg.tk 我的博客,华中科技大学的吗?
kxmrj
2010/12/09 10:58
请问,这个程序关于dhcp如何使用?刚接触这个软件,很困惑。
hqlulu 回复于 2010/12/09 18:09
看配置文档,应该是定义一个dhcp的网段范围即可
我的宝贝叫妞 Homepage
2010/08/01 22:32
学习了。
看上去是很实用的工具。
阁下是个高手啊,对这么多领域都有涉及
hqlulu 回复于 2010/08/01 22:42
只是有点了解,喜欢做个笔记而已
分页: 1/1 第一页 1 最后页
发表评论
AD
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐