| 
									
										
										
										
											2016-11-26 17:57:22 +00:00
										 |  |  | # httpproxy
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *httpproxy* proxies DNS request to a proxy using HTTPS (or HTTP/2 - not implemented). Usually this | 
					
						
							|  |  |  |  involves sending a JSON payload over this transport and translating the response back to DNS. The | 
					
						
							|  |  |  |  current supported backend is Google, using the URL: https://dns.google.com . | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In its most basic form, a simple http proxy uses this syntax: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | httpproxy FROM TO | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * **FROM** is the base domain to match for the request to be proxied. | 
					
						
							|  |  |  | * **TO** is the destination endpoint to proxy to, accepted values here are `dns.google.com`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For changing the defaults you can use the expanded syntax: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | proxy FROM TO { | 
					
						
							|  |  |  |     upstream ADDRESS... | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * `upstream` defines upstream resolvers to be used (re-)resolve `dns.google.com` (or other names in the | 
					
						
							|  |  |  |   future) every 30 seconds. When not specified the combo 8.8.8.8, 8.8.4.4 is used. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Metrics
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If monitoring is enabled (via the *prometheus* directive) then the following metric is exported: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * coredns_httpproxy_request_count_total{zone, proto, family} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Proxy all requests within example.org to Google's dns.google.com. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | proxy example.org dns.google.com | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Proxy everything, and re-lookup `dns.google.com` every 30 seconds using the resolvers specified | 
					
						
							|  |  |  | in /etc/resolv.conf. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | proxy . dns.google.com { | 
					
						
							|  |  |  |     upstream /etc/resolv.conf | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-11-29 09:54:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Debug queries
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Debug queries are enabled by default and currently there is no way to turn them off. When CoreDNS | 
					
						
							|  |  |  | receives a debug queries (i.e. the name is prefixed with `o-o.debug.` a TXT record with Comment from | 
					
						
							|  |  |  | `dns.google.com` is added. Note this is not always set, but sometimes you'll see: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `dig @localhost -p 1053 mx o-o.debug.example.org`: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | ;; OPT PSEUDOSECTION: | 
					
						
							|  |  |  | ; EDNS: version: 0, flags:; udp: 4096 | 
					
						
							|  |  |  | ;; QUESTION SECTION: | 
					
						
							|  |  |  | ;o-o.debug.example.org.		IN	MX | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ;; AUTHORITY SECTION: | 
					
						
							|  |  |  | example.org.		1799	IN	SOA	sns.dns.icann.org. noc.dns.icann.org. 2016110711 7200 3600 1209600 3600 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ;; ADDITIONAL SECTION: | 
					
						
							|  |  |  | .			0	CH	TXT	"Response from 199.43.133.53" | 
					
						
							|  |  |  | ~~~ |