mirror of https://github.com/tiyn/wiki
parent
8385e45763
commit
033eb4c934
@ -0,0 +1,120 @@
|
|||||||
|
# Bind
|
||||||
|
|
||||||
|
[Bind](https://www.isc.org/bind/) is an open-source software suite for
|
||||||
|
interacting with the [DNS](./dns.md).
|
||||||
|
|
||||||
|
## Server
|
||||||
|
|
||||||
|
A server can be setup via docker with the
|
||||||
|
[ventz image](./docker-images/ventz_-_bind.md).
|
||||||
|
|
||||||
|
## Setup a local DNS server with forwarding
|
||||||
|
|
||||||
|
After setting up the server.
|
||||||
|
Look into the file `/etc/bind/named.conf.options`.
|
||||||
|
Change it to something like the following lines.
|
||||||
|
Note that `192.168.178.0/24` is the subnet that is used mainly in this example.
|
||||||
|
Only queries from within it will be handled.
|
||||||
|
The forwarders `8.8.8.8` and `8.8.4.4` can be changed according to the specific
|
||||||
|
needs.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
acl "trusted" {
|
||||||
|
192.168.178.0/24;
|
||||||
|
localhost;
|
||||||
|
localnets;
|
||||||
|
};
|
||||||
|
|
||||||
|
options {
|
||||||
|
directory "/var/cache/bind";
|
||||||
|
listen-on-v6 { any; };
|
||||||
|
recursion yes; # enables resursive queries
|
||||||
|
allow-query { trusted; }; # allows recursive queries from "trusted" clients
|
||||||
|
allow-transfer { none; }; # disable zone transfers by default
|
||||||
|
|
||||||
|
forwarders {
|
||||||
|
8.8.8.8;
|
||||||
|
8.8.4.4;
|
||||||
|
};
|
||||||
|
forward only;
|
||||||
|
|
||||||
|
dnssec-enable yes;
|
||||||
|
dnssec-validation yes;
|
||||||
|
|
||||||
|
auth-nxdomain no;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
## Creating local domains
|
||||||
|
|
||||||
|
This section explains how to add local domains for local systems.
|
||||||
|
It is explicitly compatible with the
|
||||||
|
[previous section](#setup-a-local-dns-server-with-forwarding).
|
||||||
|
Locate the `named.conf.local` file in the `/etc/bind` directory.
|
||||||
|
Add the forward zone first.
|
||||||
|
Substitute `<domain>` and `<tld>` to your wishes.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
zone "<domain>.<tld>" IN {
|
||||||
|
type master;
|
||||||
|
file "/etc/bind/extra-zones/zone.<domain>.<tld>";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Then add the reverse zone.
|
||||||
|
The following lines assume the subnet is at `192.168.178.0/24`.
|
||||||
|
Note the reverse subnet address without the `.0/24` in the lines.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
zone "178.168.192.in-addr.arpa" {
|
||||||
|
type master;
|
||||||
|
file "/etc/bind/extra-zones/revp.178.168.192";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Following this create the directory `/etc/bind/extra-zones/`.
|
||||||
|
Then place the file `zone.<domain>.<tld>` inside it with the following content:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
$TTL 1D
|
||||||
|
@ IN SOA <domain>.<tld>. <thisserver>.<domain>.<tld> (
|
||||||
|
200405191 ; serial
|
||||||
|
8H ; refresh
|
||||||
|
4H ; retry
|
||||||
|
4W ; expire
|
||||||
|
1D ) ; minimum
|
||||||
|
@ NS <thisserver>
|
||||||
|
|
||||||
|
<thisserver> A <ip of thisserver>
|
||||||
|
```
|
||||||
|
|
||||||
|
To make the server you operate on the nameserver select a subdomain for it and
|
||||||
|
subsitute `<thisserver>` for it and its IP address `<ip of thisserver>`.
|
||||||
|
More [DNS records](./dns.md#records) can be added.
|
||||||
|
|
||||||
|
Then create `/etc/bind/extra-zones/revp.178.168.192` and fill it with the
|
||||||
|
following lines.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
$ORIGIN 178.168.192.in-addr.arpa.
|
||||||
|
$TTL 1D
|
||||||
|
@ IN SOA <domain>.tld <thisserver>.<domain>.<tld>. (
|
||||||
|
200405190 ; serial
|
||||||
|
28800 ; refresh
|
||||||
|
14400 ; retry
|
||||||
|
2419200 ; expire
|
||||||
|
86400 ; minimum
|
||||||
|
)
|
||||||
|
NS <thisserver>.<domain>.<tld>.
|
||||||
|
|
||||||
|
15 PTR <thisserver>.<domain>.<tld>.
|
||||||
|
```
|
||||||
|
|
||||||
|
Additionally add all domain names in front of the first `)` that have been
|
||||||
|
added in the `zone.<domain>.<tld>` file as an [A record](./dns.md#a-record).
|
||||||
|
Note that all these have to be followed by a `.` just like
|
||||||
|
`<thisserver>.<domain>.<tld>.` is.
|
||||||
|
For all these records add a PTR record too.
|
||||||
|
The first part of the PTR line indicated the IP address.
|
||||||
|
To get the full address add it to the subnet.
|
||||||
|
In this case this server has the IP `192.168.178.15`.
|
Loading…
Reference in new issue