恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
当贝投影
查看: 489|回复: 19

dnsmasq设置ipv6 dns的问题

[复制链接]
发表于 2022-5-16 18:12 | 显示全部楼层 |阅读模式
本帖最后由 catgenius 于 2022-5-18 15:30 编辑

需求:在主路由上给某些客户端(mac地址或ip段)发送旁路由的本地ipv6地址作为其ipv6的DNS,其它终端默认获得主路由的。

查阅了dnsmasq的文档,提到dhcp-option=option6:dns-server可以设置ipv6的DNS

试了在ax6(官方固件获取ssh)的dnsmasq版本2.80和升级到最新的2.86,以及hyper-v虚拟机x86的openwrt,bleach1991大神的最新版,dnsmasq-full 2.86版,都不认这条命令,情况如下:

原来的/etc/dnsmasq.conf是全注释掉的空的。添加如下:
  1. dhcp-host=11:22:33:44:55:66,set:op
  2. dhcp-option=tag:op,option6:dns-server,[DNS地址为旁路由的FE80本地链路地址] #(这个地址直接填电脑的ipv6 DNS里是有效的,想dnsmasq是为了无法手动设置ipv6 dns的设备)
复制代码
运行dnsmasq --test会报错:

dnsmasq: bad dhcp-option at line xx of /etc/dnsmasq.conf

请问哪位大佬知道问题出在哪里吗?
另外加上dhcp-range=::, ra-only这行也会提示bad dhcp-range,dnsmasq --help dhcp6也不出正确的序号,感觉好像不支持ipv6啊,还是我哪里设置错了吗?路由开启了ipv6,本机和下面的设备都能正常获得ipv6公网地址。

之所以有这个需求是参照这篇帖子 【终极教程】N1做旁路由,IPv6设置教程,超详细 ,但只想指定设备的DNSv6设为旁路由,有些设备没有手动设置选项(ios和电脑可以设置ipv6 dns,安卓手机和机顶盒不行),或者各位有什么替代的好办法,请指教
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-16 21:26 | 显示全部楼层
看了两遍,不知道你的需求是什么

点评

抱歉,表述的不清楚吗。在主路由上给某些客户端(mac地址或ip段)发送旁路由的本地ipv6地址作为其ipv6的DNS,其它终端默认获得主路由的。  详情 回复 发表于 2022-5-16 22:48
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-16 22:19 | 显示全部楼层
这功能系统不是自带么?接口-LAN
v6d.png

点评

这样就给主路由下所有设备分配旁路由的IPV6地址作为DNS了,我只想对指定终端发这个设置。  详情 回复 发表于 2022-5-16 22:45
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-5-16 22:45 | 显示全部楼层
avin4 发表于 2022-5-16 22:19
这功能系统不是自带么?接口-LAN

这样就给主路由下所有设备分配旁路由的IPV6地址作为DNS了,我只想对指定终端发这个设置。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-5-16 22:48 | 显示全部楼层
lgs2007m 发表于 2022-5-16 21:26
看了两遍,不知道你的需求是什么

抱歉,表述的不清楚吗。在主路由上给某些客户端(mac地址或ip段)发送旁路由的本地ipv6地址作为其ipv6的DNS,其它终端默认获得主路由的。

点评

哦哦,清楚了。 我试了下修改/etc/dnsmasq.conf,添加你的那两行命令,运行dnsmasq --test也没见报错(dnsmasq版本和你的一样),但是重启路由和电脑也没见分配设置的IPv6 DNS地址……是不是要停用odhcpd,dnsmasq  详情 回复 发表于 2022-5-17 10:12
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-17 10:12 | 显示全部楼层
本帖最后由 lgs2007m 于 2022-5-17 10:18 编辑
catgenius 发表于 2022-5-16 22:48
抱歉,表述的不清楚吗。在主路由上给某些客户端(mac地址或ip段)发送旁路由的本地ipv6地址作为其ipv6的D ...

哦哦,清楚了。
我试了下修改/etc/dnsmasq.conf,添加你的那两行命令,运行dnsmasq --test也没见报错(dnsmasq版本和你的一样),但是重启路由和电脑也没见分配设置的IPv6 DNS地址……是不是要停用odhcpd,dnsmasq才生效,我太懂这个了

能不能分配IPv4 DNS,屏蔽掉IPv6 DNS呢,可能会简单点
Providing custom DNS with DHCP
https://openwrt.org/docs/guide-u ... ustom_dns_with_dhcp
Disabling IPv6 DNS for odhcpd
https://openwrt.org/docs/guide-u ... ipv6_dns_for_odhcpd
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-5-17 11:01 | 显示全部楼层
lgs2007m 发表于 2022-5-17 10:12
哦哦,清楚了。
我试了下修改/etc/dnsmasq.conf,添加你的那两行命令,运行dnsmasq --test也没见报错(d ...

好的,我先学习一下odhcpd,
我在dnsmasq里面设置ipv4的不同mac推不同的dns是生效的,v6就会报错,但您的不报错,就很疑惑。
屏蔽v6DNS下一步考虑吧,梯子带v6的,能用v6最好

点评

嗯嗯。 还有一点,DNS服务器地址有IPv4和IPv6的,但是并不是IPv4 DNS解析出来是IPv4,IPv6 DNS解析出来是IPv6。 DNS服务器地址只是一个地址,跟解析出来什么没太大关系,域名有什么样的记录,服务器返回就是什么样  详情 回复 发表于 2022-5-17 12:07
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-17 11:27 | 显示全部楼层
op v4和v6的DNS指派默认是不同的程序包在做
v4是dnsmasq,支持dhcp-option
v6是odhcpd,搜了一下貌似没有相关的说明
没有试过,不过你可以试试编译时禁用odhcpd,然后换dnsmasq-full,让dnsmasq接管v4+v6的全部DNS工作,再用dnsmasq tag+设备mac来自动指定设备DNS

点评

按照大佬您的指点,安装了支持dhcpv6的dnsmasq,停掉了odhcpd,dnsmasq.conf设置 现在的问题试,这个tag对v6是生效的,对v6好像不生效,该MAC的客户端和其他客户端一样获得了主路由的本地IPV6地址作为v6 DNS,如  详情 回复 发表于 2022-5-17 22:49
嗨,查看了一下版本,两个dnsmasq和dnsmasq-full都是不支持dhcpv6的,估计opkg源里的就不支持,搞不好自己编译了。感谢,我再研究研究  详情 回复 发表于 2022-5-17 16:56
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-17 12:07 | 显示全部楼层
catgenius 发表于 2022-5-17 11:01
好的,我先学习一下odhcpd,
我在dnsmasq里面设置ipv4的不同mac推不同的dns是生效的,v6就会报错,但您的 ...

嗯嗯。
还有一点,DNS服务器地址有IPv4和IPv6的,但是并不是IPv4 DNS解析出来是IPv4,IPv6 DNS解析出来是IPv6。
DNS服务器地址只是一个地址,跟解析出来什么没太大关系,域名有什么样的记录,服务器返回就是什么样的了。比如域名有IPv4(A记录)和IPv6(AAAA记录),那无论什么DNS解析都会返回A和AAAA,如果有系统有IPv6,一般会优先选择AAAA记录去访问。
所以我认为你设置IPv4 DNS并不影响域名的IPv6地址解析的。

点评

感谢,这个我明白的。 这个问题的源头是这样的,比如我访问googleyoutube等,运营商的v6 DNS或某些v4 DNS都会解析出正确的IPV6地址,但因为墙的原因访问不到,可是这时候又绕过了ipv4网关设置的挂梯子的旁路由。  详情 回复 发表于 2022-5-17 17:08
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-5-17 16:56 | 显示全部楼层
avin4 发表于 2022-5-17 11:27
op v4和v6的DNS指派默认是不同的程序包在做
v4是dnsmasq,支持dhcp-option
v6是odhcpd,搜了一下貌似没有 ...

嗨,查看了一下版本,两个dnsmasq和dnsmasq-full都是不支持dhcpv6的,估计opkg源里的就不支持,搞不好自己编译了。感谢,我再研究研究
  1. root@BleachWrt:~# dnsmasq -v
  2. Dnsmasq version 2.86  Copyright (c) 2000-2021 Simon Kelley
  3. Compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack ipset no-auth no-cryptohash no-DNSSEC loop-detect inotify dumpfile

  4. This software comes with ABSOLUTELY NO WARRANTY.
  5. Dnsmasq is free software, and you are welcome to redistribute it
  6. under the terms of the GNU General Public License, version 2 or 3.
复制代码
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-17 17:04 | 显示全部楼层
原来插件还有不同的,学到了。我的是lede源码编译的,跟着你的操作看了下dnsmasq版本,有DHCPv6:

Dnsmasq version 2.86  Copyright (c) 2000-2021 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset no-auth no-cryptohash no-DNSSEC loop-detect inotify dumpfile

This software comes with ABSOLUTELY NO WARRANTY.
Dnsmasq is free software, and you are welcome to redistribute it
under the terms of the GNU General Public License, version 2 or 3.
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-5-17 17:08 | 显示全部楼层
lgs2007m 发表于 2022-5-17 12:07
嗯嗯。
还有一点,DNS服务器地址有IPv4和IPv6的,但是并不是IPv4 DNS解析出来是IPv4,IPv6 DNS解析出来 ...

感谢,这个我明白的。
这个问题的源头是这样的,比如我访问googleyoutube等,运营商的v6 DNS或某些v4 DNS都会解析出正确的IPV6地址,但因为墙的原因访问不到,可是这时候又绕过了ipv4网关设置的挂梯子的旁路由。
参照 https://www.right.com.cn/FORUM/thread-4046582-1-1.html,这篇帖子,如果客户端的V6 DNS能设置成旁路由的本地v6地址,就能解决,在ios和win11客户端上,都是能够手动设置并测试通过的,有v6梯子更好用。但是大部分安卓设备以及机顶盒等无法在客户端手动设置v6 DNS,就会出现上面的问题,所以就希望能从路由来下发,但是又不想给所有设备下发旁路由做V6 DNS。。。就是这么个情况。

我dnsmasq -v看了一下版本,两个设备dnsmasq和dnsmsq-full 2.86版都显示,估计用的opkg源里的就这样
Dnsmasq version 2.86  Copyright (c) 2000-2021 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack ipset no-auth no-cryptohash no-DNSSEC loop-detect inotify dumpfile

这应该是我这边dnsmasq不支持ipv6的原因了,您方便看一下您那不报错的吗,搞不好我重新编译一个支持dhcpv6的dnsmasq安装再试试了。

点评

我看了下编译的.config文件,里面有一行CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y,你的固件应该是编译的时候没有这一行。 我这边按你的那两行命令添加进去,然后dnsmasq --test没有报错,/etc/init.d/dnsmasq resta  详情 回复 发表于 2022-5-17 17:28
哦,换了个源,看到里面有个单独的ipk dnsmasq-dhcpv6_2.86-14_aarch64_cortex-a53.ipk 我安装一下试试  详情 回复 发表于 2022-5-17 17:17
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-5-17 17:17 | 显示全部楼层
catgenius 发表于 2022-5-17 17:08
感谢,这个我明白的。
这个问题的源头是这样的,比如我访问googleyoutube等,运营商的v6 DNS或某些v4 DN ...

哦,换了个源,看到里面有个单独的ipk
dnsmasq-dhcpv6_2.86-14_aarch64_cortex-a53.ipk
我安装一下试试
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-17 17:28 | 显示全部楼层
catgenius 发表于 2022-5-17 17:08
感谢,这个我明白的。
这个问题的源头是这样的,比如我访问googleyoutube等,运营商的v6 DNS或某些v4 DN ...

我看了下编译的.config文件,里面有一行CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y,你的固件应该是编译的时候没有这一行。

我这边按你的那两行命令添加进去,然后dnsmasq --test没有报错,/etc/init.d/dnsmasq restart也没报错,但是就是没有按设置的分配DNS,可能还是得按8楼大佬说的,关闭odhcpd,让dnsmasq接管全部DNS工作才能运作。

这个帖子有点类似
https://www.haiyun.me/archives/1437.html

点评

感谢,opkg安装了dnsmasq-dhcpv6,安装dnsmasq-full会报错也就没试,这个dnsmasq-dhcpv6的2.86版本显示编译选项如下: 少了ipset 和 ID 但我暂时好像不用就先接受 然后按您发的这个贴子:https://www.haiyun.m  详情 回复 发表于 2022-5-17 22:39
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-17 17:29 | 显示全部楼层
v66.png
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2022-6-27 08:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表