| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | # transfer
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Name
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  | *transfer* - perform (outgoing) zone transfers for other plugins. | 
					
						
							| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Description
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  | This plugin answers zone transfers for authoritative plugins that implement `transfer.Transferer`. | 
					
						
							| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  | *transfer* answers full zone transfer (AXFR) requests and incremental zone transfer (IXFR) requests | 
					
						
							| 
									
										
										
										
											2019-11-05 15:57:22 +00:00
										 |  |  | with AXFR fallback if the zone has changed. | 
					
						
							| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  | When a plugin wants to notify it's secondaries it will call back into the *transfer* plugin. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The following plugins implement zone transfers using this plugin: *file*, *auto*, *secondary*, and | 
					
						
							|  |  |  | *kubernetes*. See `transfer.go` for implementation details if you are a plugin author that wants to | 
					
						
							|  |  |  | use this plugin. | 
					
						
							| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | transfer [ZONE...] { | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  |   to ADDRESS... | 
					
						
							| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  |  *  **ZONE** The zones *transfer* will answer zone transfer requests for. If left blank, the zones | 
					
						
							|  |  |  |     are inherited from the enclosing server block. To answer zone transfers for a given zone, | 
					
						
							|  |  |  |     there must be another plugin in the same server block that serves the same zone, and implements | 
					
						
							|  |  |  |     `transfer.Transferer`. | 
					
						
							| 
									
										
										
										
											2019-11-01 12:02:43 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-24 11:30:39 -07:00
										 |  |  |  *  `to` **ADDRESS...** The hosts *transfer* will transfer to. Use `*` to permit transfers to all | 
					
						
							| 
									
										
										
										
											2021-06-29 22:09:23 -04:00
										 |  |  |     addresses. Zone change notifications are sent to all **ADDRESS** that are an IP address or | 
					
						
							|  |  |  |     an IP address and port e.g. `1.2.3.4`, `12:34::56`, `1.2.3.4:5300`, `[12:34::56]:5300`. | 
					
						
							|  |  |  |     `to` may be specified multiple times. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You can use the _acl_ plugin to further restrict hosts permitted to receive a zone transfer. | 
					
						
							|  |  |  | See example below. | 
					
						
							| 
									
										
										
										
											2020-01-31 12:37:24 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-01 23:06:13 +08:00
										 |  |  | Use in conjunction with the _acl_ plugin to restrict access to subnet 10.1.0.0/16. | 
					
						
							| 
									
										
										
										
											2021-06-29 22:09:23 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  |   acl { | 
					
						
							|  |  |  |     allow type AXFR net 10.1.0.0/16 | 
					
						
							|  |  |  |     allow type IXFR net 10.1.0.0/16 | 
					
						
							|  |  |  |     block type AXFR net * | 
					
						
							|  |  |  |     block type IXFR net * | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   transfer { | 
					
						
							|  |  |  |     to * | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Each plugin that can use _transfer_ includes an example of use in their respective documentation. |