Dnsmasq 指定域名用 DNS 解析时,域名前面带. 和不带点有区别吗?

2015-02-08 13:16:11 +08:00
 hzqim
比如
server=/google.com/127.0.0.1#5353
server=/.google.com/127.0.0.1#5353 有什么区别?
第二个写法不包括 http://google.com

更有这样写的
server=/*.google.com/127.0.0.1#5353 有什么区别?是画蛇添足吗?

谢谢解答。
6388 次点击
所在节点    问与答
8 条回复
KyonLi
2015-02-08 13:38:24 +08:00
不带点的可以把形如 hehegoogle.com 的包括进去,带点的只能包括形如 hehe.google.com
LazyZhu
2015-02-08 14:32:46 +08:00
man 没有加点的说明,不加的话匹配所有下级域名
More specific domains take precendence over less specific domains, so: --server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 will send queries for *.google.com to 1.2.3.4, except *www.google.com, which will go to 2.3.4.5
真相要看源代码才能知道
aa65535
2015-02-08 14:34:38 +08:00
看看代码就知道了

server=/google.com/127.0.0.1#5353 和 server=/.google.com/127.0.0.1#5353
是一样的效果,dnsmasq 会忽略前面的点(不管有多少个),匹配域名为「*.google.com」

server=/*.google.com/127.0.0.1#5353 是错误的写法,因为dnsmasq会将「*.google.com」当做一个域名,但是根本就没有这个域名。

同样适用于 --local --address --rebind-domain-ok 这几个参数的处理。
LazyZhu
2015-02-08 14:39:08 +08:00
注意
一级域名匹配*.google.com,
二级域名匹配*www.google.com,
LazyZhu
2015-02-08 14:47:41 +08:00
*.google.com会作为字符串,匹配*\*.google.com
LazyZhu
2015-02-08 14:51:23 +08:00
aa65535
2015-02-08 14:54:32 +08:00
@LazyZhu 意思就是dnsmasq会将「*.google.com」 这个字符串作为一个特定域名,但是现实中是没有这个域名的,所以实现并不是预期。

那个 fork 好像是提升 ipset 性能的,希望可以提交 patch 给作者。
Samloya
2015-04-22 17:13:09 +08:00
@aa65535 你好 请问下你的优化版dnsmasq –min-cache-ttl 参数 最大可以设定到多少的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX