| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | # erratic
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | ## Name
 | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | *erratic* - a plugin useful for testing client behavior. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Description
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *erratic* returns a static response to all queries, but the responses can be delayed, dropped or truncated. | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | The *erratic* plugin will respond to every A or AAAA query. For any other type it will return | 
					
						
							| 
									
										
										
										
											2018-03-07 13:52:32 +00:00
										 |  |  | a SERVFAIL response. The reply for A will return 192.0.2.53 (see [RFC | 
					
						
							|  |  |  | 5737](https://tools.ietf.org/html/rfc5737), | 
					
						
							|  |  |  | for AAAA it returns 2001:DB8::53 (see [RFC 3849](https://tools.ietf.org/html/rfc3849)). | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | *erratic* can also be used in conjunction with the *autopath* plugin. This is mostly to aid in | 
					
						
							| 
									
										
										
										
											2017-09-15 22:27:55 +01:00
										 |  |  | testing. | 
					
						
							| 
									
										
										
										
											2017-08-18 12:57:23 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | erratic { | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  |     drop [AMOUNT] | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  |     truncate [AMOUNT] | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  |     delay [AMOUNT [DURATION]] | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | * `drop`: drop 1 per **AMOUNT** of queries, the default is 2. | 
					
						
							|  |  |  | * `truncate`: truncate 1 per **AMOUNT** of queries, the default is 2. | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | * `delay`: delay 1 per **AMOUNT** of queries for **DURATION**, the default for **AMOUNT** is 2 and | 
					
						
							|  |  |  |   the default for **DURATION** is 100ms. | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-13 09:52:40 +00:00
										 |  |  | ## Health
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This plugin implements dynamic health checking. For every dropped query it turns unhealthy. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							|  |  |  | . { | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  |     erratic { | 
					
						
							|  |  |  |         drop 3 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them. | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | . { | 
					
						
							|  |  |  |     erratic | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | Delay 1 in 3 queries for 50ms | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | . { | 
					
						
							|  |  |  |     erratic { | 
					
						
							|  |  |  |         delay 3 50ms | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | Delay 1 in 3 and truncate 1 in 5. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | . { | 
					
						
							|  |  |  |     erratic { | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  |         delay 3 5ms | 
					
						
							|  |  |  |         truncate 5 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Drop every second query. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 09:56:05 +01:00
										 |  |  | ~~~ corefile | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | . { | 
					
						
							|  |  |  |     erratic { | 
					
						
							|  |  |  |         drop 2 | 
					
						
							|  |  |  |         truncate 2 | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2018-03-07 13:52:32 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Also See
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [RFC 3849](https://tools.ietf.org/html/rfc3849) and | 
					
						
							|  |  |  | [RFC 5737](https://tools.ietf.org/html/rfc5737). |