This is TunnelDigger, a tool to configure a network of OpenVPN tunnels.

To use it, make a directory somewhere, create a "config" file in it with
one line per tunnel, and call `make -f /usr/lib/tunneldigger/Makefile'.

Copy the resulting .debs to the hosts they are named after, and install
them. (You'll also need openvpn and tunneldigger-utils on those hosts.)

IMPORTANT: There are secret keys in those .debs. Be careful about where
you put them and how you transport them!

You might want to customize the CANAME and MAINT variables to something
else, by giving them as parameters to the makefile, like `make -f
/usr/lib/tunneldigger/Makefile CANAME=My_CA_Name MAINT="I am The Man
<i@the.man.example>"'.

The format of the "config" file is simple:

White space has no meaning
Fields are separated by ';'
Lists are separated by ','
Everything after # is a comment
There are no continuation lines or other escapes
Empty lines are ignored

Fields are:
1. Endpoint 1 (TLS server) fields
2. Endpoint 2 (TLS client) fields

Endpoint fields:
1. Kind of system (currently only deb)
2. Endpoint name ([_a-zA-Z0-9]{1,8})
3. external endpoint address (address or name, name/dyn, or dyn)
4. external endpoint port (number or dyn or alloc/allocatorname)
5. interface (usually empty)
6. internal endpoint address(es) (address or name list)
7. subnets routed through the tunnel to this side (address/length list)

name-allocatorname.alloc is a file with a Perl hash with name => port entries,
with the special entries "[first]" and "[last]" (default 5000 and 5999)
specifying the port range to use. (Entries outside the range will be
reallocated.)
