在 Ubuntu Server 14.04 中设置缓存 DNS 服务器在 Ubuntu Server 14.04 中设置缓存 DNS 服务器在 Ubuntu Server 14.04 中设置缓存 DNS 服务器在 Ubuntu Server 14.04 中设置缓存 DNS 服务器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Ubuntu Server 14.04 中设置缓存 DNS 服务器

域名服务 (DNS) 是一种将 IP 地址和完全限定域名相互映射的命名服务。运行 DNS 的计算机称为名称服务器。

在这里,我使用转发器、正向查找和保留查找来安装和配置缓存服务器。在大多数地方,我们需要预留查找。缓存服务器不会保存任何域名,它仅作为指向服务器工作。在深入讨论之前,我们需要了解 DNS 服务器及其工作原理。

什么是 DNS?

这是了解 DNS 及其工作原理的简单方法。

如果我们需要在浏览器中访问howtoing.com,系统会寻找howtoing.com。在 .com 的末尾会有一个 (.) 那么这是什么?

(.)代表命名空间根服务器,全局可用的根服务器共有13个。当我们访问 howtoing.com 时,它会根据操作系统配置要求命名服务器。在Ubuntu中,我们曾经在/etc/resolv.conf中配置名称服务器,当访问howtoing.com时,如果根名称服务器不这样做,我的浏览器会询问根名称服务器拥有我请求的域信息,它将缓存我请求的信息并将我的请求转发到(TLD)顶级域名称服务器,即使在 TLD 名称服务器中我的请求也不是可用时,它将被缓存并转发到权威名称服务器。

在域名注册时,我们的域名注册者将定义我们的域名应使用哪个权威名称服务器。因此,权威名称服务器拥有我们的域名信息,当我们的请求到达 ANS 时,它将回复 howtoing.com 具有 111.111.222.1 的查询,同时它将缓存在权威名称服务器中并将请求发送回浏览器。上述每个步骤都在几毫秒内完成。

希望您现在了解什么是 DNS 及其工作原理。现在让我们在 Ubuntu Server 14.04 LTS 中设置一个缓存 DNS 服务器。

第1步:安装DNS服务器

首先,看一下我的本地 DNS 服务器信息,例如静态 IP 地址和主机名,这些信息用于本文目的。

IP Address:	192.168.0.100
Hostname:	dns.tecmintlocal.com

要验证上述设置是否正确,我们可以使用“hostnamectl”和“ifconfig”命令。

hostnamectl
ifconfig eth0 | grep inet

接下来,我们在设置 DNS 缓存服务器之前更新默认存储库并进行系统升级。

sudo apt-get update && sudo apt-get upgrade -y

现在,使用以下命令安装 DNS 软件包 bind 和 dnsutils。

sudo apt-get install bind9 dnsutils -y

安装 dns 后,移至 /etc/bind 下的绑定配置目录。

/etc/bind/
ls -l

步骤2:设置DNS缓存服务器

首先,我们在这里设置和配置缓存服务器。使用 vim 编辑器打开并编辑文件 named.conf.options。

sudo vim named.conf.options

现在,这里的单词“转发器”用于缓存域名请求。所以,在这里我们将使用我的路由器作为转发器。取消注释该行前面的 //,如图所示。

forwarders {
        192.168.0.1;
        };

使用 wq! 保存并退出文件。现在是时候启动绑定服务器进行小测试了。

sudo /etc/init.d/bind9 start

如果我们需要测试缓存是否有效,可以使用dig命令来检查缓存是否有效。

举个例子,我们现在要挖 ubuntu.com,一开始它不会被缓存,所以可能需要几毫秒,一旦缓存就会以闪电般的速度。

dig @127.0.0.1 ubuntu.com

dig 命令是一个用于 DNS 查找的工具。要了解有关 Dig 命令的更多信息,请阅读以下主题。

  1. 10 个有用的 Dig 命令示例

在这里,我们可以在上图中看到,第一次挖掘时,我的查询花费了 1965 毫秒,并显示哪个 IP 地址绑定到 ubuntu.com。

让我们再尝试一次,看看查询时间。

酷!,在第二次尝试中,我们在 5 毫秒内得到了查询。希望您现在知道什么是缓存服务器。上图显示,共有13根服务器正在缓存Ubuntu.com,因为数百万人已经访问了Ubuntu官方网站。

步骤3:设置主DNS服务器

创建一个MASTER DNS服务器,这里我将域名定义为howtoinglocal.com,使用vim编辑器编辑文件named.conf.local。

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

