更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Ubuntu 22.04操作系统上配置主BIND DNS服务器

在Ubuntu 22.04操作系统上配置主BIND DNS服务器

更新时间:2022-12-29 09:35:24浏览次数:99+次

本文介绍在Ubuntu 22.04操作系统上配置主BIND DNS服务器的方法。BIND9(Berkeley Internet Name Domain)是一个提供名称到IP转换功能的软件包。我们将探讨如何在Ubuntu 22.04上使用BIND9设置主DNS服务器。在继续之前,请确保服务器已配置了静态IP地址。如果您的服务器使用DHCP,则必须配置静态DHCP,以确认配置DNS服务器后不会发生IP地址更改。

在Ubuntu 22.04上配置主BIND DNS服务器

1、绑定DNS服务器安装

在我们开始安装必要的软件包之前,最好确保您正在更新的Ubuntu服务器上运行:

sudo apt update -y

使用apt从Ubuntu base下载必要的软件包:

sudo apt install -y bind9 bind9utils bind9-doc dnsutils

2、绑定DNS服务器配置

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

全局DNS conf文件位于/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.    

};

注:

computingforgeks.local是区域名称。

forward.computingforgeeeks.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.putingorgeeks.local.db是反向DNS文件。

3、配置绑定DNS区域查找文件

区域查找文件保存正向和反向区域的DNS记录。

1]、正向区域查找文件

将示例前向区域查找文件复制到/etc/bind目录下名为forward.computingorgeeks.local.db的文件中:

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

注意区域文件语法,域名应以点(.)结尾。

文件中的首字母缩略词有以下描述:

SOA–授权开始。

NS–名称服务器。

A–记录。

MX–Mail for Exchange。

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.computingorgeeks.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.

4、检查BIND DNS语法

命名的checkconf命令用于检查语法是否正确或是否有任何错误。如果没有错误,命令应该返回到shell:

sudo named-checkconf

命名的checkzone命令用于检查正向和反向区域文件的语法:

#forward zone file

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

#reverse zone file

sudo named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.computingforgeeks.local.db

输出应为:

#forward zone file

root@master:~# sudo named-checkzone computingforgeeks.local /etc/bind/forward.computingforgeeks.local.db

zone computingforgeeks.local/IN: loaded serial 2

OK

#reverse zone file

root@master:~# 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

5、更新绑定DNS记录

应在/etc/bind/forward.computingorgeeks.local.db和/etc/bind/reverse.computingorgreeks.local.mdb文件中更新DNS记录。

更新DNS记录时,将正向和反向区域文件的序列号更改为大于当前值的数字。

6、测试DNS服务器

在任何客户机上,将其DNS服务器更改为新部署的服务器。在我们的案例中,它是172.16.10.2。

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

$ sudo vim /etc/resolv.conf

nameserver 172.16.10.2

让我们使用dig命令测试DNS解析。dig命令用于获取域名信息,包括DNS服务器、域名IP、MX记录等:

root@ubuntu:~# 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 Dec 25 16:49:08 UTC 2022

;; MSG SIZE  rcvd: 100

输出提供了有关computingforgeks.lan的“A”记录的信息

要检查反向DNS:

root@ubuntu:~# 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 Dec 25 16:51:52 UTC 2022

;; MSG SIZE  rcvd: 12

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

至此,我们已经在Ubuntu 22.04 LTS上成功部署了本地DNS服务器。这对于本地网络中的系统管理员管理系统和应用程序非常有用。您可以让您的应用程序通过域名进行通信,这样就不用在IP更改时重新配置应用程序。