商务服务
工控网络基础入门篇之Dnsmasq解析器(一)
2024-11-20 23:32

Dnsmasq 是 OpenWRT 系统默认内置的 DNS 解析器,要注意这个解析器不等同于 nslookup 和 dig,后面的只是调试工具,除了返回一些查询信息外不能给任何系统和应用提供解析结果,而 Dnsmasq可以。

工控网络基础入门篇之Dnsmasq解析器(一)

Dnsmasq并不能算是一个DNS服务器软件,他的准确定义是一个DNS转发器。就是说,它把收到的DNS解析请求,转发到一些 DNS服务器上去,然后从DNS服务器接收返回的结果,最后再返回给你? 你也许会觉得我自己查询不好吗,干嘛要你来转发? 其实它能做的不仅仅是转发,转发仅仅是他实现 DNS查询的方式,我们知道它即不能递归查询,又不是迭代,能做的当然就是转发了。

首先它提供了一个缓存功能,这可以大大减轻你查询的网络请求次数,这也是为什么很多时候我们可以把他当一个DNS服务器来用的原因。除此之外Dnsmasq提供了非常多灵活的选项让我们可以完全掌控 DNS解析的行为。

1、 IPSET 功能

Dnsmasq从2.66版开始就支持 IPSET功能了,注意OpenWRT默认自带的 Dnsmasq是精简版本并没有 IPSET 功能,需要我们自己替换为 dnsmasq-full,也就是完整版。如果要确定自己的Dnsmasq 有没有 IPSET 功能支持,可以 SSH 登录路由后输入 “dnsmasq –version” 查看当前的版本和编译信息,可以看到下面的信息中已经包含了 ipset,如果显示的是 “no-ipset”,就说明没有 IPSET 功能支持。

root@OpenWrt :~# dnsmasq -- version

Dnsmasq version 2.71 Copyright (c) 2000 -2014 Simon Kelley

Compile time options : IPv6 GNU - getopt no -DBus no -i18n no -IDN DHCP DHCPv6 no -Lua TFTP no -

conntrack ipset auth DNSSEC

This software comes with ABSOLUTELY NO WARRANTY .

Dnsmasq is free software , and you are welcome to redistribute it

under the terms of the GNU General Public License , version 2 or 3.

这个功能的作用,就是把指定域名的解析结果存入一个 IP,具体哪些域名可以通过配置文件来指定。例如访问***,那么我们就把***.com的 IP都加入一个叫vpn的IPSET,然后配合我们前面学过的 iptables mark 功能,ip route 命令把对 *** IP 的访问全部通过 VPN 接口进行。我们的命令是这样的:

非常令人感动的一点是,dnsmasq 是支持从顶级域往下匹配的,也就是说你写了***.com 之后,其二级三级四级域名也全部被匹配了,后面 “vpn” 就是我们事先通过 ipset 命令建立好的用于存储这些 IP 的 IPSET。

你也许会想,网站那么多IP,Dnsmasq能全部都查到? 查不到! 可是也完全没必要查到。因为你能用到的 IP就是 DNS 解析给你的 IP,其他的 IP 如果你连解析都没去解析他,为什么要知道呢?

这其实也就是 FreeRouter V2里相对 V1最优美的地方了,只有在你需要访问某个被封锁的IP时它才会起作用,而且具体什么IP可能被封锁是完全由你自己指定的,因为域名是你指定的。在 FreeRouter V1里这一切是通过静态路由表的方式实现的,这种方法的缺点是:

1. 要精确搜集一个网站的全部子域名和对应的全部IP极度困难

2. 以为精确搜集很难,所以经常不得不把整个网段加入静态路由表,但整个网段中有很多IP其实是没问题的

3. 很多IP对应的网站普通人听都没听过,这辈子可能也都不会上,但是如果不加注释的话,你根本不知道IP对应的到底是什么网站

4. 因为IP的可读性太差,如果根本就停掉了,要找出网站对应的IP再删除都很繁琐

而用 Dnsmasq 的 IPSET 功能就完全没有这种问题了。

2、为 Dnsmasq 指定 DNS

Dnsmasq 其实是一个 DNS 转发器,只是把我们的 DNS 解析请求转发到各个公共 DNS 上,那么我们就必须为 Dnsmasq 指定好使用哪些 DNS。

在 OpenWRT 系统中,Dnsmasq 的默认 DNS 服务器来源是通过在/etc/config/dhcp 文件中配置实现的:

config dnsmasq

option domainneeded '1'

option boguspriv '1'

option filterwin2k '0'

option localise_queries '1'

option rebind_protection '1'

option rebind_localhost '1'

option local '/lan/'

option domain 'lan '

option expandhosts '1'

option nonegcache '0'

option authoritative '1'

option readethers '1'

option leasefile '/tmp/。dhcpleases '

option resolvfile '/tmp/ resolv .。confauto '

我们看到最后一行是 resolvfile,查一下 Dnsmasq 的 Man Page 就会看到 Dnsmasq 会通过读取这个选项中指定的文件来获取 DNS 服务器列表,如果没有通过这个选项指定 DNS 服务器的配置文件的话,dnsmasq 默认会去读取/etc/resolv.conf 文件读取 DNS 服务器列表。

我们再看看这个/etc/resolv.conf。auto 文件的内容,不同设备可能有区别,但格式基本如此:

# Interface WAN

nameserver 8.8.8.8 nameserver 。。。8844

# Interface VPN

nameserver 8.8.8.8 nameserver 。。。8844

这个数据是怎么来的呢? 原来当我们的每一个网络接口成功连接上之后 (interface up),如果这个接口上有配置 DNS 服务器,或者 DHCP 服务器通告了 DNS 服务器,就会在这个文件里写入这个接口的 DNS 服务器。

如果我们要指定 DNS 服务器,而不是让 Dnsmasq 自动从各个接口获取 (因为 ISP 分配给我们的 DNS 基本都是被污染的),最简单也是最简陋的方法就是手工在每个接口的配置界面中指定 DNS,这样自动获取到的也是我们指定的 DNS。但是如果网络环境发生了变化,或者需要重新设置接口,就又要重新设置一次。而且这实际上就修改到了/etc/config/network 文件,倒不是说不能这样改,只是每个人的网路环境是不同的,这个文件也会因人而异,这样让我们很难提供一个统一的解决方案。

还有一个方法就是修改/etc/config/dhcp 文件,把最后的 resolvefile 选项改成我们指定的文件,然后在那个文件里写入 DNS 服务器列表,但是和上面的原因一样,修改 config 目录的文件会导致无法提供统一的解决方案。

最后我发现 dnsmasq 提供了一个参数叫做 “no-resolv”,这个选项允许不从任何文件中读取 DNS 服务器列表,改用 server 参数手工指定 DNS 服务器。这个时候我们就只需要在 Dnsmasq.conf(Dnsmasq 的配置文件) 中写如下命令就可以了:

# disable resolv file

no - resolv

server =8.8.8.8

井号 “#” 开始的部分是注释代码,会被 Dnsmasq 忽略掉,no-resolv 就是不读取任何任何列表文件, server=8.8.8.8 就表示用 8.8.8.8 作为一个 DNS 服务器。

如果我们想知道 Dnsmasq 到底使用了什么 DNS 服务器,可以先重启 Dnsmasq 服务:

/etc/。initd / dnsmasq restart

    以上就是本篇文章【工控网络基础入门篇之Dnsmasq解析器(一)】的全部内容了,欢迎阅览 ! 文章地址:http://lanlanwork.gawce.com/news/9915.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 阁恬下移动站 http://lanlanwork.gawce.com/mobile/ , 查看更多   
最新新闻
波杰抢戏詹库对决:28+8+8三分连创新高 末节决胜三分价值千金
北京时间4月4日,勇士以123-116击败湖人拿到四连胜。这场比赛波杰姆斯基抢戏了VS大小王之战,波杰上半场22分最高,全场比赛28分+
上市险企推动业务结构转型:分红险占比提升助力降低刚性负债成本
随着保险行业步入转型期,上市险企纷纷调整业务结构,大力推动分红险业务发展。根据最新数据,2025年以来,保险行业新备案的185
笔记本热点手机连不上一直正在连接-笔记本开热点手机连不上电脑连不上手机热点怎么回事「笔记本热点手机连不上一直正在连接-笔记本开热点手机连不上」
嗨,朋友们好!今天给各位分享的是关于笔记本开热点手机连不上的详细解答内容,本文将提供全面的知识点,希望能够帮到你!3、可
华为手机有电自动关机是怎么回事华为手机自动关机「华为手机有电自动关机是怎么回事」
山和水不是反义词。“山”的意思:1、地面形成的高耸的部分:土山。2、形状像山的:山墙(人字形房屋两侧的墙壁。亦称“房山”)
如何免费获取Windows10激活密钥?Win10统用激活码推荐 附激活工具windows10手机版「如何免费获取Windows10激活密钥?Win10统用激活码推荐 附激活工具」
Windows10专业版/企业版激活密钥/神key分享!win10专业版和企业版都不是免费使用的,需要我们使用产品密钥来激活,如果没有激活
计算机硬盘内存不足,电脑提示磁盘空间不足怎么办手机磁盘空间不足怎么清理「计算机硬盘内存不足,电脑提示磁盘空间不足怎么办」
使用电脑偶尔会遇到“磁盘空间不足”的提示,导致我们无法继续安装或运行程序,那么电脑提示磁盘空间不足怎么办呢?
小说都不敢这么写!做了好长时间朋友,才知是双胞胎姐妹!
同样的发型、同样的穿搭,相同的声音动作,相同的性格习惯,再加一个“复制粘贴”外表,近日,家住河北廊坊大厂县的这对双胞胎姐
苹果怎么呼叫转移,苹果手机设置呼叫转移是怎么设置的座机转接到手机怎么设置「苹果怎么呼叫转移,苹果手机设置呼叫转移是怎么设置的」
设置-电话-呼叫转移要想多功能的转移那就注:输入完这些,一定要按呼叫具体如下:所有来电查询状态:*#21# 呼叫设置转移:**21
女朋友的手机里,都藏着哪些秘密?手机里的秘密「女朋友的手机里,都藏着哪些秘密?」
大家好,我是你们的紫薇~咱部门的某个实习生小妹妹最近脱单了,紫薇打趣她,有些东西不该看的就别看,比如……手机。毕竟没有人
苹果手机数据传输工具免费试用指南手机传输「苹果手机数据传输工具免费试用指南」
下面给大家推荐几款好用的免费的苹果手机助手软件,有需要的小伙伴们来了解一下。iTunes是一款数字媒体播放应用程序,由苹果公司