|
@@ -1,3 +1,4 @@
|
|
|
+
|
|
|
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:
|
|
|
|
|
|
- http://bind10.isc.org/wiki/Year3Goals
|
|
|
+ http://bind10.isc.org/wiki/Year3Goals
|
|
|
|
|
|
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 http://bind10.isc.org/
|
|
|
+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
|
|
|
+http://bind10.isc.org/
|
|
|
|
|
|
-The latest released source may be downloaded from:
|
|
|
+The latest released source tar file may be downloaded from:
|
|
|
|
|
|
ftp://ftp.isc.org/isc/bind10/
|
|
|
|
|
@@ -40,15 +44,11 @@ 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:
|
|
|
+Simple build and installation instructions:
|
|
|
|
|
|
./configure
|
|
|
make
|
|
|
+ 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,
|
|
|
-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.
|
|
|
+See the Guide for detailed installation directions at
|
|
|
+doc/guide/bind10-guide.txt.
|
|
|
|
|
|
- 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.
|
|
|
+ http://bind10.isc.org/wiki/SystemSpecificNotes
|
|
|
|
|
|
- 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
|
|
|
+Please see the wiki and the doc/ directory for various documentation.
|