输入 DNS-Master 条目,如下所示。

zone "tecmintlocal.com" {
        type master;
        file "/etc/bind/db.tecmintlocal.com";
        };
    1. 区域:域中的主机详细信息
  1. 类型:主 DNS。
  2. 文件:存储区域信息的位置。

通过从 db.local 制作副本来创建区域文件 db.howtoinglocal.com(正向查找)。

sudo cp db.local db.tecmintlocal.com

现在使用 vim 编辑器打开并编辑复制的区域文件。

sudo vim db.tecmintlocal.com

接下来,添加以下示例条目,我已将其用于教程目的。我也将同样的方法用于其他虚拟机设置。根据您的要求修改以下条目。

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     tecmintlocal.com. root.tecmintlocal.com. (
                     2014082801         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.tecmintlocal.com.
ns      IN      A       192.168.0.100

clt1    IN      A       192.168.0.111
ldap    IN      A       192.168.0.200
ldapc   IN      A       192.168.0.211
mail    IN      CNAME   clt1.tecmintlocal.com.

使用 wq! 保存并退出文件。

最后,使用以下命令重新启动绑定 DNS 服务。

 
sudo service bind9 restart

我们需要确认上述区域设置是否有效。让我们使用 dig 命令进行检查。从本地主机查询运行以下命令。

dig @127.0.0.1 mail.tecmintlocal.com

让我们 ping 并测试 clt1.howtoinglocal.com,在此之前我们需要将 dns 服务器条目更改为 localhost 并重新启动网络才能生效。

打开并编辑网络接口设置并输入 DNS 条目。

sudo vim /etc/network/interfaces

如下更改界面中的 DNS 条目。

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        gateway 192.168.0.1
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers 127.0.0.1
	    dns-search tecmintlocal.com

添加条目后,使用以下命令重新启动网络。

sudo ifdown eth0 && sudo ifup eth0

如果重启网络没有生效,就需要重启。现在让我们 ping 并检查 clt1.howtoinglocal.com,在其回复时,我们需要获取我们为主机名 clt1 定义的 IP 地址。

ping clt1.tecmintlocal.com -c 3

设置反向 DNS 查找

再次打开并编辑文件 named.conf.local。

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

现在添加以下反向 DNS 查找条目,如图所示。

zone "0.168.192.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.tecmintlocal192";
        };

使用 wq! 保存并退出文件。现在创建一个db.howtoinglocal192文件,正如我在上面的主文件中提到的用于反向查找,将db.127复制到db.howtoinglocal192 使用以下命令。

sudo cp db.127 db.tecmintlocal192

现在,打开并编辑文件 db.howtoinglocal192 以设置反向查找。

sudo vim db.tecmintlocal192

输入以下条目,根据您的要求修改以下条目。

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.tecmintlocal.com. root.tecmintlocal.com. (
                        2014082802      ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.
100     IN      PTR     ns.tecmintlocal.com.

111     IN      PTR     ctl1.tecmintlocal.com.
200     IN      PTR     ldap.tecmintlocal.com.
211     IN      PTR     ldapc.tecmintlocal.com.

使用重新启动绑定服务。

现在,验证保留查找条目。

host 192.168.0.111

当我们使用如上所示的 IP 地址进行反向查找时,它希望使用如上图所示的名称进行回复。

我们也使用 dig 命令进行检查。

dig clt1.tecmintlocal.com

在这里,我们可以看到答案部分中的查询的答案,因为域名clt1.howtoinglocal.com具有IP地址 192.168.0.111。

第四步:设置客户端

只需将客户端计算机中的 IP 地址和 dns 条目更改为我们的本地 dns 服务器 192.168.0.100,如果是这样,我们的客户端计算机将从本地 DNS 服务器获取分配的主机名。

让我们使用以下一系列命令检查客户端的主机名。

ifconfig eth0 | grep inet
hostname	
dig -x 192.168.0.100

了解 dns 中的区域文件条目,此图将为您提供一个小解释,说明我们在区域文件条目中定义的内容。

就是这样!在本文中,我们了解了如何设置本地 DNS 服务器供办公室或家庭使用。

很快您就可以阅读有关如何使用各种工具对 DNS 服务器进行故障排除并修复它的文章。有许多工具可用于对 DNS 服务器进行故障排除。阅读下面的文章以了解一些故障排除技巧。

用于 DNS 故障排除的 8 个 Nslookup 命令

©2015-2025 艾丽卡 support@alaica.com