powerdns如何进行缓存_Linux 网络服务之 DNS && bind 详解

本文介绍了DNS的工作原理,包括递归查询和缓存DNS服务器的角色。讲解了Linux中DNS服务器软件bind和powerdns,特别是通过bind在RHEL6.4上配置DNS服务的过程,包括主服务器、辅助服务器的设置,以及子域授权和缓存服务器的配置方法。
摘要由CSDN通过智能技术生成

前提:

学过网络的朋友都知道,如果要实现两台主机的通信都需要由相应的IP地址来实现。在互联网中,众多的IP地址不仅提升我们记忆的难度,而且使用起来非常的不方便,这就需要来提供一中机制,来实现IP到域名的解析。这样当我们需要访问百度的时候就不需要在地址栏输入百度的IP地址,直接输入百度的域名就可以进行访问了。那我们是如何实现地址和域名之间的映射呢?这就需要一个DNS服务器来实现。

一、DNS工作原理

DNS全名为 Domain Name System.能够实现域名到IP的解析。主要原理图如下:

如果本地PC访问百度的站点:

1.当我们将www.baidu.com输入地址栏时,主机会到我们本地设置的DNS上去查询。这个过程一般被称为递归。

2.当DNS(这里我们假设为电信的),收到主机的查询请求时,会在本服务器的缓存中进行查询,如果查询到了就会将结果返回给PC,如果查询不到就会帮该PC去别的主机查询。

3.默认每台DNS服务器中都内置了全球13台根域服务器的IP地址,电信的DNS会将PC机的查询请求发送到根域以查询com域的地址。

4.接着该DNS主机会去com域中查询baidu.com域的IP地址。

5.当电信DNS主机获取到baidu.com域的地址之后,就会去这台服务器上查询www这台主机的地址。

6.当获取到www.baidu.com这台主机的地址之后,电信的DNS就会将IP地址返回给PC,这样PC就可以拿着这个IP来访问百度了。

二、DNS服务器的类型

1.缓存DNS服务器

缓存服务器会对查询的结果进行缓存,包括错误的相关结果,这些查询结果都会有一个默认的生存时间( time to live ),当时间过了之后,会从当前缓存中清除。但是缓存服务器给出的查询结果是非权威的答案。

2.主DNS服务器(master)

主服务器中的数据库更新都是由管理员手动完成

3.辅助DNS服务器(slave)

辅助DNS服务器中的数据库更新是从主服务器或其它辅助DNS服务器那里完成的。这样实现了当前DNS环境的冗余。

三、linux系统中的DNS服务器

在linux服务器中用于搭建DNS服务器的软件主要有两种,bind和powerdns,而bind更占据了DNS服务器的半壁江山,本篇博文实现的功能将完全在RHEL6.4上使用bind来实现。

当我们配置好yum源之后查询bind软件组成和功能如下:bind-utils提供客户端使用的工具,可以使用 rpm 命令查询详细信息

bindDNS服务主程序,提供DNS服务

bind-libs为bind和bind-utils提供库

bind-chroot装上之后能限制服务的相关活动目录(这里我们并不安装)

四、利用bind在linux上实现相关的DNS服务

1.简单安装[root@station1 ~]# yum install bind -y

2.安装完成查看配置文件

/etc/named.conf           是该服务的主要配置文件

/etc/named.rfc1912.zones  设置需要解析的相关zone

data                      该目录用于存放相关的日志信息

name.ca                   用于根域的解析,如果丢失可以用 "dig -t NS . @DNS_IP" 重定向

slave                     该目录用于辅助服务器从主服务器同步的信息

3.启动服务并查看监听端口[root@station1 ~]# service named start

Starting named: [ OK ]

[root@station1 ~]# ss -atuln4 | grep :53

udp UNCONN 0 0 172.16.21.100:53 *:*

udp UNCONN 0 0 127.0.0.1:53 *:*

tcp LISTEN 0 3 172.16.21.100:53 *:*

tcp LISTEN 0 3 127.0.0.1:53 *:*

[root@station1 ~]# chkconfig named on

4.缓存服务器配置

有的时候我们需要提供一个仅缓存服务器来提高我们解析互联网站域名的速度,相关的配置如下:

[root@station1 ~]# vim /etc/named.conf

options {

directory "/var/named";

forward only;

forwarders { 172.16.0.1; };

bindkeys-file "/etc/named.iscdlv.key";

};

[root@station1 ~]# named-checkconf

[root@station1 ~]# rndc reload

简单测试:dig -t NS .

注意:也可以争取某个特定的zone做转发:zone "xiong.com" IN {

type forward;

forward only;

forwarders { 172.16.0.1; };

};

5.主服务器的实现(master)

实现对xiong.com域的正反向解析如下:

首先编辑配置文件 vim /etc/named.conf

然后编辑/etc/named.rfc1912.zones,添加如下zone:

编辑资源记录文件named.xiong和xiong.name实现正反向解析:

修改文件权限并检查配置文件的正确性,然后重启服务:

修改本机的DNS指向并进行测试如下:vim /etc/resolv.conf

nameserver 172.16.21.100

dig -t axfr xiong.com @172.16.21.100 测试并注意其中列出的内容含义

6.辅助DNS的实现

需要首先在主服务器上添加该从服务器的NS资源记录,这样才能及时的通知主服务器上的资源记录更新

修改区域配置文件:

重启服务,并使用dig命令测试:dig-t axfr xiong.com @172.16.21.100

7.子域授权

为域xiong.com完成子域kun1.xiong.com的授权,并实现kun1.xiong.com子域的正向查询。

编辑域xiong.com的master配置文件vim /var/named/named.xiong添加如下行:

保存以完成子域的授权。

结果:

父域能解析子域的资源记录:子域不能解析父域的资源记录:dig -t A www.kun1.xiong.com @172.16.21.100

子域不能解析父域的资源记录,可以争对父域创建一个forward转发:

这样子域就能正常的对父域中的资源记录进行解析了。这就完成了子域的授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值