123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- 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 backend),
- 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 Subversion 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
- The code coverage report for the C++ tests uses LCOV. It is available
- from http://ltp.sourceforge.net/. To generate your own HTML report,
- first configure BIND 10 with:
-
- ./configure --with-lcov
- Doing code coverage tests:
- make coverage
- Does the following:
- make clean-coverage
- Zeroes the lcov code coverage counters and removes the coverage HTML.
- make perform-coverage
- Runs the C++ tests (using googletests framework).
- make report-coverage
- Generates the coverage HTML, excluding some unrelated headers.
- The HTML reports are placed in a directory called coverage/.
- 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.)
- The server will listen on port 5300 for DNS requests.
- 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
|