梅林固件路由 192.168.1.1
pppoe 拨号,dnsmasq 提供 dhcp ( iptv 要 option 125 ),ipv6 native,dhcp-pd 启用。下面有台 ubuntu 192.168.1.100
跑 AdGuard Home 提供 dns 服务。
发现安卓和 win10 都优先使用 ipv6 dns 查询。
先尝试路由不指定 ipv6 dns 并靠 dnsmasq.postconf
删除 dhcp-option=lan,option6:23,[::]
,没用,win10 自动把路由的 LAN IPv6 Address 和 LAN IPv6 Link-Local Address 作为 ipv6 dns 。
测试 ::ffff:114.114.114.114
(即 ::ffff:7272:7272
),因为梅林和 ubuntu 输入 nslookup www.qq.com ::ffff:114.114.114.114
能正常返回结果,但 win10:No response from server 。实际 win10 和安卓都无法使用 IPv4-mapped addresses:例如 v4 dns 填假地址,v6 dns 填::ffff:114.114.114.114 ,打不开网页 ERR_NAME_NOT_RESOLVED
。v4 dns 换真地址如 192.168.1.100
之后设备正常工作,AdGuard Home 日志显示都来自客户端 v4 地址。
受此启发想起 win10 ipv6 dns 填写如 [::119.29.29.29]
能强制用 ipv4 dns,然而 dnsmasq 不认 dhcp-option=lan,option6:23,[[::119.29.29.29]]
,直接罢工。
现在换成 ::1
(即 dhcp-option=lan,option6:23,[::1]
),总算能干活了。也就引出第一个问题:
由于系统优先 v6 dns,那么等待假 v6 dns 超时(如上面的 ::1
或 ::ffff:114.114.114.114
)然后换用 v4 dns 会浪费很多时间吗?有没有能检测 dns 具体耗时的工具?另外用 ::
和 ::1
有区别吗?
以防解析真变慢我开始找如何给 ubuntu 搞一个静态 ipv6 地址,免得地址变了要手动更新 dnsmasq 。
先是唯一本地地址 ULA,挺巧合紧接着就看到篇《用 IPv6 ULA 毁掉未来网络的 3 种方法》 还分part1😅part2。当然主要梅林没提供设置 折腾不动 dnsmasq 。
链路本地地址 Link-local address 是个能用的选择,但遇到两个问题:
链路本地地址会变化,看到有人说更新网卡驱动会变地址。ubuntu 能否设置一个静态链路本地地址?毕竟在 v4 时手动分配个 ip 就再也不用管了。
AdGuard Home 日志里的全都客户端只显示链路本地地址,不显示客户端名称。这问题和上面叠加导致几乎没法排查 /管理设备。如果哪天日志显示某链路本地地址频繁访问某挖矿网址,总不至于让别人报他每个设备二十几位十六进制数吧。
ipv6 菜鸡,请问有没有更好的向客户端宣告 AdGuard Home 的 IPv6 地址的方法呢?
ps:梅林倒是有个 DNSFilter 功能,可以强制指定设备的所有 dns 查询转发到指定 dns 。当然 AdGuard Home 日志里所有请求来源都变成路由,也失去管理设备的能力。
Markdown 代码块不生效啊 emmmm 不好意思凑合看吧
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.