| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | # hosts
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | ## Name
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *hosts* - enables serving zone data from a `/etc/hosts` style file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Description
 | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | The hosts plugin is useful for serving zones from a /etc/hosts file. It serves from a preloaded | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | file that exists on disk. It checks the file for changes and updates the zones accordingly. This | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | plugin only supports A, AAAA, and PTR records. The hosts plugin can be used with readily | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | available hosts files that block access to advertising servers. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-28 18:16:05 -08:00
										 |  |  | This plugin can only be used once per Server Block. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2017-07-23 21:15:16 +01:00
										 |  |  | hosts [FILE [ZONES...]] { | 
					
						
							| 
									
										
										
										
											2017-09-21 04:18:13 -07:00
										 |  |  |     [INLINE] | 
					
						
							| 
									
										
										
										
											2018-01-07 16:32:59 +00:00
										 |  |  |     fallthrough [ZONES...] | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * **FILE** the hosts file to read and parse. If the path is relative the path from the *root* | 
					
						
							| 
									
										
										
										
											2018-01-07 16:32:59 +00:00
										 |  |  |   directive will be prepended to it. Defaults to /etc/hosts if omitted. We scan the file for changes | 
					
						
							| 
									
										
										
										
											2017-10-31 01:40:47 -06:00
										 |  |  |   every 5 seconds. | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | * **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block | 
					
						
							| 
									
										
										
										
											2017-09-21 04:18:13 -07:00
										 |  |  |    are used. | 
					
						
							|  |  |  | * **INLINE** the hosts file contents inlined in Corefile. If there are any lines before fallthrough | 
					
						
							|  |  |  |    then all of them will be treated as the additional content for hosts file. The specified hosts | 
					
						
							|  |  |  |    file path will still be read but entries will be overrided. | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | * `fallthrough` If zone matches and no record can be generated, pass request to the next plugin. | 
					
						
							| 
									
										
										
										
											2018-01-07 16:32:59 +00:00
										 |  |  |   If **[ZONES...]** is omitted, then fallthrough happens for all zones for which the plugin | 
					
						
							|  |  |  |   is authoritative. If specific zones are listed (for example `in-addr.arpa` and `ip6.arpa`), then only | 
					
						
							|  |  |  |   queries for those zones will be subject to fallthrough. | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-23 21:15:16 +01:00
										 |  |  | Load `/etc/hosts` file. | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-10 09:39:35 +02:00
										 |  |  | ~~~ corefile | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     hosts | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-23 21:15:16 +01:00
										 |  |  | Load `example.hosts` file in the current directory. | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | hosts example.hosts | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Load example.hosts file and only serve example.org and example.net from it and fall through to the | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | next plugin if query doesn't match. | 
					
						
							| 
									
										
										
										
											2017-06-08 13:48:04 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | hosts example.hosts example.org example.net { | 
					
						
							|  |  |  |     fallthrough | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2017-09-21 04:18:13 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Load hosts file inlined in Corefile. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | hosts example.hosts example.org { | 
					
						
							|  |  |  |     10.0.0.1 example.org | 
					
						
							|  |  |  |     fallthrough | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ |