Coder Social home page Coder Social logo

Comments (5)

zfl9 avatar zfl9 commented on August 20, 2024

因为新增了 tag,同时考虑到之前的 no-AAAA 逻辑有些许复杂,决定对 no-AAAA(ipv6) 功能进行重写。

注意:此修改将破坏与旧版本的兼容性,因为 --no-ipv6 的 rules 格式变了。


不过滤、过滤所有:

  • 未提供此选项:不过滤任何 AAAA 查询。
  • 未给出 rules:过滤所有 AAAA 查询。

rules 格式修改:

  • 与原先一样,支持多个 rule,但为了可读性,不再使用缩写,多个 rule 之间用逗号隔开。

按 tag 过滤,有以下 rule:

  • tag:chn:过滤 tag:chn 域名的 AAAA 查询
  • tag:gfw:过滤 tag:gfw 域名的 AAAA 查询
  • tag:none:过滤 tag:none 域名的 AAAA 查询
  • tag:xxx:过滤 tag:xxx 域名的 AAAA 查询,xxx 是指用户自定义的 tag 名字(见上面的说明)

按 tag 过滤 在 query 阶段进行,query 请求不会被转发到 upstream。


按 ip test 结果过滤,有以下 rule:

  • ip:china:若 response 中有 china ip,则过滤此 response。
  • ip:non_china:若 response 中有 non-china ip,则过滤此 response。

按 ip 过滤 在 response 阶段进行,IP 数据库是 chnroute6(ipset-name6 选项)。

from chinadns-ng.

muziling avatar muziling commented on August 20, 2024

这个设计初衷的使用方法是什么。比如先加载chn 地址到ipset组里,然后chinadns-ng用这个组实现防污染, 并且把解析后的IP打标放到新的ipset组里,然后透明代理转发这个新的组流量到代理服务器?

from chinadns-ng.

zfl9 avatar zfl9 commented on August 20, 2024

你是问新增的6组tag?还是新的no-aaaa规则?

from chinadns-ng.

zfl9 avatar zfl9 commented on August 20, 2024

设计的初衷就是为了对 域名列表 进行细分,方便某些需求,比如你说的 公司域名、腾讯域名 走特定的上游dns。至于要不要 add to set,看需求,这个是可选的(对于内置tag、自定义tag都是如此)。

因为默认情况下,只有两组(chn和gfw),对应的上游dns也是两组(china-dns、trust-dns)。

如果我没记错的话,你在 #144 里面讨论过一个情景,就是腾讯系域名想走腾讯的DNS服务器,防止微信转圈之类的。以及公司域名走公司自己的DNS(比如某些公司域名并未在互联网上注册,仅内部可见)。


优先级

自定义的域名tag(域名列表)的优先级 高于内置tag(gfwlist/chnlist),内置tag的优先级规则没变,默认gfwlist优先,可使用--chnlist-first切换为chnlist优先。

若相同的域名(后缀)存在于多个自定义tag的域名列表内,则优先级规则是:

  • 按命令行选项(包括来自配置文件的选项)顺序,后声明的自定义tag(域名列表)具有更高的优先级。

这 8 组 tag 的上游组可以不同(大部分情况下),当然也允许有相同的。ipset/nftset也是同理。

具体用途看你们的需求,怎么组合都行,要不要 add ip to set(以及 add 到哪个 set)都是可配置的。

总之,核心逻辑并没有发生本质上的变化(也就是你说的“防污染”、分流等功能),只是允许更加细微的控制:

  • 某些域名,我想转发给不同于 china-dns、trust-dns 所配置的 DNS 服务器 去解析。
    • ipset/nftset 信息可不配置,表示不需要收集这些域名的 ip。
    • 如果配置了,也可以与 --add-tagchn-ip、--add-taggfw-ip 的相同。
    • 也可以与 --add-tagchn-ip、--add-taggfw-ip 的不同,具体看你需求。

from chinadns-ng.

zfl9 avatar zfl9 commented on August 20, 2024

见最新版本。

from chinadns-ng.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.