找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
楼主: catgenius

dnsmasq设置ipv6 dns的问题

[复制链接]
 楼主| 发表于 2022-5-17 22:39 | 显示全部楼层
本帖最后由 catgenius 于 2022-5-17 22:41 编辑
lgs2007m 发表于 2022-5-17 17:28
我看了下编译的.config文件,里面有一行CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y,你的固件应该是编译的时 ...

感谢,opkg安装了dnsmasq-dhcpv6,安装dnsmasq-full会报错也就没试,这个dnsmasq-dhcpv6的2.86版本显示编译选项如下,少了ipset 和 ID 但我暂时好像不用就先接受
  1. Compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack no-ipset no-auth no-cryptohash no-DNSSEC no-ID loop-detect inotify dumpfile
复制代码
然后按您发的这个贴子:https://www.haiyun.me/archives/1437.html
修改/etc/config/dhcp 禁用ra和dhcpv6:
  1. config dhcp 'lan'
  2.         option ra 'disabled'
  3.         option dhcpv6 'disabled'
复制代码
关闭odhcpd:
  1. /etc/init.d/odhcpd stop
  2. /etc/init.d/odhcpd disable
复制代码
修改/etc/dnsmasq.conf:
  1. dhcp-mac=set:OP,11:22:33:44:55:66
  2. dhcp-option=tag:OP,3,192.168.31.2
  3. dhcp-option=tag:OP,6,182.254.116.116,8.8.4.4

  4. enable-ra
  5. dhcp-range=::,constructor:br-lan,ra-stateless
  6. dhcp-option=tag:OP,option6:dns-server,[fe80::xxxx旁路由本地ipv6地址]
复制代码
dnsmasq --test无问题后重启 /etc/init.d/dnsmasq restart
全部客户端IPV6无问题,指定mac地址tag:OP客户端的ipv4设置生效了但IPV6 DNS没有生效,与其他客户端一样都获得了主路由的本地v6地址作为v6 DNS;
如果把dnsmasq.conf的最后一行去掉tag,改为:
  1. dhcp-option=option6:dns-server,[fe80::xxxx旁路由本地ipv6地址]
复制代码
倒是可以给所有客户端都设成功旁路由本地v6地址作为v6 DNS,但这就跟三楼大佬说的直接全局设置没区别了。。。还是没有达到分客户端的目的。
所以到这一步,问题变成了dnsmasq 以mac地址标记的tag 对ipv6 dns设置不生效?我再查一下

点评

