Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
acp120 opened this issue Sep 4, 2023 · 21 comments
Open

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

acp120 opened this issue Sep 4, 2023 · 21 comments

Comments

@acp120
Copy link

acp120 commented Sep 4, 2023

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

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

设备信息
HAP AC2

@Mosney
Copy link

Mosney commented Sep 4, 2023

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

@acp120
Copy link
Author

acp120 commented Sep 4, 2023

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

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

@PikuZheng
Copy link
Contributor

PikuZheng commented Sep 5, 2023

重复 #1407

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

@acp120
Copy link
Author

acp120 commented Sep 5, 2023

重复 #1407

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

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

@PikuZheng
Copy link
Contributor

老哥 跟这个需求确实是重复的,但是好像也没解决#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 是更好的方案。

@acp120
Copy link
Author

acp120 commented Sep 5, 2023

老哥 跟这个需求确实是重复的,但是好像也没解决#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的留点活路哈哈

@PikuZheng
Copy link
Contributor

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

@acp120
Copy link
Author

acp120 commented Sep 6, 2023

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消耗资源少而且更快一些。

@pymumu
Copy link
Owner

pymumu commented Sep 7, 2023

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

@cresky-github
Copy link

建议:

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

@acp120
Copy link
Author

acp120 commented Sep 7, 2023

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

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

@acp120
Copy link
Author

acp120 commented Sep 7, 2023

建议:

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

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

@PikuZheng
Copy link
Contributor

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

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

@cresky-github
Copy link

cresky-github commented Sep 8, 2023

建议:
读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

@PikuZheng
Copy link
Contributor

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

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

address-list 可以直接填域名的

@cresky-github
Copy link

cresky-github commented Sep 8, 2023

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

address-list 可以直接填域名的

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

FWD是控制解析这个动作

@acp120
Copy link
Author

acp120 commented Sep 8, 2023

建议:
读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
Copy link

建议:
读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
Copy link
Author

acp120 commented Sep 8, 2023

建议:
读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的再写进去,在更新。有点信仰了啊

@cresky-github
Copy link

建议:
读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,由于数据量小,经实践,压根不影响实际效果。

@Bitcion
Copy link

Bitcion commented Oct 25, 2023

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants