Install Bind Server On Centos 7
Description:
Follow these steps to configure a Centos7 box as a DNS server.
Make sure not to overlook the periods .
at the end of your host names!
To Resolve:
-
Open up a terminal and type:
sudo yum install bind bind-utils
. Bind is now installed and it process is known asnamed
-
First we add our trusted hosts:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
sudo vi /etc/named.conf # Edit the options block options { ... allow-transfer { 10.128.20.12; }; # disable zone transfers by default. The IP here is the IP of your server. ... allow-query { trusted; }; # allows queries from "trusted" clients ... # Add: acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2 }; # Add at the end of the file: include "/etc/named/named.conf.local"; # Save and exit
-
Now we will specify our forward/reverse zones in the following file (should be empty) : sudo vi /etc/named/named.conf.local
1 2 3 4 5 6 7 8 9 10 11
# Add your forward zone zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path }; # Add your reverse zone. Note that my IP is 10.128.0.x, you would simply reverse the first two octets as 128.10. If your servers span multiple subnets, create a separate entry for each. zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet }; # Save and exit
-
Now create the directory and files for the zones:
1 2
sudo chmod 755 /etc/named sudo mkdir /etc/named/zones
-
Now we edit the forward zone file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
sudo vi /etc/named/zones/db.nyc3.example.com # First, you will want to add the SOA record. Replace the highlighted ns1 FQDN with your own FQDN, then replace the second "nyc3.example.com" with your own domain. Every time you edit a zone file, you should increment the serial value before you restart the named process--we will increment it to "3". It should look something like this: $TTL 604800 @ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL # After that, add your nameserver records with the following lines (replace the names with your own). Note that the second column specifies that these are "NS" records: ; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com. # Then add the A records for your hosts that belong in this zone. This includes any server whose name we want to end with ".nyc3.example.com" (substitute the names and private IP addresses). Using our example names and private IP addresses, we will add A records for ns1, ns2, host1, and host2 like so: ; name servers - A records ns1.nyc3.example.com. IN A 10.128.10.11 ns2.nyc3.example.com. IN A 10.128.20.12 ; 10.128.0.0/16 - A records host1.nyc3.example.com. IN A 10.128.100.101 host2.nyc3.example.com. IN A 10.128.200.102 # Save and exit
-
Now we edit the reverse zone file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
sudo vi /etc/named/zones/db.10.128 # Same setup as above $TTL 604800 @ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL # Add name servers ; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com. # Add PTR records for all of your servers whose IP addresses are on the subnet of the zone file that you are editing ; PTR Records 11.10 IN PTR ns1.nyc3.example.com. ; 10.128.10.11 12.20 IN PTR ns2.nyc3.example.com. ; 10.128.20.12 101.100 IN PTR host1.nyc3.example.com. ; 10.128.100.101 102.200 IN PTR host2.nyc3.example.com. ; 10.128.200.102 # Save and exit
-
That’s it! Now we check our files using a built-in utility:
1
sudo named-checkconf
- I failed mine. I had to place
/named
in myinclude "/etc/named/named.conf.local";
statement from step 2. My brain saw /named/named and just reduced it haha.
- I failed mine. I had to place
-
Now we check our forward zone config:
1
sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com
-
Now check reverse zone config:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128 # Again I failed this check. This was the error: Jan 02 00:17:52 (truncated) bash[3940]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 Jan 02 00:17:52 (truncated) bash[3940]: zone 0.in-addr.arpa/IN: loaded serial 0 Jan 02 00:17:52 (truncated) bash[3940]: zone (truncated)/IN: loading from master file ect/named/zones/db.10.128 failed: file not found Jan 02 00:17:52 (truncated) bash[3940]: zone (truncated)/IN: not loaded due to errors. Jan 02 00:17:52 (truncated) bash[3940]: _default/(truncated)/IN: file not found Jan 02 00:17:52 (truncated) bash[3940]: zone 1628.10.in-addr.arpa/IN: loaded serial 3 Jan 02 00:17:52 (truncated) systemd[1]: named.service: control process exited, code=exited status=1 Jan 02 00:17:52 (truncated) systemd[1]: Failed to start Berkeley Internet Name Domain (DNS). Jan 02 00:17:52 (truncated) systemd[1]: Unit named.service entered failed state. Jan 02 00:17:52 (truncated) systemd[1]: named.service failed. # The fix: change "ect" to "/etc", I do this all the time! sudo vi /etc/named/named.conf.local
-
Finally, start/enable the service:
1
2
sudo systemctl start named
sudo systemctl enable named
References:
“How To Configure BIND as a Private Network DNS Server on CentOS 7”
Comments