Commit 337198f6 authored by Jeremy C. Reed's avatar Jeremy C. Reed
Browse files

[master] shorten README

As discussed at ISC all hands shortened README a lot.

Reduced by almost 200 lines.

Mention DHCP echo server.

Point to guide in txt format (now in repo).

Removed some redundant details that are in guide.

NOTE: This removed details about 1) gtest / make check 2) coverage
testing; 3) run_*.sh ; 4) running (already in guide); 5) bindctl
config examples.

I will make sure these are documented in guide, in the wiki,
or at least re-added to the doc/ directory. But some may not be
in this week's snapshot tarball.

I opened one ticket to handle the bindctl config examples (#1302).

This was discussed a little on jabber.
parent b0b09a77
This is the source for the development version of BIND 10.
BIND is the popular implementation of a DNS server, developer
......@@ -11,7 +12,7 @@ interfaces. Nevertheless it is ready to use now for testing the
new BIND 10 infrastructure ideas. The Year 3 goals of the five
year plan are described here:
This release includes the bind10 master process, b10-msgq message
bus, b10-auth authoritative DNS server (with SQLite3 and in-memory
......@@ -21,12 +22,15 @@ AXFR inbound service, b10-xfrout outgoing AXFR service, b10-zonemgr
secondary manager, b10-stats statistics collection and reporting
daemon, b10-stats-httpd for HTTP access to XML-formatted stats,
b10-host DNS lookup utility, and a new libdns++ library for C++
with a python wrapper.
with a python wrapper. BIND 10 also provides an experimental DHCPv6
echo server, b10-dhcp6.
Documentation is included and also available via the BIND 10
website at
Documentation is included with the source. See doc/guide/bind10-guide.txt
(or bind10-guide.html) for installation instructions. The
documentation is also available via the BIND 10 website at
The latest released source may be downloaded from:
The latest released source tar file may be downloaded from:
......@@ -40,15 +44,11 @@ Bugs may be reported as tickets via the developers website:
See the Guide for detailed installation directions at
Simple build instructions:
Simple build and installation instructions:
make install
If building from Git repository, run:
......@@ -56,197 +56,11 @@ If building from Git repository, run:
before running ./configure
Requires autoconf 2.59 or newer.
Use automake-1.11 or better for working Python 3.1 tests.
Alternatively, you could manually specify an absolute path to python
executable by the --with-pythonpath option of the configure script,
% ./configure --with-pythonpath=/usr/local/bin/python3.1
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
- 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
Install with:
make install
The tests use the googletests framework for C++. It is available
from To enable the tests,
configure BIND 10 with:
./configure --with-gtest
Then run "make check" to run these tests.
Code coverage reports may be generated using make. These are
based on running on the unit tests. The resulting reports are placed
in coverage-cpp-html and coverage-python-html directories for C++
and Python, respectively.
The code coverage report for the C++ tests uses LCOV. It is available
from To generate the HTML report,
first configure BIND 10 with:
./configure --with-lcov
The code coverage report for the Python tests uses (aka
pycoverage). It is available from
To generate the HTML report, first configure BIND 10 with:
./configure --with-pycoverage
Doing code coverage tests:
make coverage
Does the clean, perform, and report targets for C++ and Python.
make clean-coverage
Zeroes the code coverage counters and removes the HTML reports
for C++ and Python.
make perform-coverage
Runs the C++ (using the googletests framework) and Python
See the Guide for detailed installation directions at
make report-coverage
Generates the coverage reports in HTML for C++ and Python.
For operating system specific tips see the wiki at:
make clean-cpp-coverage
Zeroes the code coverage counters and removes the HTML report
for the C++ tests.
make clean-python-coverage
Zeroes the code coverage counters and removes the HTML report
for the Python tests.
make report-cpp-coverage
Generates the coverage report in HTML for C++, excluding
some unrelated headers. The HTML reports are placed in a
directory called coverage-cpp-html/.
make report-python-coverage
Generates the coverage report in HTML for Python. The HTML
reports are placed in a directory called coverage-python-html/.
The generated run_*.sh scripts available in the src/bin directories
are for running the code using the source tree.
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:
For development work, you can also run the bind10 services from the
source tree:
(Which will use the modules and configurations also from the source
Commands can be given through the bindctl tool.
The server must be running for bindctl to work.
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
config diff: Show the changes that have not been committed yet
~> bindctl
["login success "] login as root
> 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)
> config show
Xfrin/ module
Auth/ module
Boss/ module
> config show Xfrin
transfers_in: 10 integer
> config go Auth
/Auth> config show
database_file: None string
/Auth> config set database_file /tmp/bind10_zones.db
/Auth> config commit
/Auth> config go /
> 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
> config diff
{'Auth': {'database_file': 'foobar'}}
> config revert
> config diff
> quit
Please see the wiki and the doc/ directory for various documentation.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment