Closed linusxiong closed 3 years ago
可以支持的,最早的时候我的确考虑支持EDNS,当时参考的https://github.com/m13253/dns-over-https/blob/master/doh-client/client.go#L457的代码。
不过有个问题是如何获取公网IP作为EDNS subnet是个最大的问题,举例来说,当你的主网卡绑定了一个公网IP,一切都很简单,只需要Mask一下即可。
但是如果你有多个网卡,或者你的网卡全是内网IP,你无法从DNS request里面获取到Public IP并masking,这时候就需要你用 curl -L https://icanhzip.com
的方式来获取公网IP。
这个就有另外一个问题,假设使用fallback的方式去获取公网IP,那么要选用哪一个URL作为参考呢?(虽然可以设计为可配置的) 如果我的网络有分流的情况下,那就似乎更麻烦了。
我当时测试发现,m13253/dns-over-https doh client在没有公网IP的家宽下发送出去的DNS request EDNS subnet是一个局域网IP,这几乎等于没用。
当时的想法是,在有分流的情况下,好像不实现也影响不大。
不过如果你有什么特别的场景的话,可以告知我再评估下。(虽然最近很忙)
上面我的考虑可能想复杂了一点,不过主要目的是为了Rewrite DNS message EDNS subnet是局域网IP的问题。
上面我的考虑可能想复杂了一点,不过主要目的是为了Rewrite DNS message EDNS subnet是局域网IP的问题。
可以参考overture的代码,经过测试overture是完美支持的,而且也部分调用coredns的代码
这个插件是否支持edns?