|
NAMEgrpc - facilitates proxying DNS messages to upstream resolvers via gRPC protocol.DESCRIPTIONThe grpc plugin supports gRPC and TLS.This plugin can only be used once per Server Block. SYNTAXIn its most basic form:grpc FROM TO...
Multiple upstreams are randomized (see policy) on first use. When a proxy returns an error the next upstream in the list is tried. Extra knobs are available with an expanded syntax: grpc FROM TO... { except IGNORED_NAMES... tls CERT KEY CA tls_servername NAME policy random|round_robin|sequential }
Also note the TLS config is "global" for the whole grpc proxy if you need a different tls-name for different upstreams you're out of luck. METRICSIf monitoring is enabled (via the prometheus plugin) then the following metric are exported:
EXAMPLESProxy all requests within example.org. to a nameserver running on a different port:example.org { grpc . 127.0.0.1:9005 } Load balance all requests between three resolvers, one of which has a IPv6 address. . { grpc . 10.0.0.10:53 10.0.0.11:1053 [2003::1]:53 } Forward everything except requests to example.org . { grpc . 10.0.0.10:1234 { except example.org } } Proxy everything except example.org using the host's resolv.conf's nameservers: . { grpc . /etc/resolv.conf { except example.org } } Proxy all requests to 9.9.9.9 using the TLS protocol, and cache every answer for up to 30 seconds. Note the tls_servername is mandatory if you want a working setup, as 9.9.9.9 can't be used in the TLS negotiation. . { grpc . 9.9.9.9 { tls_servername dns.quad9.net } cache 30 } Or with multiple upstreams from the same provider . { grpc . 1.1.1.1 1.0.0.1 { tls_servername cloudflare-dns.com } cache 30 } BUGSThe TLS config is global for the whole grpc proxy if you need a different tls_servername for different upstreams you're out of luck.
Visit the GSP FreeBSD Man Page Interface. |