在Ubuntu 20.04上配置Master BIND DNS服务器

为了使Internet提供对全球资源的即时访问(例如,将计算机和站点链接到唯一的域名),我们需要可以帮助提供此服务的服务。 DNS(域名系统)将人类可读的域名(例如www.computingforgeeks.com)转换为计算机可读的IP地址,反之亦然。

BIND9(伯克利Internet名称域)是一个将名称转换为IP功能的程序包。

让我们看看如何在Ubuntu 20.04上使用BIND 9设置主DNS服务器。在继续之前,请确保服务器已配置了静态IP地址。如果服务器使用DHCP,则需要配置静态DHCP,以确保配置DNS服务器后IP地址不会更改。

在Ubuntu 20.04上绑定DNS服务器安装

在开始安装所需的软件包之前,最好先确保您正在更新的Ubuntu服务器上运行。

sudo apt update -y

用于从Ubuntu基础下载所需的软件包 apt:

sudo apt install -y bind9 bind9utils bind9-doc dnsutils

Ubuntu 20.04上的DNS服务器配置

DNS的主要配置目录是 /etc/bind. 它包含区域查找文件和其他配置文件。

全局DNSconf文件位于: /etc/bind/named.conf..但是,这不适用于本地DNS配置。 /etc/bind/named.conf.local 将代替使用。

创建区域

我们这样做 /etc/bind/named.conf.local 文件。使用您选择的文本编辑器编辑文件。

在文件中创建正向和反向区域。以下是正向区域条目。 Computingforgeeks.local 域。更改为配置中的域名。

zone "computingforgeeks.local" IN { // Domain name
    
      type master; // Primary DNS

     file "/etc/bind/forward.computingforgeeks.local.db"; // Forward lookup file

     allow-update { none; }; // Since this is the primary DNS, it should be none.
     
    
};

哪里:

  • Computingforgeeks.local 区域名称。
  • forward.computingforgeeks.local.db 前向参考区域的名称。

将以下内容添加到 /etc/bind/named.conf.local 对于反向区域

