1.刷了openwrt,很多教程里面不一样,有的在luci的“本地服务器”里面填写127.0.0.1#5353,有的是在“DNS转发”里面填写127.0.0.1#5353。这两者有什么区别吗?
2.为什么这里的设置没有写入到dnsmasq.conf的配置文件里呢?
3.我用dig,查到SERVER:127.0.0.1#53,是53而不是5353,是不是意味我用的是dnsmasq而不是chinadns解析?
小白问题,搜索无果,求科普一下,谢谢!
1
westy 2015-05-18 13:48:07 +08:00
当时折腾的时候弄明白了,不过记得不是太清楚,如果错了楼下烦请更正一下。
127.0.0.1#5353 是 Chinadns。 DNS转发里填这个,是为了接入路由的其他设备在进行DNS查询的时候,DNSMasq把请求转发到 127.0.0.1#5353上去。 |
2
heiybb 2015-05-18 14:01:25 +08:00 via Android
手机打字太麻烦,先回答1
对于填入:127.0.0.1#5353 两者效果是相同的,具体区别不知道,在恩山论坛上问过,得到的解释模棱两可,Openwrt的Dnsmasq文档也没有清楚的写明白两者的区别,Google后发现也有不少人不明白这个问题,但各种解释也说不清楚,后来也就不了了之了。 |
3
heiybb 2015-05-18 14:03:01 +08:00 via Android
2 这里填入的配置其实保存在/etc/config/DHCP (应该没记错)
并不是保存在Dnsmasq.conf |
4
heiybb 2015-05-18 14:06:45 +08:00 via Android
3 你dig时没有指定端口默认就按53端口查询,只不过Dnsmasq把53端口的Request转发到ChinaDNS处理(这就是你刚刚填127.0.0.1#5353的作用),最终的回显当然是53端口。Dnsmasq在此处只起到转发Request的作用。
|
5
heiybb 2015-05-18 14:10:22 +08:00 via Android
以上是个人理解,如果有不妥当的地方欢迎指正。
|
6
vtexfan OP 谢谢两位,的确如 @heiybb 兄所说,配置文件在dhcp里面。
1 问题在dhcp里: option local '127.0.0.1#5353' //本地服务器 list server '127.0.0.1#5353' //DNS转发 好像使用起来并没有太多不同。 2 dhcp的优先级要高于dnsmasq?我看很多教程里面都是在dnsmasq.conf修改服务器和noresolv 3 那这样dnsmasq的缓存还有效吗?一直没找到缓存文件在那儿 |
7
bugeye 2015-05-18 14:48:44 +08:00
1. /etc/config/dhcp是openwrt这个特定linux发行版的配置文件,在dhcp文件里面,可以设置dnsmasq的很多行为。但语法和dnsmasq.conf用的不同。
2. dhcp高于dnsmasq.conf,也就是说,如果dnsmasq.conf和dhcp设置了同样的配置,以dhcp为主。 3. dnsmasq缓存和转发到chinadns解析无关。 4. “.我用dig,查到SERVER:127.0.0.1#53,是53而不是5353,是不是意味我用的是dnsmasq而不是chinadns解析?” 你是用dnsmasq解析,但只要设置正确,dnsmasq就会把你的请求 转给chinadns。要知道有没转过去,最简单的办法是 dig www.youtube.com,看看返回的值像不像真的。 另外,由于你是用dnsmasq解析,所以可以使用dnsmasq的附加功能,比如某个网址(假设youku.com)如果不想用chinadns解析,可以在 dnsmasq.conf里增加一行 server=/youku.com/8.8.8.8。这样遇到youku.com,dnsmasq就不会转发到chinadns,而是向你指定的8.8.8.8去查询。 |
8
vtexfan OP |
9
bugeye 2015-05-18 15:44:56 +08:00
1. 没研究过dnsmasq的缓存在哪的问题。照我的理解,应该放在内存里吧。
至于缓存多长时间,应该是查询域名时的ttl的作用。比如你dig www.youku.com,你可以看到一个数字,我这里显示的是204,也就是这个域名的时效是204秒,dnsmasq应该不会缓存超过这个值。当然有些程序可以强行让dns缓存超过TTL,但具体到dnsmasq有没有这功能就不知道了,没研究过这个问题。 另外dnsmasq默认好像只缓存150次域名查询,这样太多域名查询也会造成某些域名没到TTL时间就给新查询冲掉。在路由器内存许可的情况下,可以在dnsmasq.conf加上 cache-size=XXXX 来增大这个缓存的数量。我的路由器上设置的是9999 2. 这个挺麻烦的吧,可以dig一下,看看解析出来的IP属于哪家运营商,如果跨运营商,在国内经常很慢。但很多时候也可能仅仅是线路偶然抽疯,或者对方服务器出故障造成的。。。 |
10
LazyZhu 2015-05-18 16:12:59 +08:00
没有优先级一说
简单说一下吧, /etc/config/是OpenWRT独有的配置方式(主要为了luci而设计的), 配置参数通过uci wapper (Shell script/init.d) 转化成程序所使用的格式, 前面的option local '127.0.0.1#5353' / list server '127.0.0.1#5353' 转换成命令行参数或者dnsmasq.conf文件中,两者是一样的效果:server= https://github.com/openwrt-mirror/openwrt/blob/dcbb1729bae0978f5c27a52784dc2c1325292728/package/network/services/dnsmasq/files/dnsmasq.init#L147 https://github.com/openwrt-mirror/openwrt/blob/dcbb1729bae0978f5c27a52784dc2c1325292728/package/network/services/dnsmasq/files/dnsmasq.init#L148 和手动修改dnsmasq.conf效果是一样的 |