dns/ex/funkensturm/doc.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