.\" Generated by Mmark Markdown Processer - mmark.miek.nl .TH "COREDNS-GRPC" 7 "March 2021" "CoreDNS" "CoreDNS Plugins" .SH "NAME" .PP \fIgrpc\fP - facilitates proxying DNS messages to upstream resolvers via gRPC protocol. .SH "DESCRIPTION" .PP The \fIgrpc\fP plugin supports gRPC and TLS. .PP This plugin can only be used once per Server Block. .SH "SYNTAX" .PP In its most basic form: .PP .RS .nf grpc FROM TO... .fi .RE .IP \(bu 4 \fBFROM\fP is the base domain to match for the request to be proxied. .IP \(bu 4 \fBTO...\fP are the destination endpoints to proxy to. The number of upstreams is limited to 15. .PP Multiple upstreams are randomized (see \fB\fCpolicy\fR) on first use. When a proxy returns an error the next upstream in the list is tried. .PP Extra knobs are available with an expanded syntax: .PP .RS .nf grpc FROM TO... { except IGNORED\_NAMES... tls CERT KEY CA tls\_servername NAME policy random|round\_robin|sequential } .fi .RE .IP \(bu 4 \fBFROM\fP and \fBTO...\fP as above. .IP \(bu 4 \fBIGNORED_NAMES\fP in \fB\fCexcept\fR is a space-separated list of domains to exclude from proxying. Requests that match none of these names will be passed through. .IP \(bu 4 \fB\fCtls\fR \fBCERT\fP \fBKEY\fP \fBCA\fP define the TLS properties for TLS connection. From 0 to 3 arguments can be provided with the meaning as described below .RS .IP \(en 4 \fB\fCtls\fR - no client authentication is used, and the system CAs are used to verify the server certificate .IP \(en 4 \fB\fCtls\fR \fBCA\fP - no client authentication is used, and the file CA is used to verify the server certificate .IP \(en 4 \fB\fCtls\fR \fBCERT\fP \fBKEY\fP - client authentication is used with the specified cert/key pair. The server certificate is verified with the system CAs .IP \(en 4 \fB\fCtls\fR \fBCERT\fP \fBKEY\fP \fBCA\fP - client authentication is used with the specified cert/key pair. The server certificate is verified using the specified CA file .RE .IP \(bu 4 \fB\fCtls_servername\fR \fBNAME\fP allows you to set a server name in the TLS configuration; for instance 9.9.9.9 needs this to be set to \fB\fCdns.quad9.net\fR. Multiple upstreams are still allowed in this scenario, but they have to use the same \fB\fCtls_servername\fR. E.g. mixing 9.9.9.9 (QuadDNS) with 1.1.1.1 (Cloudflare) will not work. .IP \(bu 4 \fB\fCpolicy\fR specifies the policy to use for selecting upstream servers. The default is \fB\fCrandom\fR. .PP Also note the TLS config is "global" for the whole grpc proxy if you need a different \fB\fCtls-name\fR for different upstreams you're out of luck. .SH "METRICS" .PP If monitoring is enabled (via the \fIprometheus\fP plugin) then the following metric are exported: .IP \(bu 4 \fB\fCcoredns_grpc_request_duration_seconds{to}\fR - duration per upstream interaction. .IP \(bu 4 \fB\fCcoredns_grpc_requests_total{to}\fR - query count per upstream. .IP \(bu 4 \fB\fCcoredns_grpc_responses_total{to, rcode}\fR - count of RCODEs per upstream. and we are randomly (this always uses the \fB\fCrandom\fR policy) spraying to an upstream. .SH "EXAMPLES" .PP Proxy all requests within \fB\fCexample.org.\fR to a nameserver running on a different port: .PP .RS .nf example.org { grpc . 127.0.0.1:9005 } .fi .RE .PP Load balance all requests between three resolvers, one of which has a IPv6 address. .PP .RS .nf \&. { grpc . 10.0.0.10:53 10.0.0.11:1053 [2003::1]:53 } .fi .RE .PP Forward everything except requests to \fB\fCexample.org\fR .PP .RS .nf \&. { grpc . 10.0.0.10:1234 { except example.org } } .fi .RE .PP Proxy everything except \fB\fCexample.org\fR using the host's \fB\fCresolv.conf\fR's nameservers: .PP .RS .nf \&. { grpc . /etc/resolv.conf { except example.org } } .fi .RE .PP Proxy all requests to 9.9.9.9 using the TLS protocol, and cache every answer for up to 30 seconds. Note the \fB\fCtls_servername\fR is mandatory if you want a working setup, as 9.9.9.9 can't be used in the TLS negotiation. .PP .RS .nf \&. { grpc . 9.9.9.9 { tls\_servername dns.quad9.net } cache 30 } .fi .RE .PP Or with multiple upstreams from the same provider .PP .RS .nf \&. { grpc . 1.1.1.1 1.0.0.1 { tls\_servername cloudflare\-dns.com } cache 30 } .fi .RE .SH "BUGS" .PP The TLS config is global for the whole grpc proxy if you need a different \fB\fCtls_servername\fR for different upstreams you're out of luck. ng'>dylan/resolve-rope-in-string Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/docs/rfcs (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-10-18Adds macOS Keychain certs to default CA storeGravatar Anshul Gupta 2-2/+175
2023-10-18fix(node:buffer): fix the behavior of `totalLength` in `Buffer.concat` (#6574)Gravatar Ai Hoshino 2-3/+23
2023-10-18fix: change `--no-scripts` to `--ignore-scripts` (#6587)Gravatar Dawid Sowa 1-2/+2
2023-10-18fix: online docs moved (#6579)Gravatar Mountain/\Ash 1-1/+1
2023-10-18Fix minimum kernel version in docs (#6153)Gravatar Kevin Latka 1-1/+1
2023-10-18build-id++Gravatar Dylan Conway 1-1/+1
2023-10-18fix(web): stub `performance.getEntriesByName` (#6542)Gravatar Liz 1-0/+18
2023-10-17update root package variableGravatar Dylan Conway 1-8/+3
2023-10-17Fix missing `{port: 0}` causing flaky testGravatar Ashcon Partovi 1-0/+2
2023-10-17test changes in usockets in ciGravatar Dylan Conway 5-0/+9
2023-10-17fix #4766 (#6563)Gravatar Pierre CM 1-4/+4
2023-10-17Update ZigGeneratedClasses.cppGravatar Dylan Conway 1-2/+0
2023-10-17use npm alias in dependencies (#6545)Gravatar Dylan Conway 7-29/+271
2023-10-17fix(node:http): fix `server.address()` (#6442)Gravatar Ai Hoshino 12-12/+453
2023-10-17docs: fix ws.publish (#6558)Gravatar Aral Roca Gomez 1-1/+1
2023-10-17perf(bun-types): remove needless some call (#6550)Gravatar Mikhail 1-1/+1
2023-10-16fix(runtime): make some things more stable (partial jsc debug build) (#5881)Gravatar dave caruso 116-1446/+1830
2023-10-16fix(runtime): improve IPC reliability + organization pass on that code (#6475)Gravatar dave caruso 15-98/+266
2023-10-16Simplify getting Set of extentions (#4975)Gravatar Mikhail 1-3/+3
2023-10-16Fix formattingGravatar Ashcon Partovi 1-3/+1
2023-10-16fix(test): when tests run with --only the nested describe blocks `.on… (#5616)Gravatar Igor Shapiro 2-13/+45
2023-10-16perf(node:events): optimize `emit(...)` function (#5485)Gravatar Yannik Schröder 3-11/+132
2023-10-16fix: don't remove content-encoding header from header table (#5743)Gravatar Liz 2-2/+25
2023-10-16fix(sqlite) Insert .all() does not return an array #5872 (#5946)Gravatar Hugo Galan 2-7/+11
2023-10-16Fix formattingGravatar Ashcon Partovi 2-5/+4
2023-10-16Fix `Response.statusText` (#6151)Gravatar Chris Toshok 10-238/+269
2023-10-16fix-subprocess-argument-missing (#6407)Gravatar Nicolae-Rares Ailincai 4-2/+40
2023-10-16Add type parameter to `expect` (#6128)Gravatar Voldemat 1-3/+3
2023-10-16fix(node:worker_threads): ensure threadId property is exposed on worker_threa...Gravatar Jérôme Benoit 6-15/+75
2023-10-16Fix use before define bug in sqliteGravatar Ashcon Partovi 2-5/+5
2023-10-16fix(jest): fix toStrictEqual on same URLs (#6528)Gravatar João Alisson 2-13/+16
2023-10-16Fix `toHaveBeenCalled` having wrong error signatureGravatar Ashcon Partovi 1-2/+2
2023-10-16Fix formattingGravatar Ashcon Partovi 1-2/+1
2023-10-16Add `reusePort` to `Bun.serve` typesGravatar Ashcon Partovi 1-0/+9
2023-10-16Fix `request.url` having incorrect portGravatar Ashcon Partovi 4-1/+92
2023-10-16Remove uWebSockets header from Bun.serve responsesGravatar Ashcon Partovi 1-6/+6
2023-10-16Rename some testsGravatar Ashcon Partovi 3-0/+0
2023-10-16Fix #6467Gravatar Ashcon Partovi 2-3/+10
2023-10-16Update InternalModuleRegistryConstants.hGravatar Dylan Conway 1-3/+3
2023-10-16Development -> Contributing (#6538)Gravatar Colin McDonnell 2-1/+1
2023-10-14fix(net/tls) fix pg hang on end + hanging on query (#6487)Gravatar Ciro Spaciari 3-8/+36
2023-10-13fix installing dependencies that match workspace versions (#6494)Gravatar Dylan Conway 4-2/+64
2023-10-13fix lockfile struct padding (#6495)Gravatar Dylan Conway 3-3/+18