| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | # auto
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | ## Name
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-10 23:31:52 -08:00
										 |  |  | *auto* - enables serving zone data from an RFC 1035-style master file, which is automatically picked up from disk. | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Description
 | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | The *auto* plugin is used for an "old-style" DNS server. It serves from a preloaded file that exists | 
					
						
							| 
									
										
										
										
											2018-01-10 23:31:52 -08:00
										 |  |  | on disk. If the zone file contains signatures (i.e. is signed, i.e. using DNSSEC) correct DNSSEC answers | 
					
						
							|  |  |  | are returned. Only NSEC is supported! If you use this setup *you* are responsible for re-signing the | 
					
						
							|  |  |  | zonefile. New or changed zones are automatically picked up from disk. | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | auto [ZONES...] { | 
					
						
							|  |  |  |     directory DIR [REGEXP ORIGIN_TEMPLATE [TIMEOUT]] | 
					
						
							| 
									
										
										
										
											2018-09-29 17:50:49 +02:00
										 |  |  |     reload DURATION | 
					
						
							| 
									
										
										
										
											2016-11-09 21:26:49 +00:00
										 |  |  |     no_reload | 
					
						
							| 
									
										
										
										
											2019-01-13 16:54:49 +00:00
										 |  |  |     upstream | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block | 
					
						
							|  |  |  | are used. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-14 17:55:55 +02:00
										 |  |  | * `directory` loads zones from the specified **DIR**. If a file name matches **REGEXP** it will be | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  |   used to extract the origin. **ORIGIN_TEMPLATE** will be used as a template for the origin. Strings | 
					
						
							| 
									
										
										
										
											2018-01-10 23:31:52 -08:00
										 |  |  |   like `{<number>}` are replaced with the respective matches in the file name, e.g. `{1}` is the | 
					
						
							|  |  |  |   first match, `{2}` is the second. The default is: `db\.(.*)  {1}` i.e. from a file with the | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  |   name `db.example.com`, the extracted origin will be `example.com`. **TIMEOUT** specifies how often | 
					
						
							| 
									
										
										
										
											2018-01-10 23:31:52 -08:00
										 |  |  |   CoreDNS should scan the directory; the default is every 60 seconds. This value is in seconds. | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  |   The minimum value is 1 second. | 
					
						
							| 
									
										
										
										
											2018-10-19 10:58:36 -07:00
										 |  |  | * `reload` interval to perform reload of zone if SOA version changes. Default is one minute. | 
					
						
							|  |  |  |   Value of `0` means to not scan for changes and reload. eg. `30s` checks zonefile every 30 seconds | 
					
						
							| 
									
										
										
										
											2018-09-29 17:50:49 +02:00
										 |  |  |   and reloads zone when serial changes. | 
					
						
							|  |  |  | * `no_reload` deprecated. Sets reload to 0. | 
					
						
							| 
									
										
										
										
											2016-11-09 21:26:49 +00:00
										 |  |  | * `upstream` defines upstream resolvers to be used resolve external names found (think CNAMEs) | 
					
						
							| 
									
										
										
										
											2019-01-13 16:54:49 +00:00
										 |  |  |   pointing to external names. CoreDNS will resolve CNAMEs against itself. | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | All directives from the *file* plugin are supported. Note that *auto* will load all zones found, | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | even though the directive might only receive queries for a specific zone. I.e: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-10 09:39:35 +02:00
										 |  |  | ~~~ corefile | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     auto example.org { | 
					
						
							|  |  |  |         directory /etc/coredns/zones | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | Will happily pick up a zone for `example.COM`, except it will never be queried, because the *auto* | 
					
						
							|  |  |  | directive only is authoritative for `example.ORG`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Load `org` domains from `/etc/coredns/zones/org` and allow transfers to the internet, but send | 
					
						
							|  |  |  | notifies to 10.240.1.1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     auto org { | 
					
						
							|  |  |  |         directory /etc/coredns/zones/org | 
					
						
							|  |  |  |         transfer to * | 
					
						
							|  |  |  |         transfer to 10.240.1.1 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Load `org` domains from `/etc/coredns/zones/org` and looks for file names as `www.db.example.org`, | 
					
						
							|  |  |  | where `example.org` is the origin. Scan every 45 seconds. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							|  |  |  | org { | 
					
						
							|  |  |  |     auto { | 
					
						
							|  |  |  |         directory /etc/coredns/zones/org www\.db\.(.*) {1} 45 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-10-17 18:37:56 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ |