mirror of
				https://github.com/miekg/dns.git
				synced 2025-11-04 12:41:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2011 Miek Gieben. All rights reserved.
 | 
						|
// Lisenced under the GPLv2
 | 
						|
 | 
						|
/*
 | 
						|
Funkensturm rewrites DNS packets in the broadest sense of the word.
 | 
						|
The rewriting can include delayed (re)sending of packets, (re)sending
 | 
						|
packets to multiple servers, rewriting the packet contents, for instance
 | 
						|
by signing a packet, or the other way around, stripping the signatures.
 | 
						|
 | 
						|
In its essence this is no different that a recursive nameserver, which also
 | 
						|
receives and sends queries. The difference is the huge amount of tweaking
 | 
						|
Funkensturm offers.
 | 
						|
 | 
						|
The configuration of Funkensturm is done by writing it in Go - a
 | 
						|
separate configuration language was deemed to be unpractical and
 | 
						|
would limit the possibilities.
 | 
						|
 | 
						|
Usage:
 | 
						|
        funkensturm [flags]
 | 
						|
 | 
						|
The flags are:
 | 
						|
 | 
						|
        -sserver
 | 
						|
                        Listener address and port for the server. This has to be
 | 
						|
                        specified as: address:port, for instance 127.0.0.1:8053.
 | 
						|
                        This is also the default.
 | 
						|
        -rserver 
 | 
						|
                        Remote server address in address:port format. This can be
 | 
						|
                        repeated, for each rserver a resolver channel is created.
 | 
						|
                        The first begin `qr[0]`, the second `qr[1]`, etc.
 | 
						|
                        The default is: 127.0.0.1:53
 | 
						|
 | 
						|
Debugging flags:
 | 
						|
 | 
						|
        -verbose
 | 
						|
                        Print packets as they flow through Funkensturm.
 | 
						|
 | 
						|
Predefined configurations are shown in `config_delay.go` and `config_sign.go`. The
 | 
						|
default `config.go` implements a transparant proxy.
 | 
						|
 | 
						|
Also see: http://www.miek.nl/blog/archives/2011/01/23/funkensturm/index.html for
 | 
						|
a architectural overview.
 | 
						|
 | 
						|
In FunkenSturm you define chains named Funk's (maybe just 'chain' is a better name). Each Funk
 | 
						|
consists out of match and action function. If the match function matches (return true) the
 | 
						|
action function is called.
 | 
						|
Multiple Funk's may be used. The first 'true' value win and that action function is performed.
 | 
						|
 | 
						|
*/
 | 
						|
package documentation
 |