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