userguide.xml 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
  4. <!ENTITY mdash "&#x2014;" >
  5. ]>
  6. <book>
  7. <bookinfo>
  8. <title>BIND 10 User Guide</title>
  9. <subtitle>Administrator Reference for BIND 10</subtitle>
  10. <copyright>
  11. <year>2010</year><holder>Internet Systems Consortium, Inc.</holder>
  12. </copyright>
  13. <!-- <abstract><para>This is the definitive reference and user's guide for BIND 10</para></abstract> -->
  14. </bookinfo>
  15. <chapter id="intro">
  16. <title>Introduction</title>
  17. <para>
  18. BIND is the popular implementation of a DNS server, developer
  19. interfaces, and DNS tools.
  20. BIND 10 is a rewrite, using C++ and Python, to provide
  21. modular components for serving and maintaining DNS.
  22. </para>
  23. <note><para>BIND 10, at this time, does not provide an recursive
  24. DNS server. It does provide a EDNS0- and DNSSEC-capable
  25. authoritative DNS server.</para></note>
  26. <para>
  27. BIND 10 provides separate executables for different tasks.
  28. The standard components include:
  29. <itemizedlist>
  30. <listitem>
  31. <simpara><command>msgq</command> &mdash; message bus</simpara>
  32. </listitem>
  33. <listitem>
  34. <simpara><command>b10-auth</command> &mdash; authoritative DNS server</simpara>
  35. </listitem>
  36. <listitem>
  37. <simpara><command>b10-cfgmgr</command> &mdash; configuration daemon</simpara>
  38. </listitem>
  39. <listitem>
  40. <simpara><command>b10-cmdctl</command> <!-- TODO --></simpara>
  41. </listitem>
  42. </itemizedlist>
  43. </para>
  44. <para>
  45. The user tools include:
  46. <itemizedlist>
  47. <listitem>
  48. <simpara><command>bindctl</command> &mdash; interactive administration interface</simpara>
  49. </listitem>
  50. <listitem>
  51. <simpara><command>bind10</command> &mdash; master process for BIND 10</simpara>
  52. </listitem>
  53. </itemizedlist>
  54. </para>
  55. <para>
  56. The tools and modules are covered in full detail in this users guide.
  57. <!-- TODO point to these -->
  58. In addition, manual pages are also provided in the default installation.
  59. </para>
  60. <!--
  61. bin/
  62. bindctl*
  63. host*
  64. lib/
  65. libauth
  66. libdns
  67. libexceptions
  68. python3.1/site-packages/isc/{cc,config}
  69. sbin/
  70. bind10
  71. share/
  72. share/bind10/ <
  73. auth.spec
  74. b10-cmdctl.pem
  75. bob.spec
  76. passwd.csv
  77. man/
  78. var/
  79. bind10/b10-config.db
  80. -->
  81. <para>
  82. BIND 10 also provides libraries and programmer interfaces
  83. for C++ and Python for the message bus, configuration backend,
  84. and, of course, DNS. These include detailed developer
  85. documentation and code examples.
  86. <!-- TODO point to this -->
  87. </para>
  88. </chapter>
  89. <chapter id="quickstart">
  90. <title>Quickstart</title>
  91. <para>
  92. This chapter just covers the standard steps for installing
  93. and deploying BIND 10 as an authoritative nameserver using
  94. its defaults. For full customizations and details, see
  95. the respective chapters.
  96. </para>
  97. </chapter>
  98. <chapter id="install">
  99. <title>Installation</title>
  100. <para>
  101. BIND 10 is open source software written in C++ and Python.
  102. It is freely available in source code form from ISC via
  103. the Subversion code revision control system or as a downloadable
  104. tar file. It may also be available in pre-compiled ready-to-use
  105. packages from operating system vendors.
  106. </para>
  107. <sect1>
  108. <title>Download Tar File</title>
  109. <para>The BIND 10 release and development snapshots
  110. are available as tarball downloads.
  111. </para>
  112. <!-- TODO -->
  113. </sect1>
  114. <sect1>
  115. <title>Retrieve from Subversion</title>
  116. <para>
  117. The latest development code, including temporary experiments
  118. and un-reviewed code, is available via the BIND 10 code revision
  119. control system. This is powered by Subversion and all the BIND 10
  120. development is public.
  121. The leading development is done in the <quote>trunk</quote>
  122. and the first year prototype containing reviewed code is in
  123. <filename>branches/Y1</filename>.
  124. </para>
  125. <para>
  126. The code can be checked out from <filename>svn://bind10.isc.org/svn/bind10</filename>; for example to check out the trunk:
  127. <screen>$ <userinput>svn co svn://bind10.isc.org/svn/bind10/trunk</userinput></screen>
  128. </para>
  129. <sect2>
  130. <title>Generate configuration files</title>
  131. <para>
  132. When checking out the code from
  133. the code version control system, it doesn't include the
  134. generated configure script, Makefile.in files, nor the
  135. related configure files.
  136. They can be created by running <command>autoreconf</command>
  137. with the <command>--install</command> switch.
  138. This will run <command>autoconf</command>, <command>aclocal</command>,
  139. <command>libtoolize</command>, <command>autoheader</command>,
  140. <command>automake</command>, and related commands &mdash;
  141. and provide needed build files.
  142. </para>
  143. <para>
  144. This requires <command>autoconf</command> version 2.59 or newer
  145. and <command>automake</command> version 1.11 or better (for
  146. working Python 3.1 tests).
  147. </para>
  148. </sect2>
  149. </sect1>
  150. <sect1>
  151. <title>Dependencies</title>
  152. <para>
  153. BIND 10 requires Python 3.1, SQLite 3.3.9 or newer,
  154. and the Python _sqlite3.so module.
  155. <!-- TODO: this will change ... -->
  156. Building BIND 10 also requires a C++ compiler and
  157. standard development headers.
  158. </para>
  159. </sect1>
  160. <sect1>
  161. <title>Supported Platforms</title>
  162. <para>
  163. BIND 10 builds have been tested on Debian GNU/Linux 5,
  164. NetBSD 5, Solaris 10, and FreeBSD 7. It has been tested on
  165. Sparc, i386, and amd64 hardware platforms.
  166. It is planned for BIND 10 to build, install and run on
  167. Windows and standard Unix-type platforms.
  168. </para>
  169. </sect1>
  170. <sect1>
  171. <title>Build and install</title>
  172. <para>
  173. BIND 10 uses the GNU Build System to discover build environment
  174. details.
  175. To generate the makefiles using the defaults, simply run:
  176. <screen>$ <userinput>./configure</userinput></screen>
  177. </para>
  178. <para>
  179. Run <command>./configure</command> with the <command>--help</command>
  180. switch to view the different options. The commonly-used option
  181. is <command>--prefix</command> to define the installation
  182. location (the default is <filename>/usr/local/</filename>).
  183. <!-- TODO: gtest, lcov -->
  184. </para>
  185. <para>
  186. Then to build the executables from the C++ code, run:
  187. <screen>$ <userinput>make</userinput></screen>
  188. </para>
  189. <para>
  190. To install the BIND 10 executables, support files,
  191. and documentation, run:
  192. <screen>$ <userinput>make install</userinput></screen>
  193. </para>
  194. <note><para>The install step may require superuser
  195. privileges.</para></note>
  196. <!-- TODO: tests -->
  197. </sect1>
  198. <sect1>
  199. <title>Install Hierarchy</title>
  200. <para>
  201. The following is the layout of the complete BIND 10 installation:
  202. <itemizedlist>
  203. <listitem>
  204. <simpara><filename>bin/</filename> &mdash; general tools and
  205. diagnostic clients</simpara>
  206. </listitem>
  207. <listitem>
  208. <simpara><filename>lib/</filename> &mdash; libraries and
  209. python modules</simpara>
  210. </listitem>
  211. <listitem>
  212. <simpara><filename>libexec/bind10/</filename> &mdash; executables that
  213. a user wouldn't normally run directly. Nor would they be used
  214. independently. These are the BIND 10 modules.
  215. </simpara>
  216. </listitem>
  217. <listitem>
  218. <simpara><filename>sbin/</filename> &mdash; commands used by
  219. the system administrator
  220. </simpara>
  221. </listitem>
  222. <listitem>
  223. <simpara><filename>share/bind10/</filename> &mdash; configuration
  224. specifications
  225. </simpara>
  226. </listitem>
  227. <listitem>
  228. <simpara><filename>share/man/</filename> &mdash; manual pages (online
  229. documentation)
  230. </simpara>
  231. </listitem>
  232. <listitem>
  233. <simpara><filename>var/bind10/</filename> &mdash; configuration database
  234. </simpara>
  235. </listitem>
  236. </itemizedlist>
  237. </para>
  238. </sect1>
  239. <sect1>
  240. <title>Starting BIND 10</title>
  241. <para>
  242. BIND 10 provides the <command>bind10</command> command which
  243. starts up the required daemons to provide the message
  244. communication bus, configurations, <!-- TODO: security, -->
  245. and the DNS server(s).
  246. Also known as BoB or the Boss of BIND, <command>bind10</command>
  247. will also restart processes that exit.
  248. </para>
  249. <para>
  250. After starting the <command>msgq</command> communications channel,
  251. <command>bind10</command> connects to it,
  252. runs the configuration manager, and reads its own configuration.
  253. Then it starts the other modules.
  254. </para>
  255. </sect1>
  256. </chapter>
  257. <chapter id="authserver">
  258. <title>Authoritative Server</title>
  259. <para>
  260. </para>
  261. <sect1>
  262. <title>Server Configurations</title>
  263. <para>
  264. </para>
  265. </sect1>
  266. <sect1>
  267. <title>Data Source Backends</title>
  268. <para>
  269. </para>
  270. </sect1>
  271. <sect1>
  272. <title>Loading Master Zones Files</title>
  273. <para>
  274. </para>
  275. </sect1>
  276. <sect1>
  277. <title>Troubleshooting</title>
  278. <para>
  279. </para>
  280. </sect1>
  281. </chapter>
  282. <!-- TODO: how to help: run unit tests, join lists, review trac tickets -->
  283. <!-- <index> <title>Index</title> </index> -->
  284. </book>