| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | # cache
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | *cache* enables a frontend cache. | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | ~~~ txt | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | cache [TTL] [ZONES...] | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | * **TTL** max TTL in seconds. If not specified, the maximum TTL will be used which is 1 hour for | 
					
						
							| 
									
										
										
										
											2016-10-08 15:12:28 +01:00
										 |  |  |     noerror responses and half an hour for denial of existence ones. | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | * **ZONES** zones it should cache for. If empty, the zones from the configuration block are used. | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | Each element in the cache is cached according to its TTL (with **TTL** as the max). | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | For the negative cache, the SOA's MinTTL value is used. A cache can contain up to 10,000 items by | 
					
						
							|  |  |  | default. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | If you want more control: | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | cache [TTL] [ZONES...] { | 
					
						
							|  |  |  |     success CAPACITY [TTL] | 
					
						
							|  |  |  |     denial CAPACITY [TTL] | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | * **TTL**  and **ZONES** as above. | 
					
						
							|  |  |  | * `success`, override the settings for caching succesful responses, **CAPACITY** indicates the maximum | 
					
						
							|  |  |  |   number of packets we cache before we start evicting (LRU). **TTL** overrides the cache maximum TTL. | 
					
						
							|  |  |  | * `denial`, override the settings for caching denial of existence responses, **CAPACITY** indicates the maximum | 
					
						
							|  |  |  |   number of packets we cache before we start evicting (LRU). **TTL** overrides the cache maximum TTL. | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-08 15:12:28 +01:00
										 |  |  | There is a third category (`error`) but those responses are never cached. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-19 10:26:29 +00:00
										 |  |  | The minimum TTL allowed on resource records is 5 seconds. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 10:01:52 +01:00
										 |  |  | ## Metrics
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 10:01:52 +01:00
										 |  |  | If monitoring is enabled (via the *prometheus* directive) then the following metrics are exported: | 
					
						
							| 
									
										
										
										
											2016-06-23 12:57:06 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 10:01:52 +01:00
										 |  |  | * coredns_cache_size_guage{type} - total elements in the case, type is either "denial" or "success". | 
					
						
							|  |  |  | * coredns_cache_capacity_guage{type} - total capacity of the cache, type is either "denial" or "success". | 
					
						
							| 
									
										
										
										
											2016-06-23 12:57:06 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 10:01:52 +01:00
										 |  |  | Enable caching for all zones, but cap everything to a TTL of 10 seconds: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-04-19 10:26:29 +00:00
										 |  |  | cache 10 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 10:01:52 +01:00
										 |  |  | Proxy to Google Public DNS and only cache responses for example.org (or below). | 
					
						
							| 
									
										
										
										
											2016-04-19 10:26:29 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | proxy . 8.8.8.8:53 | 
					
						
							| 
									
										
										
										
											2016-08-22 07:47:03 +01:00
										 |  |  | cache example.org | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | ~~~ |