梅林固件路由 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 不好意思凑合看吧