在 Ubuntu 16.04 LTS 中安装和配置 DNS 服务器

本综合教程介绍了如何在 Ubuntu 16.04 LTS 64 位服务器版中安装和配置 DNS 服务器。 你可能已经知道, 域名系统 是的缩写形式 DnAME s系统,用于将主机名解析为 IP 地址,反之亦然。 出于本指南的目的,我将使用三个系统,一个用于主 DNS 服务器,另一个用于辅助 DNS,第三个用于 DNS 客户端。 所有系统都运行 Ubuntu 16.04 操作系统。 这是每个系统的 IP 和主机名。

主 DNS 服务器:

  • 操作系统 : Ubuntu 16.04 LTS 64 位服务器
  • 主机名 : pri.ostechnix.lan
  • IP地址 : 192.168.1.200/24

辅助 DNS 服务器:

  • 操作系统 : Ubuntu 16.04 LTS 64 位服务器
  • 主机名 : sec.ostechnix.lan
  • IP地址 : 192.168.1.201/24

DNS客户端:

  • 操作系统 : Ubuntu 16.04 LTS 64 位服务器
  • 主机名 : 客户端.ostechnix.lan
  • IP地址 : 192.168.1.202/24

让我们开始吧。

内容

  1. 在 Ubuntu 16.04 中安装和配置 DNS 服务器
    1. 第 1 部分:安装和配置仅缓存名称服务器,
      1. 安装 BIND9
      2. 配置缓存名称服务器
      3. 测试缓存名称服务器
    2. 第 2 部分:安装和配置主 DNS 服务器
      1. 安装 BIND9
      2. 配置主 DNS 服务器
      3. 测试主 DNS 服务器
  2. 第 2 部分:安装和配置辅助 DNS 服务器
    1. 安装 BIND9
    2. 配置辅助 DNS 服务器
    3. 测试辅助 DNS 服务器
  3. 配置 DNS 客户端
    1. 我如何从这个博客中受益:

在 Ubuntu 16.04 中安装和配置 DNS 服务器

为了简单和易于理解,我将本指南分为三个部分。

  1. 安装和配置仅缓存名称服务器,
  2. 安装和配置主 DNS 服务器或主 DNS 服务器
  3. 安装和配置辅助 DNS 服务器或从 DNS 服务器

让我们一步一步来。

第 1 部分:安装和配置仅缓存名称服务器,

确保您的 Ubuntu 服务器是最新的。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

安装 BIND9

更新系统后,运行以下命令安装用于设置 DNS 服务器的 BIND9 软件包。

sudo apt-get install bind9 bind9utils bind9-doc

安装 BIND9

配置缓存名称服务器

缓存名称服务器在本地保存特定时间段的 DNS 查询结果。 它通过在本地保存查询来减少 DNS 服务器的流量,因此它提高了 DNS 服务器的性能和效率。

要配置缓存名称服务器,请编辑 /etc/bind/named.conf.options 文件:

sudo nano /etc/bind/named.conf.options

取消注释以下行。 然后,添加您的 ISP 或 Google 公共 DNS 服务器 IP 地址。

forwarders {  8.8.8.8;  };

Save 和 close 文件。

然后重新启动 bind9 服务以使更改生效。

sudo systemctl restart bind9

我们已经成功安装了缓存名称服务器。

测试缓存名称服务器

现在让我们使用命令检查它是否正常工作:

dig -x 127.0.0.1

如果您看到类似下面的内容,恭喜! 缓存名称服务器正在工作!

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22769 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;1.0.0.127.in-addr.arpa. IN PTR  ;; ANSWER SECTION: 1.0.0.127.in-addr.arpa. 604800 IN PTR localhost.  ;; AUTHORITY SECTION: 127.in-addr.arpa. 604800 IN NS localhost.  ;; ADDITIONAL SECTION: localhost. 604800 IN A 127.0.0.1 localhost. 604800 IN AAAA ::1  ;; Query time: 0 msec ;; SERVER: 192.168.1.200#53(192.168.1.200) ;; WHEN: Tue Aug 23 15:53:59 IST 2016 ;; MSG SIZE rcvd: 132

ostechnix@pri:~_003

第 2 部分:安装和配置主 DNS 服务器

使用以下命令确保您的 Ubuntu 服务器是最新的:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

安装 BIND9

运行以下命令安装 BIND9 包。

sudo apt-get install bind9 bind9utils bind9-doc

配置主 DNS 服务器

所有配置文件都将在 /etc/绑定/ 目录。

让我们编辑 bind9 配置文件

编辑 ‘/etc/bind/named.conf’ 使用您选择的任何编辑器:

sudo nano /etc/bind/named.conf

该文件应包含以下行。 如果这些行不存在,只需添加它们。

include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; 

ostechnix@pri:~_004

Save 更改并退出文件。

我们需要定义正向和反向区域文件。

