DNS (Domain Name System)/BIND (Berkeley Internet Name
Domain) is most widely used DNS Server. DNS is a client server protocol that
provides Domain name resolution to its associate IP address and IP address to
Domain name. Its available in CentOS7 base repository.
This article describes How To Configure DNS (BIND)
Server on CentOS7.
Step 1. Package Installation:
Run the following command to install bind package:
[root@master-dns ~]# yum install bind bind-utils
Loaded plugins:
fastestmirror
………………………..
Installed:
bind.x86_64 32:9.11.4-26.P2.el7_9.5
bind-utils.x86_64 32:9.11.4-26.P2.el7_9.5
Dependency Installed:
audit-libs-python.x86_64 0:2.8.5-4.el7 bind-libs.x86_64
32:9.11.4-26.P2.el7_9.5 ………………………..
Complete!
[root@master-dns ~]#
|
Step 2. DNS Server
Configuration: Run the following
command and replace the below parameter under “options” directive to run the service on local network and allow
client queries:
[root@master-dns ~]# vi /etc/named.conf
//
// named.conf
……………………….
options {
listen-on
port 53 { 127.0.0.1; 192.168.1.103; };
………………………..
allow-query { localhost; 192.168.1.0/24; };
………………………..
[root@master-dns ~]#
|
Step 3. Zones Configuration: Run
the following command and add/append the below lines outside of the “options” directive for DNS zones
configuration:
Add the below parameters to include
zone configuration file in bind configuration. Allow-update should be none as
this is the primary DNS server:
[root@master-dns ~]# vi /etc/named.conf
……………………….
zone "linuxcnf.com" IN {
type master;
file "/etc/named/linuxcnf.forward";
allow-update { none; };
};
zone
"1.168.192.in-addr.arpa" IN {
type master;
file "/etc/named/linuxcnf.reverse";
allow-update { none; };
};
………………………..
[root@master-dns ~]#
|
b)
Run the following command and
add the below configuration to create DNS forward zone:
[root@master-dns ~]# vi /etc/named/linuxcnf.forward
@
IN SOA master-dns.linuxcnf.com.
root.linuxcnf.com. (
5001 ;Serial
5H ;Refresh
30M ;Retry
1W ;Expire
3H ;Minimum TTL
)
@ IN
NS master-dns.linuxcnf.com.
master-dns IN A
192.168.1.103
[root@master-dns ~]#
|
c)
Run the following command and
add the below configuration to create DNS reverse zone:
[root@master-dns ~]# vi /etc/named/linuxcnf.reverse
$TTL 1h
@ IN
SOA
1.168.192.in-addr.arpa
root.linuxcnf.com. (
5001 ; Serial
5H ; Refresh
30M ; Retry
1W ; Expire
3H ; Minimum TTL
)
@ IN
NS master-dns
master-dns IN
A 192.168.1.103
103 IN
PTR master-dns
[root@master-dns ~]#
|
Step 4. Starting DNS Service:
Run the below command to start DNS service and enable for auto start:
[root@master-dns ~]# systemctl enable --now named
Created symlink from
/etc/systemd/system/multi-user.target.wants/named.service to
/usr/lib/systemd/system/named.service.
[root@master-dns ~]#
|
[root@master-dns ~]# systemctl status named
● named.service - Berkeley Internet
Name Domain (DNS)
Loaded: loaded
(/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active
(running) since Sun 2021-07-18 22:09:21 IST; 8s ago
Process: 1486 ExecStart=/usr/sbin/named -u
named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 1484 ExecStartPre=/bin/bash -c if
[ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then
/usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking
of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 1489 (named)
CGroup: /system.slice/named.service
└─1489 /usr/sbin/named -u named -c
/etc/named.conf
………………………
Jul 18 22:09:22
master-dns.linuxcnf.com named[1489]: resolver priming query complete
[root@master-dns ~]#
|
Step 4. Firewall Configuration:
Run the following command to allow DNS service in firewall:
[root@master-dns ~]# firewall-cmd --permanent --add-service=dns
success
[root@master-dns ~]#
|
[root@master-dns ~]# firewall-cmd --reload
success
[root@master-dns ~]#
|
Step 5. Validate Configuration:
Add the DNS server IP address in
/etc/resolv.conf in client machine as shown below and run dig command as given
below:
[root@node1 ~]# vi /etc/resolv.conf
# Generated by
NetworkManager
nameserver 192.168.1.103
[root@node1 ~]#
|
[root@node1 ~]# dig
master-dns.linuxcnf.com
; <<>> DiG
9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>>
master-dns.linuxcnf.com
;; global options:
+cmd
;; Got answer:
;;
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5376
;; flags: qr aa rd ra; QUERY: 1,
ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0,
flags:; udp: 4096
;; QUESTION SECTION:
;master-dns.linuxcnf.com. IN
A
;; ANSWER SECTION:
master-dns.linuxcnf.com.
10800 IN A
192.168.1.103
;; AUTHORITY SECTION:
linuxcnf.com. 10800 IN
NS master-dns.linuxcnf.com.
;; Query time: 1 msec
;; SERVER: 192.168.1.103#53(192.168.1.103)
;; WHEN: Sun Jul 18
22:24:48 IST 2021
;; MSG SIZE rcvd: 82
[root@node1 ~]#
|
Done!!!
DNS configuration is done on CentOS7.
No comments:
Post a Comment