smartdns icon indicating copy to clipboard operation
smartdns copied to clipboard

是否可以添加ipv6优先功能?

Open acp120 opened this issue 2 years ago • 21 comments

需求应用场景 RouterOS用CNIP模式科学上网,移动没有公网开了IPV6当公网使用,但是海外VPS没有V6,所以请求的DNS只用ipv4。 但是家里的公网ipv6需要ddns所以还需要解析

建议的方案 在网站没有ipv4的时候才返回ipv6解析 有ipv4只返回v4(貌似mosdns有这个功能)

设备信息 HAP AC2

acp120 avatar Sep 04 '23 16:09 acp120

支离破碎的描述,完全看不懂想要表达个什么意思,IPV6优先本身就是主流操作系统、软件、浏览器所默认的

Mosney avatar Sep 04 '23 20:09 Mosney

支离破碎的描述,完全看不懂想要表达个什么意思,IPV6优先本身就是主流操作系统、软件、浏览器所默认的

额 可能你没用过Ros吧 简单说我要的就是ipv4 6同时存在的时候 只返回v4 当只有v6的时候在返回v6。原因就是如果不设置v6是优先的,就会在海外vps没有v6的时候导致科学上网不成功

acp120 avatar Sep 04 '23 21:09 acp120

重复 #1407

顺便说一下我在家用CCR1009,日常双栈走v6问题不大。国外出去的有域名列表,通过domain-rule规则只走v4

PikuZheng avatar Sep 05 '23 01:09 PikuZheng

重复 #1407

顺便说一下我在家用CCR1009,日常双栈走v6问题不大。国外出去的有域名列表,通过domain-rule规则只走v4

老哥 跟这个需求确实是重复的,但是好像也没解决#1407的问题。 我用的是cnip分流模式 如果是单mikrotik的话 用l7 domain-rule分流消耗应该挺大的。但是用cnip分流的话 就需要海外vps支持v6才能让ipv6的ip通过转发。所以比较好的解决办法就是对于双栈域名只返回IPV4。这样既不影响IPS移动只有v6公网,也不影响科学上网没有V6的尴尬。另外海外很多网站其实IPV6属于半残状态,国内也是,所以感觉v6除了跑pt啥的其他的好像用处不是特别大

acp120 avatar Sep 05 '23 12:09 acp120

老哥 跟这个需求确实是重复的,但是好像也没解决#1407的问题。 我用的是cnip分流模式 如果是单mikrotik的话 用l7 domain-rule分流消耗应该挺大的。但是用cnip分流的话 就需要海外vps支持v6才能让ipv6的ip通过转发。所以比较好的解决办法就是对于双栈域名只返回IPV4。这样既不影响IPS移动只有v6公网,也不影响科学上网没有V6的尴尬。另外海外很多网站其实IPV6属于半残状态,国内也是,所以感觉v6除了跑pt啥的其他的好像用处不是特别大

是的,这个功能可能还得等等。另一方面考虑到ipv6带宽普遍好一些,我不主张国内ipv6一刀切。 l7要走firewall - filter,会显著减速。 总体来说我还是认为 domain-rule 是更好的方案。

PikuZheng avatar Sep 05 '23 13:09 PikuZheng

老哥 跟这个需求确实是重复的,但是好像也没解决#1407的问题。 我用的是cnip分流模式 如果是单mikrotik的话 用l7 domain-rule分流消耗应该挺大的。但是用cnip分流的话 就需要海外vps支持v6才能让ipv6的ip通过转发。所以比较好的解决办法就是对于双栈域名只返回IPV4。这样既不影响IPS移动只有v6公网,也不影响科学上网没有V6的尴尬。另外海外很多网站其实IPV6属于半残状态,国内也是,所以感觉v6除了跑pt啥的其他的好像用处不是特别大

是的,这个功能可能还得等等。另一方面考虑到ipv6带宽普遍好一些,我不主张国内ipv6一刀切。 l7要走firewall - filter,会显著减速。 总体来说我还是认为 domain-rule 是更好的方案。

明白,我也是知道老哥你用mikrotik所以需求这么写 。希望早点把需求提上日程哈哈。 另外老哥你用的CCR,性能高,也给我们用ac2 arm的留点活路哈哈

acp120 avatar Sep 05 '23 15:09 acp120

ac2我也有(在用)。 有一个变通方案是起两个smartdns(不同ip)分别对应ipv4+6和ipv4;把域名列表(l7)写到dns server - static 里去,并fwd到只有ipv4的那个;smartdns作为ac2的上游,客户端使用ac2的dns server。 dns server的l7不需要检查每个数据报,对网速基本没有影响。

PikuZheng avatar Sep 06 '23 02:09 PikuZheng

ac2我也有(在用)。 有一个变通方案是起两个smartdns(不同ip)分别对应ipv4+6和ipv4;把域名列表(l7)写到dns server - static 里去,并fwd到只有ipv4的那个;smartdns作为ac2的上游,客户端使用ac2的dns server。 dns server的l7不需要检查每个数据报,对网速基本没有影响。

额,老哥,ac2大部分是128m的内存,我现在不开mosdns的时候是50-60M剩余内存,开了以后大概10几M吧(带规则)。想换smdns是因为网上smdns的规则适配的比mos多太多了,方便。所以估计container开2个smdns估计相当够呛。另外我现在的解决办法是在mos里面的cn-domain-223解析 其他888,这样1是针对我的cnip !cnip分流更贴切,2是在container里面跑域名比较全另外比L7消耗资源少而且更快一些。

acp120 avatar Sep 06 '23 12:09 acp120

确保开启双栈优选功能,如果要倾向使用ipv4,可以设置dualstack-ip-selection-threshold的阈值

pymumu avatar Sep 07 '23 01:09 pymumu

建议:

读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

cresky-github avatar Sep 07 '23 07:09 cresky-github

确保开启双栈优选功能,如果要倾向使用ipv4,可以设置dualstack-ip-selection-threshold的阈值

请问这个参数具体是什么意思呢?能举个例子么?

acp120 avatar Sep 07 '23 15:09 acp120

建议:

读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

老哥,这个做法1是很不灵活,如果出现网站被墙什么的,到时候还得单独找原因。2,基于1,那不如不用smdns直接找个 cndomain表FWD223或者!cndomain表FWD888就行 。觉得条目太多影响性能的话的话可以找个Lite的也行。绝对比你这个再用smdns脚本弄到static里面的效果好……

acp120 avatar Sep 07 '23 15:09 acp120

确保开启双栈优选功能,如果要倾向使用ipv4,可以设置dualstack-ip-selection-threshold的阈值

如果设备本身ipv6不通且开了双栈优选,结果会是ipv4优先吗?

PikuZheng avatar Sep 07 '23 22:09 PikuZheng

建议: 读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

老哥,这个做法1是很不灵活,如果出现网站被墙什么的,到时候还得单独找原因。2,基于1,那不如不用smdns直接找个 cndomain表FWD223或者!cndomain表FWD888就行 。觉得条目太多影响性能的话的话可以找个Lite的也行。绝对比你这个再用smdns脚本弄到static里面的效果好……

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。

DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

cresky-github avatar Sep 08 '23 01:09 cresky-github

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。

DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

address-list 可以直接填域名的

PikuZheng avatar Sep 08 '23 01:09 PikuZheng

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。 DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

address-list 可以直接填域名的

那是解析后结果,不是解析这个动作

FWD是控制解析这个动作

cresky-github avatar Sep 08 '23 02:09 cresky-github

建议: 读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

老哥,这个做法1是很不灵活,如果出现网站被墙什么的,到时候还得单独找原因。2,基于1,那不如不用smdns直接找个 cndomain表FWD223或者!cndomain表FWD888就行 。觉得条目太多影响性能的话的话可以找个Lite的也行。绝对比你这个再用smdns脚本弄到static里面的效果好……

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。

DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

不是所有的哦,你如果觉得上国内网站多 那就用black list lite估计最多也就几百条打住了FWD888,而且你可以自己在github上弄个workflow更新嘛 本地写个脚本定时拉就行了。绝对比你用smdns再写脚本再更新来的好用得多

acp120 avatar Sep 08 '23 11:09 acp120

建议: 读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

老哥,这个做法1是很不灵活,如果出现网站被墙什么的,到时候还得单独找原因。2,基于1,那不如不用smdns直接找个 cndomain表FWD223或者!cndomain表FWD888就行 。觉得条目太多影响性能的话的话可以找个Lite的也行。绝对比你这个再用smdns脚本弄到static里面的效果好……

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。 DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

不是所有的哦,你如果觉得上国内网站多 那就用black list lite估计最多也就几百条打住了FWD888,而且你可以自己在github上弄个workflow更新嘛 本地写个脚本定时拉就行了。绝对比你用smdns再写脚本再更新来的好用得多

明明内网之内能解决的问题,为什么要经过外网解决? 好奇怪哟!

cresky-github avatar Sep 08 '23 13:09 cresky-github

建议: 读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

老哥,这个做法1是很不灵活,如果出现网站被墙什么的,到时候还得单独找原因。2,基于1,那不如不用smdns直接找个 cndomain表FWD223或者!cndomain表FWD888就行 。觉得条目太多影响性能的话的话可以找个Lite的也行。绝对比你这个再用smdns脚本弄到static里面的效果好……

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。 DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

不是所有的哦,你如果觉得上国内网站多 那就用black list lite估计最多也就几百条打住了FWD888,而且你可以自己在github上弄个workflow更新嘛 本地写个脚本定时拉就行了。绝对比你用smdns再写脚本再更新来的好用得多

明明内网之内能解决的问题,为什么要经过外网解决? 好奇怪哟!

大哥你smdns请求dns算不算外网呢??你这个做法不用smdns解决的更好而且更少消耗资源,难道不是更好么?非要写一堆脚本再套个请求dns的再写进去,在更新。有点信仰了啊

acp120 avatar Sep 08 '23 13:09 acp120

建议: 读smartdns解析记录,按国内/国外分组转写成 rsc 导入到 /ip/dns/static FWD,

老哥,这个做法1是很不灵活,如果出现网站被墙什么的,到时候还得单独找原因。2,基于1,那不如不用smdns直接找个 cndomain表FWD223或者!cndomain表FWD888就行 。觉得条目太多影响性能的话的话可以找个Lite的也行。绝对比你这个再用smdns脚本弄到static里面的效果好……

FWD 受到硬件能力限制,不能把所有可能的域名都写进FWD,解析记录的范围就小了许多,在 ROS 硬件能力允许之内。 DNS所在的系统写个sh脚本,读解析记录转写成rsc,然后添加定时任务。通过HTTP发布rsc ROS定时下载rsc更新FWD

不是所有的哦,你如果觉得上国内网站多 那就用black list lite估计最多也就几百条打住了FWD888,而且你可以自己在github上弄个workflow更新嘛 本地写个脚本定时拉就行了。绝对比你用smdns再写脚本再更新来的好用得多

明明内网之内能解决的问题,为什么要经过外网解决? 好奇怪哟!

大哥你smdns请求dns算不算外网呢??你这个做法不用smdns解决的更好而且更少消耗资源,难道不是更好么?非要写一堆脚本再套个请求dns的再写进去,在更新。有点信仰了啊

1,你怎么知道是套?难道ROS不可以直接出去? 2,smartdns对于ROS,始终是外部。从外部采集数据,写入自身,当外部出现故障,依然能保证网络正常。 3,由于数据量小,经实践,压根不影响实际效果。

cresky-github avatar Sep 08 '23 13:09 cresky-github

唤起了我几年前折腾ipv6的记忆

domain-set -name ipv6 -file /opt/ipv6.txt 文件地址位置自己创建吧,把需要屏蔽的域名放进这个文件

address /domain-set:ipv6/#6 然后加入这条配置

Bitcion avatar Oct 25 '23 04:10 Bitcion