为此,请编辑 命名.conf.local 文件:

sudo nano /etc/bind/named.conf.local

定义正向和反向文件,如下所示。

zone "ostechnix.lan" {         type master;         file "/etc/bind/for.ostechnix.lan";         allow-transfer { 192.168.1.201; };         also-notify { 192.168.1.201; };  }; zone "1.168.192.in-addr.arpa" {         type master;         file "/etc/bind/rev.ostechnix.lan";         allow-transfer { 192.168.1.201; };         also-notify { 192.168.1.201; };  };

ostechnix@pri:~_008

这里, for.ostechnix.lan 是前向区域文件。 rev.ostechnix.lan 是反向区域文件。 和 192.168.1.202 是辅助 DNS 服务器的 IP 地址。 我们这样做是因为,如果主服务器关闭,辅助 DNS 将开始获取查询。

Save 和 close 文件。

现在让我们创建我们在上一步中定义的区域文件。

首先让我们创建如下所示的正向区域文件。

sudo nano /etc/bind/for.ostechnix.lan

添加以下行:

$TTL 86400 @   IN  SOA     pri.ostechnix.lan. root.ostechnix.lan. (         2011071001  ;Serial         3600        ;Refresh         1800        ;Retry         604800      ;Expire         86400       ;Minimum TTL ) @       IN  NS          pri.ostechnix.lan. @       IN  NS          sec.ostechnix.lan. @       IN  A           192.168.1.200 @       IN  A           192.168.1.201 @       IN  A           192.168.1.202 pri     IN  A           192.168.1.200 sec     IN  A           192.168.1.201 client  IN  A           192.168.1.202

ostechnix@pri:~_009

同样,您可以添加上述文件中定义的其他客户记录。

Save 和 close 文件。 接下来创建反向区域。

sudo nano /etc/bind/rev.ostechnix.lan

添加以下行:

$TTL 86400 @   IN  SOA     pri.ostechnix.lan. root.ostechnix.lan. (         2011071002  ;Serial         3600        ;Refresh         1800        ;Retry         604800      ;Expire         86400       ;Minimum TTL ) @       IN  NS          pri.ostechnix.lan. @       IN  NS          sec.ostechnix.lan. @       IN  PTR         ostechnix.lan. pri     IN  A           192.168.1.200 sec     IN  A           192.168.1.201 client  IN  A           192.168.1.202 200     IN  PTR         pri.ostechnix.lan. 201     IN  PTR         sec.ostechnix.lan. 202     IN  PTR         client.ostechnix.lan.

ostechnix@pri:~_007

Save 和 close 文件。

为bind9 目录设置适当的权限和所有权。

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

接下来,我们需要验证 DNS 配置文件和区域文件。

使用命令检查 DNS 配置文件:

sudo named-checkconf /etc/bind/named.conf
sudo named-checkconf /etc/bind/named.conf.local

如果上述命令没有返回任何内容,则表示 DNS 配置有效。

接下来,使用命令检查区域文件:

sudo named-checkzone ostechnix.lan /etc/bind/for.ostechnix.lan

样本输出:

zone ostechnix.lan/IN: loaded serial 2011071001 OK

检查反向区域文件:

sudo named-checkzone ostechnix.lan /etc/bind/rev.ostechnix.lan

样本输出:

 zone ostechnix.lan/IN: loaded serial 2011071002 OK

ostechnix@pri:~_010

如果你得到了如上所示的结果,那么一切都很好。

现在,是时候检查主 DNS 服务器是否正常工作了。

编辑 /etc/网络/接口 文件:

sudo vi /etc/network/interfaces

添加 DNS 服务器 IP 地址。 在我们的例子中,DNS 服务器 IP 与这台机器本身的 IP 地址相同。

dns-nameservers 192.168.1.200

ostechnix@pri:~_012

Save 和 close 文件。

最后重启Bind9服务。

sudo systemctl restart bind9

测试主 DNS 服务器

使用 dig 或 nslookup 命令验证 DNS 服务器。

dig pri.ostechnix.lan

样本输出:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> pri.ostechnix.lan ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51989 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;pri.ostechnix.lan. IN A  ;; ANSWER SECTION: pri.ostechnix.lan. 86400 IN A 192.168.1.200  ;; AUTHORITY SECTION: ostechnix.lan. 86400 IN NS sec.ostechnix.lan. ostechnix.lan. 86400 IN NS pri.ostechnix.lan.  ;; ADDITIONAL SECTION: sec.ostechnix.lan. 86400 IN A 192.168.1.201  ;; Query time: 0 msec ;; SERVER: 192.168.1.200#53(192.168.1.200) ;; WHEN: Tue Aug 23 16:56:13 IST 2016 ;; MSG SIZE rcvd: 110

ostechnix@pri:~_013

或者,使用 nslookup 命令,如下所示:

nslookup ostechnix.lan

样本输出:

Server: 192.168.1.200 Address: 192.168.1.200#53  Name: ostechnix.lan Address: 192.168.1.200 Name: ostechnix.lan Address: 192.168.1.201 Name: ostechnix.lan Address: 192.168.1.202

ostechnix@pri:~_015

如果你得到类似上面的结果,那么主 DNS 服务器已经启动并且运行良好!

第 2 部分:安装和配置辅助 DNS 服务器

您需要一个单独的系统来设置此服务器。 我们需要辅助 DNS 服务器,因为如果主 DNS 出现任何问题,辅助 dns 服务器仍将解析查询。

首先,使用命令更新服务器:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

安装 BIND9

安装所需的 bind9 包:

sudo apt-get install bind9 bind9utils bind9-doc

配置辅助 DNS 服务器

编辑 bind9 配置文件:

sudo nano /etc/bind/named.conf

如果它们不存在,请添加以下行。

include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; 

Save 和 close 文件。

接下来,我们需要定义区域文件。

为此,请编辑 命名.conf.local 文件:

sudo nano /etc/bind/named.conf.local

添加或修改以下行。 用您自己的值替换 IP 地址和区域文件。

zone "ostechnix.lan" {         type slave;         file "/var/cache/bind/for.ostechnix.lan";         masters { 192.168.5.200; };  }; zone "1.168.192.in-addr.arpa" {         type slave;         file "/var/cache/bind/rev.ostechnix.lan";         masters { 192.168.5.200; };  };

ostechnix@sec: ~_016

这里, 192.168.1.200 是主 DNS 服务器的 IP 地址。

请注意,区域文件的路径必须是 /var/缓存/绑定/ 目录。 这是因为 AppArmor 默认只允许在其中进行写访问。

接下来为绑定目录设置适当的权限和所有权。

sudo chmod -R 755 /etc/bind 
sudo chown -R bind:bind /etc/bind

然后,编辑网络配置文件并添加主要和次要 DNS 服务器的 IP 地址。

sudo nano /etc/network/interfaces
[...] dns-nameservers 192.168.1.200 dns-nameservers 192.168.1.201

ostechnix@sec: ~_017

Save 和 close 文件。

最后,重新启动系统以使所有更改生效。

测试辅助 DNS 服务器

正如我已经提到的,我们使用“dig”或“nslookup”命令来测试 DNS 服务器。

让我们使用命令验证辅助 DNS 服务器:

dig sec.ostechnix.lan

样本输出:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> sec.ostechnix.lan ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49308 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;sec.ostechnix.lan. IN A  ;; ANSWER SECTION: sec.ostechnix.lan. 86400 IN A 192.168.1.201  ;; AUTHORITY SECTION: ostechnix.lan. 86400 IN NS sec.ostechnix.lan. ostechnix.lan. 86400 IN NS pri.ostechnix.lan.  ;; ADDITIONAL SECTION: pri.ostechnix.lan. 86400 IN A 192.168.1.200  ;; Query time: 2 msec ;; SERVER: 192.168.1.200#53(192.168.1.200) ;; WHEN: Tue Aug 23 18:19:47 IST 2016 ;; MSG SIZE rcvd: 110

ostechnix@sec: ~_018

同样,您可以使用以下命令验证主 DNS 服务器:

dig pri.ostechnix.lan

或者,只需使用 nslookup 命令,如下所示。

nslookup ostechnix.lan

笔记: 请注意,只有在 序列号 主 DNS 服务器上的序列号高于辅助 DNS 服务器的序列号。

配置 DNS 客户端

在客户端系统中编辑网络配置文件:

sudo nano /etc/network/interfaces

添加名称服务器 IP 地址。

[...] nameserver 192.168.1.200 nameserver 192.168.1.201 

Save 和 close 文件。 然后,重新启动系统以使更改生效。

使用以下任一命令测试 DNS 服务器:

dig pri.ostechnix.lan
dig sec.ostechnix.lan 
dig client.ostechnix.lan 
nslookup ostechnix.local 

在此阶段,您将拥有工作的主 DNS 服务器和辅助 DNS 服务器。

另请阅读如何在 CentOS 6 中设置 DNS 服务器 不要忘记下载以下免费电子书,其中介绍了如何在 Ubuntu 系统上安装和配置各种服务器应用程序。 下载免费电子指南:“Ubuntu 文档:Ubuntu 服务器指南 2014”

目前为止就这样了。 如果您觉得本指南有用,请在您的社交网络上分享并支持 OSTechNix。

干杯!

感谢您的光临!

我如何从这个博客中受益:

  • 订阅我们的电子邮件通讯: 立即注册
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: Facebook | 推特 | 谷歌加 | 领英 | RSS订阅

祝你有美好的一天!!

BIND9DNSDNS 服务器Ubuntu 16.04 LTS