123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- 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, 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
|