| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | # dnssec
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | *dnssec* enables on-the-fly DNSSEC signing of served data. | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | dnssec [ZONES...] | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | * **ZONES** zones that should be signed. If empty, the zones from the configuration block | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  |     are used. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-22 14:04:21 -07:00
										 |  |  | If keys are not specified (see below), a key is generated and used for all signing operations. The | 
					
						
							|  |  |  | DNSSEC signing will treat this key a CSK (common signing key), forgoing the ZSK/KSK split. All | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | signing operations are done online. Authenticated denial of existence is implemented with NSEC black | 
					
						
							|  |  |  | lies. Using ECDSA as an algorithm is preferred as this leads to smaller signatures (compared to | 
					
						
							| 
									
										
										
										
											2016-08-29 19:15:04 +01:00
										 |  |  | RSA). NSEC3 is *not* supported. | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-05 09:32:11 +01:00
										 |  |  | A single signing key can be specified by using the `key` directive. | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-29 19:15:04 +01:00
										 |  |  | NOTE: Key generation has not been implemented yet. | 
					
						
							| 
									
										
										
										
											2016-08-14 07:30:41 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-29 19:15:04 +01:00
										 |  |  | TODO(miek): think about key rollovers, and how to do them automatically. | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-10-10 20:13:22 +01:00
										 |  |  | dnssec [ZONES... ] { | 
					
						
							|  |  |  |     key file KEY... | 
					
						
							| 
									
										
										
										
											2016-10-18 13:33:23 -07:00
										 |  |  |     cache_capacity CAPACITY | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-22 14:04:21 -07:00
										 |  |  | * `key file` indicates that key file(s) should be read from disk. When multiple keys are specified, RRsets | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  |   will be signed with all keys. Generating a key can be done with `dnssec-keygen`: `dnssec-keygen -a | 
					
						
							|  |  |  |   ECDSAP256SHA256 <zonename>`. A key created for zone *A* can be safely used for zone *B*. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-18 13:33:23 -07:00
										 |  |  | * `cache_capacity` indicates the capacity of the LRU cache. The dnssec middleware uses LRU cache to manage | 
					
						
							|  |  |  |   objects and the default capacity is 10000. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 10:01:52 +01:00
										 |  |  | ## Metrics
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If monitoring is enabled (via the *prometheus* directive) then the following metrics are exported: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * coredns_dnssec_size_guage{type} - total elements in the cache, type is "signature". | 
					
						
							|  |  |  | * coredns_dnssec_capacity_guage{type} - total capacity of the cache, type is "signature". | 
					
						
							| 
									
										
										
										
											2016-10-18 13:33:23 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | ## Examples
 |