最近在给客户修改软件的时候涉及到了DNS重定向的问题,于是研究了一下broadcom方案DSL ROUTER的DNS,并在opensuSE实现了DNS处理.
一、介绍
1、 broadcom方案DSL ROUTER 是DNSmasq实现DNS代理的。DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务.
它可以提供如下几个实用的功能:
1 提供dns服务
2 优先使用本地自定义dns
3 提供dhcp服务(本DSL ROUTER没有使用到)
2.1 给PC输入域名,如给PC浏览器输入域名,产生DNS请求。
2.2 如果PC的DNS 服务器IP是ROUTER 的IP,并且ROUTER支持DNS 代理并开启,那么PC产生的DNS请求会发送给ROUTER.ROUTER的处理进程会该请求。
2.3 ROUTER的处理进程首先查询自身的缓存/etc/hosts文件是否有该域名的IP,如果有则回复DNS。如果没有根据/etc/resolv.conf的配置把该DNS请求转发到上一级DNS SERVER ,由上一级DNS SERVER 处理。
二、安装
1、在vmware中的opensue10.3下安装
下载: http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.52.tar.gz
解压: tar -xzf dnsmasq-2.52.tar.gz
编译安装:cd dnsmasq-2.52
make install
2、配置
默认配置下,dnsmasq使用系统的/etc/resolv.conf并读取/etc/hosts,
/etc/hosts文件是用来存储dns代理缓存。
dnsmasq可以用hosts文件来设置域名:
例:test.sudone.com是不存在的域名,我在dnsmasq中指向到一个ip里:
echo "64.233.189.99 test.sudone.com" > /etc/hosts
或者直接vi /etc/hosts来添加ip
改完要重启: pkill -9 dnsmasp && /usr/local/sbin/dnsmasq -h
3、实践
在windows运行 命令行 cmd.exe,清除dns缓存:arp -d
在浏览器输入域名:www.baidu.com
通过wireshark抓数据包可以看到www.baidu.com 的dns请求返回的IP是64.233.189.99。