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
|