mirror of
https://gitlab.isc.org/isc-projects/kea.git
synced 2025-12-20 00:53:34 +08:00
This change makes no difference. I am only doing this to test my pre-receive hook in a trac branch.
253 lines
7.5 KiB
Plaintext
253 lines
7.5 KiB
Plaintext
This is the source for the development version of BIND 10.
|
|
|
|
BIND is the popular implementation of a DNS server, developer
|
|
interfaces, and DNS tools. BIND 10 is a rewrite of BIND 9. BIND 10
|
|
is written in C++ and Python and provides a modular environment
|
|
for serving, maintaining, and developing DNS.
|
|
|
|
BIND10-devel is new development leading up to the production
|
|
BIND 10 release. It contains prototype code and experimental
|
|
interfaces. Nevertheless it is ready to use now for testing the
|
|
new BIND 10 infrastructure ideas. The Year 2 milestones of the
|
|
five year plan are described here:
|
|
|
|
https://bind10.isc.org/wiki/Year2Milestones
|
|
|
|
This release includes the bind10 master process, b10-msgq message
|
|
bus, b10-auth authoritative DNS server (with SQLite3 and in-memory
|
|
backends), b10-resolver recursive or forwarding DNS server, b10-cmdctl
|
|
remote control daemon, b10-cfgmgr configuration manager, b10-xfrin
|
|
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.
|
|
|
|
Documentation is included and also available via the BIND 10
|
|
website at http://bind10.isc.org/
|
|
|
|
The latest released source may be downloaded from:
|
|
|
|
ftp://ftp.isc.org/isc/bind10/
|
|
|
|
Users and developers are encouraged to participate on the BIND 10
|
|
mailing lists:
|
|
|
|
https://lists.isc.org/mailman/listinfo/bind10-users
|
|
https://lists.isc.org/mailman/listinfo/bind10-dev
|
|
|
|
Bugs may be reported as tickets via the developers website:
|
|
|
|
http://bind10.isc.org/
|
|
|
|
BUILDING
|
|
|
|
See the Guide for detailed installation directions at
|
|
doc/guide/bind10-guide.html.
|
|
|
|
Simple build instructions:
|
|
|
|
./configure
|
|
make
|
|
|
|
If building from Git repository, run:
|
|
|
|
autoreconf --install
|
|
|
|
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,
|
|
e.g.,
|
|
% ./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
|
|
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
|
|
|
|
INSTALLATION
|
|
|
|
Install with:
|
|
|
|
make install
|
|
|
|
TESTS
|
|
|
|
The tests use the googletests framework for C++. It is available
|
|
from http://code.google.com/p/googletest/. To enable the tests,
|
|
configure BIND 10 with:
|
|
|
|
./configure --with-gtest
|
|
|
|
Then run "make check" to run these tests.
|
|
|
|
TEST COVERAGE
|
|
|
|
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 http://ltp.sourceforge.net/. To generate the HTML report,
|
|
first configure BIND 10 with:
|
|
|
|
./configure --with-lcov
|
|
|
|
The code coverage report for the Python tests uses coverage.py (aka
|
|
pycoverage). It is available from http://nedbatchelder.com/code/coverage/.
|
|
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
|
|
tests.
|
|
|
|
make report-coverage
|
|
Generates the coverage reports in HTML for C++ and Python.
|
|
|
|
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/.
|
|
|
|
DEVELOPERS
|
|
|
|
The generated run_*.sh scripts available in the src/bin directories
|
|
are for running the code using the source tree.
|
|
|
|
RUNNING
|
|
|
|
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:
|
|
|
|
/usr/local/sbin/bind10
|
|
|
|
For development work, you can also run the bind10 services from the
|
|
source tree:
|
|
|
|
./src/bin/bind10/run_bind10.sh
|
|
|
|
(Which will use the modules and configurations also from the source
|
|
tree.)
|
|
|
|
CONFIGURATION
|
|
|
|
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
|
|
|
|
|
|
EXAMPLE SESSION
|
|
|
|
~> 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
|