README 4.67 KB
Newer Older
1
This is the source for a pre-alpha version of BIND 10.
2

3 4 5 6
BUILDING

Simple build instructions:

7
  autoreconf --install
8 9
  ./configure
  make
10

11 12 13
Requires autoconf 2.59 or newer.

Use automake-1.11 or better for working Python 3.1 tests.
14 15 16 17
Alternatively, you could manually specify an absolute path to python
executable by the --with-pythonpath option of the configure script,
e.g.,
% ./configure --with-pythonpath=/usr/local/bin/python3.1
18

19 20 21 22 23 24 25 26 27 28 29 30 31
Operating-System specific tips:

- FreeBSD
  You may need to install a python binding for sqlite3 by hand.  A
  sample procedure is as follows:
  - add the following to /etc/make.conf
    PYTHON_VERSION=3.1
  - build and install the python binding from ports, assuming the top
    directory of the ports system is /usr/ports
  % cd /usr/ports/databases/py-sqlite3/
  % make
  % sudo make install

32 33
INSTALLATION

34 35 36
Install with:

  make install
37

38 39 40 41 42 43 44 45 46
Testing samples of a RSA key, certificate, and user account
are installed under the $PREFIX/share/bind10/ directory.
  cmdctl-accounts.csv
  cmdctl-keyfile.pem
  cmdctl-certfile.pem
Copy them to your $sysconfdir/bind10/ directory  for testing.
Or create your own.
TODO: show how

47 48
TEST COVERAGE

49 50
Doing code coverage tests:

51
  make coverage
52 53
	Does the following:

54
  make clean-coverage
55 56
	Zeroes the lcov code coverage counters and removes the coverage HTML.

57
  make perform-coverage
58 59
	Runs the C++ tests (using googletests framework).

60
  make report-coverage
Jeremy C. Reed's avatar
Jeremy C. Reed committed
61 62
	Generates the coverage HTML, excluding some unrelated headers.
	The HTML reports are placed in a directory called coverage/.
63

64 65 66 67 68
DEVELOPERS

The generated run_*.sh scripts available in the src/bin directories
are for running the code using the source tree.

69 70
RUNNING

71 72 73
You can start the BIND 10 processes by running bind10 which is
installed to the sbin directory under the installation prefix.
The default location is:
74

75 76 77 78
  /usr/local/sbin/bind10

For development work, you can also run the bind10 services from the
source tree:
79

80 81 82 83 84 85
 ./src/bin/bind10/run_bind10.sh 

(Which will use the modules and configurations also from the source
tree.)

The server will listen on port 5300 for DNS requests.
86 87 88

CONFIGURATION

89
Commands can be given through the bindctl tool.
90

Jeremy C. Reed's avatar
Jeremy C. Reed committed
91
The server must be running for bindctl to work.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

The following configuration commands are available

help: show the different command modules
<module> help: show the commands for module
<module> <command> help: show info for the command


config show [identifier]: Show the currently set values. If no identifier is
                          given, the current location is used. If a config
                          option is a list or a map, the value is not
                          shown directly, but must be requested separately.
config go [identifier]:   Go to the given location within the configuration.
config set [identifier] <value>: Set a configuration value.
config unset [identifier]: Remove a value (reverts to default if the option
                           is mandatory).
config add [identifier] <value>: add a value to a list
config remove [identifier] <value>: remove a value from a list 
config revert:	Revert all changes that have not been committed
config commit: Commit all changes
112
config diff: Show the changes that have not been committed yet
113 114 115

EXAMPLE SESSION

116
~> bindctl
117
["login success "] login as root
Jelte Jansen's avatar
Jelte Jansen committed
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
> help
BindCtl, verstion 0.1
usage: <module name> <command name> [param1 = value1 [, param2 = value2]]
Type Tab character to get the hint of module/command/paramters.
Type "help(? h)" for help on bindctl.
Type "<module_name> help" for help on the specific module.
Type "<module_name> <command_name> help" for help on the specific command.

Available module names: 
	 help 	Get help for bindctl
	 config 	Configuration commands
	 Xfrin 	same here
	 Auth 	same here
	 Boss 	same here
> config help
Module  config 	Configuration commands 
Available commands:
	 help 	(Get help for module)
	 show 	(Show configuration)
	 add 	(Add entry to configuration list)
	 remove 	(Remove entry from configuration list)
	 set 	(Set a configuration value)
	 unset 	(Unset a configuration value)
	 diff 	(Show all local changes)
	 revert 	(Revert all local changes)
	 commit 	(Commit all local changes)
	 go 	(Go to a specific configuration part)
145
> config show
Jelte Jansen's avatar
Jelte Jansen committed
146
Xfrin/	module	
147 148
Auth/	module	
Boss/	module	
Jelte Jansen's avatar
Jelte Jansen committed
149 150
> config show Xfrin
transfers_in:	10	integer	
151 152
> config go Auth
/Auth> config show
Jelte Jansen's avatar
Jelte Jansen committed
153 154 155
database_file:	None	string	
/Auth> config set database_file /tmp/bind10_zones.db
/Auth> config commit
156
/Auth> config go /
Jelte Jansen's avatar
Jelte Jansen committed
157 158 159 160 161 162 163
> config show Auth/
database_file:	/tmp/bind10_zones.db	string	
> config diff
{}
> config set Auth/foobar
Error: missing identifier or value
> config set Auth/database_file foobar
164
> config diff
Jelte Jansen's avatar
Jelte Jansen committed
165 166
{'Auth': {'database_file': 'foobar'}}
> config revert
167 168 169
> config diff
{}
> quit