| 关键词: DNS DNSmasq ROUTER 配置 域名 hosts etc 缓存 处理 文件 |
最近在给客户修改软件的时候涉及到了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、dns 代理原理:如以下网络拓扑图: 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/resolv.conf文件是用来配置上一级DNS /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 配置好网络,也就是确保opensue10.3与windows 能够ping通,在配置windows的DNS 服务器是填入opensue10.3的IP. 3、实践 在windows运行 命令行 cmd.exe,清除dns缓存:arp -d 在浏览器输入域名:www.baidu.com 通过wireshark抓数据包可以看到www.baidu.com 的dns请求返回的IP是64.233.189.99 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|