本综合教程介绍了如何在 Ubuntu 16.04 LTS 64 位服务器版中安装和配置 DNS 服务器。 你可能已经知道, 域名系统 是的缩写形式 D主 nAME 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
让我们开始吧。
内容
在 Ubuntu 16.04 中安装和配置 DNS 服务器
为了简单和易于理解,我将本指南分为三个部分。
- 安装和配置仅缓存名称服务器,
- 安装和配置主 DNS 服务器或主 DNS 服务器
- 安装和配置辅助 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
配置缓存名称服务器
缓存名称服务器在本地保存特定时间段的 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
第 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";
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; }; };
这里, 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
同样,您可以添加上述文件中定义的其他客户记录。
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.
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
如果你得到了如上所示的结果,那么一切都很好。
现在,是时候检查主 DNS 服务器是否正常工作了。
编辑 /etc/网络/接口 文件:
sudo vi /etc/network/interfaces
添加 DNS 服务器 IP 地址。 在我们的例子中,DNS 服务器 IP 与这台机器本身的 IP 地址相同。
dns-nameservers 192.168.1.200
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
或者,使用 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
如果你得到类似上面的结果,那么主 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; }; };
这里, 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
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
同样,您可以使用以下命令验证主 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