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