怎样针对某个域名只解析 ipv4,不解析 ipv6

2014-09-11 10:58:42 +08:00
 berry10086
路由器上用pdnsd解决dns污染,dnsmasq配合ipset翻墙,但是发现google.com默认解析ipv6的地址,并没有加到ipset里,最近教育网通过ipv6 访问google时断时续,请问有没办法只让google解析ipv4地址而不影响其他地址的解析。
试过了在dnsmasq里加入address=/google.com/173.194.127.72 这样解析是没问题了,但是这个ip就不能自动添加到ipset里。
dnsmasq的配置
server=/google.com/127.0.0.1#1053
ipset=/google.com/letitgo
2584 次点击
所在节点    问与答
9 条回复
jerryjhou
2014-09-11 11:41:21 +08:00
pdnsd好像可以禁止IPv6. 不过各种翻墙方法都是支持IPv6的吧. ip6tables配置一下就好了吧
berry10086
2014-09-11 11:49:06 +08:00
@jerryjhou ip6tables -t nat -A PREROUTING -p tcp -m set --match-set letitgo dst -j REDIRECT --to-port 1111
提示set 是ipv4的
jerryjhou
2014-09-11 12:03:10 +08:00
@berry10086
具体的提示是什么? 我这里是正常的. ip6tables版本? 还有路由器IPv6是否开启?
berry10086
2014-09-11 15:40:24 +08:00
@jerryjhou
root@OpenWrt:~# ip6tables -t nat -A PREROUTING -p tcp -m set --match-set letitgo
dst -j REDIRECT --to-port 1111
ip6tables v1.4.21: The protocol family of set letitgo is IPv4, which is not applicable.
jerryjhou
2014-09-11 16:23:12 +08:00
@berry10086 本身是支持的, 但是dnsmasq只给IPv4打了标记, 是不是它不支持IPv6啊. 或者没开启. 如果把127.0.0.1换成IPv6的形式呢? ( ::1或者:: , 有的还要加[])
berry10086
2014-09-11 17:11:07 +08:00
@jerryjhou 后来又新建了一个set 加上参数family inet6 用ipset-dns就好了
jerryjhou
2014-09-11 17:25:27 +08:00
@berry10086 能分享具体方法造福大众吗?
berry10086
2014-09-12 00:43:18 +08:00
AttufliX
2015-09-02 13:18:17 +08:00
我也遇到了这个问题。 dnsmasq 自身不能配置成不监听 ipv6 的 53 端口,而且,即使从 v4 的监听端口请求 dns ,结果中如果又 AAAA 记录( ipv6 ),则仍然返回带有 ipv6 的 dns 解析结果。

我换了 unbound dns ,里面有个 do-v6 no, 这个可以让 unbound 不监听 ipv6 的 53 端口,但是如果 ipv4 的 dns 返回的 dns 含有 AAAA 记录,则 unbound 依然过滤不掉。

我一开始向找个只支持 ipv4 记录的 dns ,但是试了几个都不行。放弃了。

最后用 bind dns 解决了,它提供了从 ipv4 的 dns 应答中删除 AAAA 记录的功能。你可以用它。

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

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

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

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

© 2021 V2EX