xref: /netbsd-src/external/mpl/bind/dist/README.md (revision 9689912e6b171cbda866ec33f15ae94a04e2c02d)
1<!--
2Copyright (C) Internet Systems Consortium, Inc. ("ISC")
3
4SPDX-License-Identifier: MPL-2.0
5
6This Source Code Form is subject to the terms of the Mozilla Public
7License, v. 2.0.  If a copy of the MPL was not distributed with this
8file, you can obtain one at https://mozilla.org/MPL/2.0/.
9
10See the COPYRIGHT file distributed with this work for additional
11information regarding copyright ownership.
12-->
13# BIND 9
14
15### Contents
16
171. [Introduction](#intro)
181. [Reporting bugs and getting help](#help)
191. [Contributing to BIND](#contrib)
201. [Building BIND](#build)
211. [Automated testing](#testing)
221. [Documentation](#doc)
231. [Acknowledgments](#ack)
24
25### <a name="intro"/> Introduction
26
27BIND (Berkeley Internet Name Domain) is a complete, highly portable
28implementation of the Domain Name System (DNS) protocol.
29
30The BIND name server, `named`, can act as an authoritative name
31server, recursive resolver, DNS forwarder, or all three simultaneously. It
32implements views for split-horizon DNS, automatic DNSSEC zone signing and
33key management, catalog zones to facilitate provisioning of zone data
34throughout a name server constellation, response policy zones (RPZ) to
35protect clients from malicious data, response rate limiting (RRL) and
36recursive query limits to reduce distributed denial of service attacks,
37and many other advanced DNS features. BIND also includes a suite of
38administrative tools, including the `dig` and `delv` DNS lookup tools,
39`nsupdate` for dynamic DNS zone updates, `rndc` for remote name server
40administration, and more.
41
42BIND 9 began as a complete rewrite of the BIND architecture that was
43used in versions 4 and 8.  Internet Systems Consortium
44([https://www.isc.org](https://www.isc.org)), a 501(c)(3) US public benefit
45corporation dedicated to providing software and services in support of the
46Internet infrastructure, developed BIND 9 and is responsible for its
47ongoing maintenance and improvement. BIND is open source software
48licensed under the terms of the Mozilla Public License, version 2.0.
49
50For a detailed list of changes made throughout the history of BIND 9, see
51the [changelog](doc/arm/changelog.rst).
52
53For up-to-date versions and release notes, see
54[https://www.isc.org/download/](https://www.isc.org/download/).
55
56For information about supported platforms, see the
57["Supported Platforms"](doc/arm/platforms.rst) section in the BIND 9
58Administrator Reference Manual.
59
60### <a name="help"/> Reporting bugs and getting help
61
62To report non-security-sensitive bugs or request new features, you may
63open an issue in the BIND 9 project on the
64[ISC GitLab server](https://gitlab.isc.org) at
65[https://gitlab.isc.org/isc-projects/bind9](https://gitlab.isc.org/isc-projects/bind9).
66
67Please note that, unless you explicitly mark the newly created issue as
68"confidential," it will be publicly readable. Please do not include any
69information in bug reports that you consider to be confidential unless
70the issue has been marked as such. In particular, if submitting the
71contents of your configuration file in a non-confidential issue, it is
72advisable to obscure key secrets; this can be done automatically by
73using `named-checkconf -px`.
74
75For information about ISC's Security Vulnerability Disclosure Policy and
76information about reporting potential security issues, please see
77`SECURITY.md`.
78
79Professional support and training for BIND are available from
80ISC. Contact us at [https://www.isc.org/contact](https://www.isc.org/contact)
81for more information.
82
83To join the __BIND Users__ mailing list, or view the archives, visit
84[https://lists.isc.org/mailman/listinfo/bind-users](https://lists.isc.org/mailman/listinfo/bind-users).
85
86If you're planning on making changes to the BIND 9 source code, you
87may also want to join the __BIND Workers__ mailing list, at
88[https://lists.isc.org/mailman/listinfo/bind-workers](https://lists.isc.org/mailman/listinfo/bind-workers).
89
90### <a name="contrib"/> Contributing to BIND
91
92ISC maintains a public git repository for BIND; details can be found
93at [https://www.isc.org/sourceaccess/](https://www.isc.org/sourceaccess/).
94
95Information for BIND contributors can be found in the following files:
96- General information: [CONTRIBUTING.md](CONTRIBUTING.md)
97- Code of Conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
98- BIND 9 code style: [doc/dev/style.md](doc/dev/style.md)
99- BIND architecture and developer guide: [doc/dev/dev.md](doc/dev/dev.md)
100
101Patches for BIND may be submitted as
102[merge requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
103on the [ISC GitLab server](https://gitlab.isc.org).
104
105By default, external contributors do not have the ability to fork BIND on the
106GitLab server; if you wish to contribute code to BIND, you may request
107permission to do so. Thereafter, you can create git branches and directly
108submit requests that they be reviewed and merged.
109
110If you prefer, you may also submit code by opening a
111[GitLab issue](https://gitlab.isc.org/isc-projects/bind9/issues) and
112including your patch as an attachment, preferably generated by
113`git format-patch`.
114
115### <a name="build"/> Building BIND 9
116
117For information about building BIND 9, see the
118["Building BIND 9"](doc/arm/build.inc.rst) section in the BIND 9
119Administrator Reference Manual.
120
121### <a name="testing"/> Automated testing
122
123A system test suite can be run with `make check`. The system tests require
124you to configure a set of virtual IP addresses on your system (this allows
125multiple servers to run locally and communicate with each other). These
126IP addresses can be configured by running the command
127`bin/tests/system/ifconfig.sh up` as root.
128
129Some tests require Perl and the `Net::DNS` and/or `IO::Socket::IP` modules,
130and are skipped if these are not available. Some tests require Python
131and the `dnspython` module and are skipped if these are not available.
132See bin/tests/system/README for further details.
133
134Unit tests are implemented using the CMocka unit testing framework. To build
135them, use `configure --with-cmocka`. Execution of tests is done by the automake
136parallel test driver; unit tests are also run by `make check`.
137
138### <a name="doc"/> Documentation
139
140The *BIND 9 Administrator Reference Manual* (ARM) is included with the source
141distribution, and in .rst format, in the `doc/arm`
142directory. The HTML version is automatically generated and can
143be viewed at [https://bind9.readthedocs.io/en/latest/index.html](https://bind9.readthedocs.io/en/latest/index.html).
144
145The PDF version can be built by running:
146
147    cd doc/arm/
148    sphinx-build -b latex . pdf/
149    make -C pdf/ all-pdf
150
151The above requires TeX Live in order to work. The PDF will be written to
152`doc/arm/pdf/Bv9ARM.pdf`.
153
154Man pages for some of the programs in the BIND 9 distribution
155are also included in the BIND ARM.
156
157Frequently (and not-so-frequently) asked questions and their answers
158can be found in the ISC Knowledgebase at
159[https://kb.isc.org](https://kb.isc.org).
160
161Additional information on various subjects can be found in other
162`README` files throughout the source tree.
163
164#### Bug report identifiers
165
166Most notes in the ARM Changelog appendix include a reference to a bug report or
167issue number. Prior to 2018, these were usually of the form `[RT #NNN]`
168and referred to entries in the "bind9-bugs" RT database, which was not open
169to the public. More recent entries use the form `[GL #NNN]` or, less often,
170`[GL !NNN]`, which, respectively, refer to issues or merge requests in the
171GitLab database. Most of these are publicly readable, unless they include
172information which is confidential or security-sensitive.
173
174To look up a GitLab issue by its number, use the URL
175[https://gitlab.isc.org/isc-projects/bind9/issues/NNN](https://gitlab.isc.org/isc-projects/bind9/issues).
176To look up a merge request, use
177[https://gitlab.isc.org/isc-projects/bind9/merge_requests/NNN](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
178
179In rare cases, an issue or merge request number may be followed with the
180letter "P". This indicates that the information is in the private ISC
181GitLab instance, which is not visible to the public.
182
183### <a name="ack"/> Acknowledgments
184
185* The original development of BIND 9 was underwritten by the
186  following organizations:
187
188		Sun Microsystems, Inc.
189		Hewlett Packard
190		Compaq Computer Corporation
191		IBM
192		Process Software Corporation
193		Silicon Graphics, Inc.
194		Network Associates, Inc.
195		U.S. Defense Information Systems Agency
196		USENIX Association
197		Stichting NLnet - NLnet Foundation
198		Nominum, Inc.
199
200* This product includes software developed by the OpenSSL Project for use
201  in the OpenSSL Toolkit.
202  [https://www.OpenSSL.org/](https://www.OpenSSL.org/)
203* This product includes cryptographic software written by Eric Young
204  (eay@cryptsoft.com).
205* This product includes software written by Tim Hudson (tjh@cryptsoft.com).
206