-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Regression: CoreDNS in version 1.8.0 fails to resolve domain (works in 1.6.9) #4735
Comments
Since 1.7.1, #4085 makes cache default all queries to use DNSSEC (an optimization). This doesn't exactly line up with your observing 1.7.X, but if 1.7.0 is not affected, it could explain one of the flag differences you see, the presence of the AD flag instead of AA. However, cache won't reply with an AD flag unless the request was actually DNSSEC, and in this case per the log entry the request would not have been DNSSEC, so something is off. Anyways, perhaps this confuses OpenID Connect/OpenResty. Clearly disabling cache in production is not an option. But to experiment, you could temporarily disable cache to see if the issue goes away, just to narrow down things. |
Hi, Thanks for your reply! The log for 1.8.0 with caching disabled contains the following entries (filterede for the correct domain only):
If I on the host (outside k8s) perform a dig I get the following response: $ dig proxy.mydomain.com.
; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> proxy.mydomain.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39163
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;proxy.mydomain.com. IN A
;; ANSWER SECTION:
proxy.mydomain.com. 17112 IN A {IP-ADDR}
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Jul 08 10:29:17 CEST 2021
;; MSG SIZE rcvd: 59 |
I saw that there was some work done by related to caching of DNSSEC in #4148 Maybe the query is returning something that triggers the isDNSSEC function to return true?: https://github.com/coredns/coredns/blob/master/plugin/cache/dnssec.go#L8 here? |
Looking at the code, it looks like the only way cache will write the
... is impossible, because Yet it happened somehow. |
Please re-open if #4736 does not resolve this issue. |
What happened:
When using k3s with CoreDNS 1.8.0 for a specific domain (which is my corporate http proxy) returns 'rflags' in a different way than when using CoreDNS 1.6.9.
In practice this means that OpenID Connect using OpenResty as a reverse-proxy fails. Downgrading to 1.6.9 fixes the issue. CoreDNS in version 1.7.X has the same issue.
I cannot easily upgrade to 1.8.3 as it depends on
endpointSlices
.I've narrowed it down to the following difference (which may be a wild goose-chase).
For 1.6.9 CoreDNS logs the following way for the domain:
For 1.8.0 it logs:
The difference seems to be in the 'rflags'.
Anything else we need to know?:
As this is my proxy server a lot of requests also goes through it, and for those request there's also a difference between 1.6.9 and 1.8.0.
1.6.9:
1.8.0:
Environment:
1.8.0
cat /etc/os-release
):CoreDNS is running in k3s on Ubuntu.
/ect/resolv.conf
on the host:The text was updated successfully, but these errors were encountered: