-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
基于DNS查询类型的EDNS分流,解决多运营商双栈网络环境中的准确性问题 #1860
Comments
设blacklist为0.0.0.0/0,whitelist为::0/0 未测试,理论上应该是成立的 |
感谢您提供的方案。我仔细考虑了一下,发现可能有一些问题。 是否支持 黑白名单 名单都设置相同的ip地址? 假设这样成立的话,这种设置可能导致DNS请求次数加倍。特别是在双栈环境中,一个域名至少需要进行两次DNS查询(一次为A记录,一次为AAAA记录)。通过这样的配置,每种查询都可能再次触发额外的DNS请求,从而导致至少四次查询。在实际应用中,这很容易触及上游服务的请求限制,例如阿里DNS。 |
smartdns本来就是向所有上游同时发起请求的,额外设置不会导致流量加倍 |
再请教一个问题,我开启了 SmartDNS 的持久化缓存并生成了 cache 文件,请问有什么好的方法可以查看这些文件吗? |
|
需求应用场景
当前网络环境涉及两个不同的运营商,分别单独管理IPv4和IPv6连接(IPv4由一个运营商负责,IPv6由另一个运营商负责),在使用公共DNS服务(如阿里DNS)时,IPv6请求因运营商问题可能因识别不准确而导致不必要的路由绕行。为解决这一问题,我只能通过EDNS客户子网选项来手动指定不同的出口。
建议的方案
目前,我已使用mosdns按DNS查询类型(QTYPE)配置对应的EDNS
对于smartdns 暂时没发现可以根据QTYPE分流的办法,变相的想法是:
IPv4地址(A记录,QTYPE=1):通过smartdns配置一个端口,指定IPv4的EDNS客户子网。
IPv6地址(AAAA记录,QTYPE=28):通过smartdns配置另一个端口,指定IPv6的EDNS客户子网。
使用支持QTYPE分流请求的DNS工具,将不同类型的请求分发到相应端口。这样可以选择合适的出口运营商,从而避免请求的不必要绕路。
请问:
1.如果单独使用smartdns是否有更优的实现方式?并且可以保留双栈优选?
2.smartdns是否支持接收其他DNS传递的EDNS信息,并将其用于后续查询?
The text was updated successfully, but these errors were encountered: