-
Notifications
You must be signed in to change notification settings - Fork 3.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 proxy use original source address and port #28928
Dns proxy use original source address and port #28928
Conversation
In local testing
|
dnsproxy gets timeouts waiting for response from the dns server when curl is issuing both IPv4 ( Functionally significant change is that now there are two upstream connections (one for |
Added commit to share a DNS client between requests that share the same upstream 5-tuple. |
One of the commits needs to be moved to |
6e4b87e
to
a806be7
Compare
Moved the refactoring commit to |
/test |
marked as blocked as we need to decide if we wait for sasha-s/go-deadlock#30 to merge or use my fork with it like in the 1st commit via go mod replace right now. |
a806be7
to
0d80ed4
Compare
Avoiding the use of original source address if it is known to be from the host networking namespace (host endpoint or localhost). |
/test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know it's still a draft, but I've briefly looked through and the code seems to have become more complex; thus questions around the approach arose
0d80ed4
to
f743dda
Compare
Rebased to restart CI in hopes cloudflare is better today. |
f743dda
to
12bfdeb
Compare
/test |
Make Cilium DNS proxy transparent by using the original source address (and port) in upstream connections. Since clients can issue multiple requests from the same port without waiting for the responses in between, we must support multiple requests in flight at the same time on the client side as well. To this end we share the DNS client between all requests that use the same upstream 5-tuple.
Support for shared clients is imported from a new version of cilium/dns.