额,IPv6地址分配有两种方式:一种是路由开启RA(Router Advertisement)服务,基于路由器RA信息,客户端用SLAAC自动生成IPv6地址,DNS可以获取自RA信息(RA DNS),也可以获取自DHCPv6服务(需要路由开启无状态DHCP  详情 回复 发表于 2022-5-18 08:40
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-5-17 22:49 | 显示全部楼层
本帖最后由 catgenius 于 2022-5-17 22:50 编辑
avin4 发表于 2022-5-17 11:27
op v4和v6的DNS指派默认是不同的程序包在做
v4是dnsmasq,支持dhcp-option
v6是odhcpd,搜了一下貌似没有 ...

按照大佬您的指点,安装了支持dhcpv6的dnsmasq,停掉了odhcpd,dnsmasq.conf设置
  1. dhcp-mac=set:OP,11:22:33:44:55:66
  2. dhcp-option=tag:OP,3,192.168.31.2
  3. dhcp-option=tag:OP,6,182.254.116.116,8.8.4.4

  4. enable-ra
  5. dhcp-range=::,constructor:br-lan,ra-stateless
  6. dhcp-option=tag:OP,option6:dns-server,[fe80::xxxx旁路由本地ipv6地址]
复制代码
现在的问题是,这个tag对v4是生效的,对v6好像不生效,该MAC的客户端和其他客户端一样获得了主路由的本地IPV6地址作为v6 DNS,
如果最后一行去掉tag:
  1. dhcp-option=option6:dns-server,[fe80::xxxx旁路由本地ipv6地址]
复制代码
倒是生效了,但所有客户端都获得了旁路由作为v6 DNS和您三楼发的那个全局设置没区别,还是没有达到分客户端的目的。
所以说dnsmasq的ipv6是不支持mac地址tag的?得再想想还有没有别的办法?

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-18 08:40 | 显示全部楼层
本帖最后由 lgs2007m 于 2022-5-18 09:50 编辑
catgenius 发表于 2022-5-17 22:39
感谢,opkg安装了dnsmasq-dhcpv6,安装dnsmasq-full会报错也就没试,这个dnsmasq-dhcpv6的2.86版本显示编 ...

额,IPv6地址分配有两种方式:一种是路由开启RA(Router Advertisement)服务,基于路由器RA信息,客户端用SLAAC自动生成IPv6地址,DNS可以获取自RA信息(RA DNS),也可以获取自DHCPv6服务(需要路由开启无状态DHCPv6);另外一种是路由器开启DHCPv6服务,客户端的IPv6地址和DNS都获取自DHCPv6。不过安卓系统不支持DHCPv6,Win7、Win8.1不支持RA DNS。

我看IPv6 Router Advertisement Options for DNS Configuration里面并没有提及可以按按客户端去分配不同DNS,所以我认为要实现按客户端去分配不同DNS,只能使用DHCPv6了,RA DNS不能实现。使用RA自动生成IPv6,去掉RA的RA DNS,使用DHCPv6去按客户端分配DNS,或者IPv6地址和DNS全部使用DHCPv6。

你再看看dnsmasq的DHCPv6的部分,还有DNS我不清楚能不能设置为fe80本地链路地址,但是也只有本地链路地址不变……如果使用LAN口IPv6需要脚本获取了。你可以先尝试设置一个公共DNS,可以分配再试试本地链路地址。
还有一点,使用DHCPv6静态分配IPv6地址根据DUID分配的,不是根据MAC,这个你也可以看看dnsmasq的DHCPv6是否有DUID这部分内容

我对你的问题有点兴趣,不过懂得不多……

点评

感谢您的回复和提供的资料,让我学到了很多。 IPV6 DNS设置为F80本地链路地址,这个我试了win10、11和ios上手动设置,或在主路由全局配置发放旁路由F80地址,都是没有问题的,并且解决了客户端访问墙外ipv6网站的问  详情 回复 发表于 2022-5-18 15:23
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-5-18 15:23 | 显示全部楼层
本帖最后由 catgenius 于 2022-5-18 15:48 编辑
lgs2007m 发表于 2022-5-18 08:40
额,IPv6地址分配有两种方式:一种是路由开启RA(Router Advertisement)服务,基于路由器RA信息,客户端 ...

感谢您的回复和提供的资料,让我学到了很多。
IPV6 DNS设置为F80本地链路地址,这个我试了win10、11和ios上手动设置,或在主路由全局配置发放旁路由F80地址,都是没有问题的,并且解决了客户端访问墙外ipv6网站的问题。
如果不想全局配置,那么无法手动设置需要主路由指定发放的主要是几个安卓设备(手机平板机顶盒),但要是安卓不支持DHCPv6的话,也很尴尬。

dnsmasq的DHCPv6部分确实提到了MAC地址可能是不可用的,貌似可以用DUID给host命名或加tag:
Note that in IPv6 DHCP, the hardware address may not be available, though it normally is for direct-connected clients, or clients using DHCP relays which support RFC 6939.
It is allowed to use client identifiers (called client DUID in IPv6-land) rather than hardware addresses to identify hosts by prefixing with 'id:'. Thus: --dhcp-host=id:01:02:03:04,..... refers to the host with client identifier 01:02:03:04. It is also allowed to specify the client ID as text, like this: --dhcp-host=id:clientidastext,.....

但是如果安卓设备不支持DHCPv6的话,是不是也没有用啊,以及安卓设备如何获取DUID,可能需要再研究一下。

点评

哈哈,互相学习了,从你这也学到不少没见过的知识 DNS设置为fe80本地链路地址没问题就好。 是的,你如果主要是想设置安卓设备的IPv6 DNS,我觉得可能得放弃DHCPv6这个方法了。 安卓设备不支持DHCPv6,貌似  详情 回复 发表于 2022-5-18 16:35
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-18 16:35 | 显示全部楼层
catgenius 发表于 2022-5-18 15:23
感谢您的回复和提供的资料,让我学到了很多。
IPV6 DNS设置为F80本地链路地址,这个我试了win10、11和io ...

哈哈,互相学习了,从你这也学到不少没见过的知识
DNS设置为fe80本地链路地址没问题就好。

是的,你如果主要是想设置安卓设备的IPv6 DNS,我觉得可能得放弃DHCPv6这个方法了。
安卓设备不支持DHCPv6,貌似也没有支持计划,安卓只能用RA+RA DNS,但是RA我看目前也没有支持按客户端分配不同DNS的option,所以这条路也走不通。

你有空可以再看看吧,或者尝试下用IPv4 DNS,我认为也可以访问墙外IPv6网站的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-12-28 00:53 来自手机 | 显示全部楼层
本帖最后由 w311ang 于 2022-12-28 01:00 编辑

插一脚,RA是一种广播,可能是无法支持给不同主机分配不同DNS的,OpenWrt论坛也有类似讨论https://forum.openwrt.org/t/assi ... -dns-per-host/20071
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-19 20:46

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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