zone "10.16.172.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order

     type master; // Primary DNS

     file "/etc/bind/reverse.computingforgeeks.local.db"; //Reverse lookup file

     allow-update { none; }; //Since this is the primary DNS, it should be none.

    

};
  • 10.16.172.in-addr.arpa os反向DNS区域名称。 (网络是 172.16.10.0, 名称反转如下 10.16.172
  • reverse.computingforgeeks.local.db 这是一个反向DNS文件。

在Ubuntu 20.04上配置绑定DNS区域查找文件

区域查找文件包含正向和反向区域的DNS记录。

  1. 正向区域查找文件

将样本正向区域查找文件复制到名为f的文件中orward.computingforgeeks.local.db/etc/bind 目录:

sudo cp /etc/bind/db.local /etc/bind/forward.computingforgeeks.local.db

注意区域文件的语法。域名必须以点号(。)结尾。

该文件的首字母缩写具有以下描述:

  • SOA –启动权限
  • NS –名称服务器
  • 一种 – 记录
  • MX –替换电子邮件
  • CN –常规名称

您需要编辑区域文件并更新内容,如下所示:根据域名更改。

sudo vi /etc/bind/forward.computingforgeeks.local.db
$TTL    604800
@       IN      SOA     ns1.computingforgeeks.local. root.ns1.computingforgeeks.local. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
;@      IN      NS      localhost.
;@      IN      A       127.0.0.1
;@      IN      AAAA    ::1

;Name Server Information

@        IN      NS      ns1.computingforgeeks.local.

;IP address of Name Server

ns1     IN      A       172.16.10.2

;Mail Exchanger

computingforgeeks.local.   IN     MX   10   mail.computingforgeeks.local.

;A – Record HostName To Ip Address

www     IN       A      172.16.10.3
mail    IN       A      172.16.10.4

;CNAME record

ftp     IN      CNAME   www.computingforgeeks.local.

2.反向区域查找文件

revese区域文件的首字母缩写为:

  • PTR -指针
  • SOA –启动权限

将样本反向区域文件复制到 etc/bind 在一个名为 reverse.computingforgeeks.local.db..

sudo cp /etc/bind/db.127 /etc/bind/reverse.computingforgeeks.local.db

编辑您域的文件内容。

sudo nano /etc/bind/reverse.computingforgeeks.local.db
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     computingforgeeks.local. root.computingforgeeks.local. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

;Name Server Information

@       IN      NS     ns1.computingforgeeks.local.
ns1     IN      A       172.16.10.2
;Reverse lookup for Name Server

2      IN      PTR    ns1.computingforgeeks.local.

;PTR Record IP address to HostName

3     IN      PTR    www.computingforgeeks.local.
4     IN      PTR    mail.computingforgeeks.local.

在Ubuntu 20.04上检查BIND DNS语法

该· named-checkconf 该命令用于检查是否存在语法问题或错误。如果没有错误,命令应该返回到shell

sudo named-checkconf

named-checkzone命令用于检查正向和反向区域文件的语法。

#forward zone file
sudo named-checkzone computingforgeeks.local /etc/bind/forward.computingforgeeks.local.db


#reverse zone file
named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.computingforgeeks.local.db

输出如下所示:

#forward zone file
[email protected]:~# sudo named-checkzone computingforgeeks.local /etc/bind/forward.computingforgeeks.local.db
zone computingforgeeks.local/IN: loaded serial 2
OK



#reverse zone file
[email protected]:~# named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.computingforgeeks.local.db 
zone 10.16.172.in-addr.arpa/IN: loaded serial 1
OK

最后,重新启动BIND服务以使其生效。

sudo systemctl restart bind9
sudo systemctl enable bind9

更新绑定DNS记录

DNS记录都需要更新 /etc/bind/forward.computingforgeeks.local.db/etc/bind/reverse.computingforgeeks.local.db 文件。

更新DNS记录时,请将正向区域文件和反向区域文件的序列号都更改为比现在更高的数字。

DNS服务器测试

在任何客户端计算机上,将DNS服务器更改为新部署的服务器。在我们的例子中是172.16.10.2。

DNS服务器设置因操作系统而异。 对于Ubuntu:

sudo echo "nameserver 172.16.10.2" >> /etc/resolv.conf

让我们使用以下方法测试DNS解析 dig 命令。 dig命令用于获取有关域名的信息。这包括DNS服务器,域IP,MX记录等。

[email protected]:~# dig www.computingforgeeks.local 

; <<>> DiG 9.16.1-Ubuntu <<>> www.computingforgeeks.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65241
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: fabd20125b9ccbff010000005f8c7204e1387a993d58c22f (good)
;; QUESTION SECTION:
;www.computingforgeeks.local.	IN	A

;; ANSWER SECTION:
www.computingforgeeks.local. 604800 IN	A	172.16.10.3

;; Query time: 4 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Sun Oct 18 16:49:08 UTC 2020
;; MSG SIZE  rcvd: 100

输出包含有关computingforgeeks.lan中“ A”记录的信息。

要检查反向DNS:

[email protected]:~# dig -x 172.16.10.3

; <<>> DiG 9.16.1-Ubuntu <<>> -x 172.16.10.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62529
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 7b8c9b8971f74afc010000005f8c72a8bdc5ebbdb4869578 (good)
;; QUESTION SECTION:
;3.10.16.172.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
3.10.16.172.in-addr.arpa. 604800 IN	PTR	www.computingforgeeks.local.

;; Query time: 0 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Sun Oct 18 16:51:52 UTC 2020
;; MSG SIZE  rcvd: 122

这是正向和反向区域查找均正常工作的有效证据。

结论

您已在Ubuntu 20.04 LTS上成功部署了本地DNS服务器。这可以帮助本地网络上的系统管理员管理系统和应用程序。可以通过域名来传达应用程序。这样就无需在IP更改时重新配置应用程序。

对于从属服务器配置,请检查:

如何在Ubuntu上配置从属BIND DNS服务器

还有其他文章探讨了如何设置从属DNS服务器。如果您有任何挑战或建议,请随时与我们联系。

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

在CentOS 8 / RHEL 8上配置主/从BIND DNS服务器

如何在Windows Server上添加DNSA / PTR记录

如何将DNS反向查找区域添加到Windows Server

Sidebar