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
edns参数只支持全局配置,不支持单独配置 #262
Comments
#231 这个应该是一样的问题 |
好,我周末看一下 |
似乎没有什么变化@mokeyish
这是开启全局edns的日志
并且还有个bug,如果同时开启全局edns和上游服务器edns-subnet,那么全局的edns会失效,并且上游服务器自己的ends-subnet也会失效,等于没有配置任何edns,单独开启全局edns关闭上游edns-subnet则正常工作。单独配置上游edns-subnet不生效。 |
这不可能吧,代码里是优先上游服务器的没有才使用全局的,明明白白的写在这,不会反过来。 https://github.com/mokeyish/smartdns-rs/blob/main/src/dns_client.rs#L608-L610 你可以把我截图那代码改动,改上去编译看看。 你可以 dig 命令测试的。 |
图片的改动我手动修改了,但是测试下了,似乎没有变化
返回的是国内CDN的IP,说明并没有遵循edns设置。
部分配置文件
接下来是全局edns设置的测试情况
配置文件,必须把所有上游dns的单独的subnet参数去掉
返回结果,符合预期,返回的IP为海外
从新增的打印日志来看,请求时用的subnet IP确实是参数配置的,但是返回结果却不符合预期。 |
你用这个 https://clouddocs.f5.com/training/community/dns/html/class4/module1/lab3.html 直接用dig 查询,带上client subnet 选项,比较是否与smartdns的一致。 更进一步,可以用 wireshark 抓包看看,是否带上了client subnet 但是这样,上游就必须用 udp 明文协议了。 |
我测试的时候用的就是dig
测试流程,smartdns-rs监听1053/1054,分别对应国内海外域名 |
没理解这个意思,在dig请求上带上subnet,不符合实际场景,实际场景是路由器内进程发送udp请求给smartdns,然后返回结果,这些进程发送请求时也不会带上subnet的。
如果是正常发给阿里dns返回的结果则符合预期
|
经过验证。对于
edns-client-subnet
参数只支持全局配置,无法在某个上游服务器单独配置。对于下面这种配置,edns参数不生效
但是启动的时候,也没报错
查看代码发现有相关的单元测试
https://github.com/mokeyish/smartdns-rs/blob/main/src/dns_conf.rs#L1015
The text was updated successfully, but these errors were encountered: