README 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. This is the source for the development version of BIND 10.
  2. BIND is the popular implementation of a DNS server, developer
  3. interfaces, and DNS tools. BIND 10 is a rewrite of BIND 9. BIND 10
  4. is written in C++ and Python and provides a modular environment
  5. for serving and maintaining DNS.
  6. BIND10-devel is new development leading up to the production
  7. BIND 10 release. It contains prototype code and experimental
  8. interfaces. Nevertheless it is ready to use now for testing the
  9. new BIND 10 infrastructure ideas. The Year 1 (Y1) deliverable of
  10. the five year plan is described here:
  11. http://bind10.isc.org/wiki/Year1Deliverable
  12. This release includes the bind10 master process, msgq message bus,
  13. b10-auth authoritative DNS server, b10-cmdctl remote control daemon,
  14. b10-cfgmgr configuration manager, and a new libdns library.
  15. Documentation is included and also available via the BIND 10
  16. website at http://bind10.isc.org/
  17. The latest released source may be downloaded from:
  18. ftp://ftp.isc.org/isc/bind10/
  19. Users and developers are encouraged to participate on the BIND 10
  20. mailing lists:
  21. https://lists.isc.org/mailman/listinfo/bind10-users
  22. https://lists.isc.org/mailman/listinfo/bind10-dev
  23. Bugs may be reported as tickets via the developers website:
  24. http://bind10.isc.org/
  25. See the Guide for detailed installation directions.
  26. BUILDING
  27. We recommend using the Boost libraries as it provides a safer TCP
  28. implementation in BIND 10.
  29. Simple build instructions:
  30. ./configure
  31. make
  32. If building from Subversion repo, run:
  33. autoreconf --install
  34. before running ./configure
  35. Requires autoconf 2.59 or newer.
  36. Use automake-1.11 or better for working Python 3.1 tests.
  37. Alternatively, you could manually specify an absolute path to python
  38. executable by the --with-pythonpath option of the configure script,
  39. e.g.,
  40. % ./configure --with-pythonpath=/usr/local/bin/python3.1
  41. Operating-System specific tips:
  42. - FreeBSD
  43. You may need to install a python binding for sqlite3 by hand. A
  44. sample procedure is as follows:
  45. - add the following to /etc/make.conf
  46. PYTHON_VERSION=3.1
  47. - build and install the python binding from ports, assuming the top
  48. directory of the ports system is /usr/ports
  49. % cd /usr/ports/databases/py-sqlite3/
  50. % make
  51. % sudo make install
  52. INSTALLATION
  53. Install with:
  54. make install
  55. TEST COVERAGE
  56. Doing code coverage tests:
  57. make coverage
  58. Does the following:
  59. make clean-coverage
  60. Zeroes the lcov code coverage counters and removes the coverage HTML.
  61. make perform-coverage
  62. Runs the C++ tests (using googletests framework).
  63. make report-coverage
  64. Generates the coverage HTML, excluding some unrelated headers.
  65. The HTML reports are placed in a directory called coverage/.
  66. DEVELOPERS
  67. The generated run_*.sh scripts available in the src/bin directories
  68. are for running the code using the source tree.
  69. RUNNING
  70. You can start the BIND 10 processes by running bind10 which is
  71. installed to the sbin directory under the installation prefix.
  72. The default location is:
  73. /usr/local/sbin/bind10
  74. For development work, you can also run the bind10 services from the
  75. source tree:
  76. ./src/bin/bind10/run_bind10.sh
  77. (Which will use the modules and configurations also from the source
  78. tree.)
  79. The server will listen on port 5300 for DNS requests.
  80. CONFIGURATION
  81. Commands can be given through the bindctl tool.
  82. The server must be running for bindctl to work.
  83. The following configuration commands are available
  84. help: show the different command modules
  85. <module> help: show the commands for module
  86. <module> <command> help: show info for the command
  87. config show [identifier]: Show the currently set values. If no identifier is
  88. given, the current location is used. If a config
  89. option is a list or a map, the value is not
  90. shown directly, but must be requested separately.
  91. config go [identifier]: Go to the given location within the configuration.
  92. config set [identifier] <value>: Set a configuration value.
  93. config unset [identifier]: Remove a value (reverts to default if the option
  94. is mandatory).
  95. config add [identifier] <value>: add a value to a list
  96. config remove [identifier] <value>: remove a value from a list
  97. config revert: Revert all changes that have not been committed
  98. config commit: Commit all changes
  99. config diff: Show the changes that have not been committed yet
  100. EXAMPLE SESSION
  101. ~> bindctl
  102. ["login success "] login as root
  103. > help
  104. BindCtl, verstion 0.1
  105. usage: <module name> <command name> [param1 = value1 [, param2 = value2]]
  106. Type Tab character to get the hint of module/command/paramters.
  107. Type "help(? h)" for help on bindctl.
  108. Type "<module_name> help" for help on the specific module.
  109. Type "<module_name> <command_name> help" for help on the specific command.
  110. Available module names:
  111. help Get help for bindctl
  112. config Configuration commands
  113. Xfrin same here
  114. Auth same here
  115. Boss same here
  116. > config help
  117. Module config Configuration commands
  118. Available commands:
  119. help (Get help for module)
  120. show (Show configuration)
  121. add (Add entry to configuration list)
  122. remove (Remove entry from configuration list)
  123. set (Set a configuration value)
  124. unset (Unset a configuration value)
  125. diff (Show all local changes)
  126. revert (Revert all local changes)
  127. commit (Commit all local changes)
  128. go (Go to a specific configuration part)
  129. > config show
  130. Xfrin/ module
  131. Auth/ module
  132. Boss/ module
  133. > config show Xfrin
  134. transfers_in: 10 integer
  135. > config go Auth
  136. /Auth> config show
  137. database_file: None string
  138. /Auth> config set database_file /tmp/bind10_zones.db
  139. /Auth> config commit
  140. /Auth> config go /
  141. > config show Auth/
  142. database_file: /tmp/bind10_zones.db string
  143. > config diff
  144. {}
  145. > config set Auth/foobar
  146. Error: missing identifier or value
  147. > config set Auth/database_file foobar
  148. > config diff
  149. {'Auth': {'database_file': 'foobar'}}
  150. > config revert
  151. > config diff
  152. {}
  153. > quit