| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | # file
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | *file* enables serving zone data from an RFC 1035-style master file. | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-22 14:12:03 -07:00
										 |  |  | The file middleware is used for an "old-style" DNS server. It serves from a preloaded file that exists | 
					
						
							| 
									
										
										
										
											2016-08-29 19:15:04 +01:00
										 |  |  | on disk. If the zone file contains signatures (i.e. is signed, i.e. DNSSEC) correct DNSSEC answers | 
					
						
							|  |  |  | are returned. Only NSEC is supported! If you use this setup *you* are responsible for resigning the | 
					
						
							|  |  |  | zonefile. | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | file DBFILE [ZONES...] | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-11 20:42:28 +01:00
										 |  |  | * **DBFILE** the database file to read and parse. If the path is relative the path from the *root* | 
					
						
							|  |  |  |   directive will be prepended to it. | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | * **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  |     are used. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | If you want to round robin A and AAAA responses look at the *loadbalance* middleware. | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-03 09:02:34 +01:00
										 |  |  | TSIG key configuration is TODO; directive format for transfer will probably be extended with | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | TSIG key information, something like `transfer out [ADDRESS...] key [NAME[:ALG]] [BASE64]` | 
					
						
							| 
									
										
										
										
											2016-04-03 07:37:41 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | file DBFILE [ZONES... ] { | 
					
						
							|  |  |  |     transfer to ADDRESS... | 
					
						
							| 
									
										
										
										
											2016-04-15 14:26:27 +01:00
										 |  |  |     no_reload | 
					
						
							| 
									
										
										
										
											2016-11-09 21:26:49 +00:00
										 |  |  |     upstream ADDRESS... | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | * `transfer` enables zone transfers. It may be specified multiples times. `To` or `from` signals | 
					
						
							|  |  |  |   the direction. **ADDRESS** must be denoted in CIDR notation (127.0.0.1/32 etc.) or just as plain | 
					
						
							| 
									
										
										
										
											2016-09-18 09:32:06 +01:00
										 |  |  |   addresses. The special wildcard `*` means: the entire internet (only valid for 'transfer to'). | 
					
						
							|  |  |  |   When an address is specified a notify message will be send whenever the zone is reloaded. | 
					
						
							| 
									
										
										
										
											2016-04-15 14:26:27 +01:00
										 |  |  | * `no_reload` by default CoreDNS will reload a zone from disk whenever it detects a change to the | 
					
						
							|  |  |  |   file. This option disables that behavior. | 
					
						
							| 
									
										
										
										
											2016-11-09 21:26:49 +00:00
										 |  |  | * `upstream` defines upstream resolvers to be used resolve external names found (think CNAMEs) | 
					
						
							| 
									
										
										
										
											2017-06-21 23:46:20 -07:00
										 |  |  |   pointing to external names. This is only really useful when CoreDNS is configured as a proxy, for | 
					
						
							| 
									
										
										
										
											2017-08-22 14:56:00 +01:00
										 |  |  |   normal authoritative serving you don't need *or* want to use this. **ADDRESS** can be an IP | 
					
						
							|  |  |  |   address, and IP:port or a string pointing to a file that is structured as /etc/resolv.conf. | 
					
						
							| 
									
										
										
										
											2016-03-27 07:37:23 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Examples
 | 
					
						
							| 
									
										
										
										
											2016-04-03 09:02:34 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-18 09:32:06 +01:00
										 |  |  | Load the `example.org` zone from `example.org.signed` and allow transfers to the internet, but send | 
					
						
							|  |  |  | notifies to 10.240.1.1 | 
					
						
							| 
									
										
										
										
											2016-04-03 09:02:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-09-18 09:32:06 +01:00
										 |  |  | file example.org.signed example.org { | 
					
						
							| 
									
										
										
										
											2016-04-03 09:02:34 +01:00
										 |  |  |     transfer to * | 
					
						
							| 
									
										
										
										
											2016-09-18 09:32:06 +01:00
										 |  |  |     transfer to 10.240.1.1 | 
					
						
							| 
									
										
										
										
											2016-04-03 09:02:34 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ |