23. Linux系统中的高速缓存DNS(Domain name system)服务器的配置

it2025-02-18  5

Lesson23 Linux下高速缓存DNS服务器的配置

文章目录

1. 了解DNS(Domain name system)1.1 DNS的定义1.2 DNS的功能1.3 DNS的分类1.4 DNS的解析过程1.5 DNS系统中常见的资源记录类型1.6 DNS 排错(它显示来自 DNS 查找的详细信息 , 其中包括显示为什么查询失败) 2. 非权威高速缓存DNS服务器的配置3. 怎样搭建一个权威dns服务器4. 怎样搭建一个内网中重命名的dns服务器5. 关于邮件的实验6. DNS的反向解析(通过ip找域名)7. DNS的双向解析(内网解析ip为内网的 外网解析为外网的)8. 如何建立辅助dns9. DNS的远程更新10. DNS的密钥更新11. dhcp+dns组成动态域名解析ddns

1. 了解DNS(Domain name system)
1.1 DNS的定义
域名系统,缩写:DNS(Domain Name System)是互联网的一项服务 作为将域名和IP地址相互映射的一个分布式数据库,帮助人们方便的访问互联网 DNS使用的是TCPUDP53端口
1.2 DNS的功能
例如:直接在浏览器里面输入域名www.baidu.com,浏览器并不知道这是什么意思,只有通过dns找到域名对应的ip,才可以正常的访问百度 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网 DNS使用TCPUDP端口53,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
1.3 DNS的分类
权威名称服务器(权威dns:直接有客户需要的答案,客户给一个域名直接就能访问) 存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据 权威名称服务器的类型包括: Master : 包含原始区域数据,有时称作 “主要 ”名称服务器 Slave : 备份服务器 ,通过区域传送从 Master 服务器获得的区域数据的副本,有时称作 “次要 ”名称服务器 非权威 / 递归名称服务器(非权威dns里面直接没有客户需要的答案,但它会通过问114.114.114.114等权威DNS找到答案给用户(相当于代购)) 客户端通过其查找来自权威名称服务器的数据 递归名称服务器的类型包括仅缓存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性。
1.4 DNS的解析过程
DNS查找客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性,会将权威答案发送至客户端 否则,如果名称服务器在其缓存中有请求的信息,则会将非权威答案发送至客户端 如果缓存中没有信息,名称服务器将搜索权威名称服务器以查找信息,从根区域开始,按照DNS层次结构向下搜索,直至对于信息有具有权威性的名称服务器, 以此为客户端获得答案 在此情况中,名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找 DNS资源记录DNS区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型。

简单来说, DNS 服务器将域名解析出来,找到域名对应的ip地址的服务,可以高速缓存从其他 DNS 服务器收到的 DNS 记录。 也可以在 DNS 客户服务中使用高速缓存,将其作为 DNS 客户端保存在最近的查询过程中得到的信息高速缓存的方法。 可以提高解析速度。

1.5 DNS系统中常见的资源记录类型
类型说明主机记录(A记录)A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上别名记录(CNAME记录)CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录IPv4主机记录(A记录)用于将特定的主机名映射到一个主机的IPv4地址Pv6主机记录(AAAA记录)与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址服务位置记录(SRV记录)用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等NAPTR记录它提供了正则表达式方式去映射一个域名,NAPTR记录非常著名的一个应用是用于ENUM查询PTRIPv4/IPv6 地址至名称MX用于名称的邮件交换器 ( 向何处发送其电子邮件 )NS域名的名称服务器SOA” 授权起始 “ , DNS 区域的信息 ( 管理信息 )
1.6 DNS 排错(它显示来自 DNS 查找的详细信息 , 其中包括显示为什么查询失败)
提示说明NOERROR查询成功NXDOMAINDNS 服务器提示不存在这样的名称SERVFAILDNS 服务器停机或 DNSSEC 响应验证失败REFUSEDDNS 服务器拒绝回答 ( 也许是出于访问控制原因 )
2. 非权威高速缓存DNS服务器的配置

为什么要搭建高速缓存dns服务器? 当一个企业内网里面的每一台主机都要访问114.114.114.114这个权威dns进行域名解析,但是内网通往114.114.114.114只有一根传输线,此时每台的访问速率都非常慢 内网访问外网速率较慢,但内网之间进行访问速率快 现在我们想把企业内部里面的一台服务器搭建成高速缓存dns,其他主机不再需要问114.114.114.114,直接访问高速缓存dns服务器即可 只需要高速缓存dns去查询114.114.114.114,然后把信息记录下来,其他的主机就可以通过查询高速缓存DNS服务器来解析域名,从而可以访问网站 这个高速缓存dns属于非权威dns

实验准备:将我们的server虚拟机reset,使用server虚拟机和真机来做实验 给server虚拟机配置网络。server虚拟机的ip为172.25.254.114,真机的ip为172.25.254.14

开启真机的路由功能 开启真机防火墙的伪装功能

在内网中搭建一台高速缓存dns服务器,属于非权威dns,目的是为了提高内网的访问效率

实验方法:在server中(ip为172.25.254.114)上面搭建高速缓存dns,在/etc/named.conf中写`forwarders{114.114.114.114} #意思是让这台高速缓存dns服务器先在自己的记录中查找dns,若没有记录,则去114.114.114.114查找dns

实验步骤:修改高速缓存DNS的配置文件/etc/named.conf的参数

将DNS安全检测设置为no 将server主机的DNS设置为172.25.254.114(自己)

测试: 提出问题 dig www.baidu.com时间会不会更短? 测试机为主机,将主机的DNS设置为172.25.254.114 server端:dig www.baidu.com

可以看到,能够成功找到百度的ip, 耗时361ms

真机端:dig www.baidu.com

可以看到,第一次耗时44ms 第二次耗时4ms, 第三次耗时3ms,时间缩短了很多,表明在内网查找ip可以大大缩短查找的时间

如果服务起不来,或者得到的结果不正确,那么就先清空日志,然后重启服务,再查看日志中的报错,绝大部分的错误都能从日志中找到

> /var/log/messages systemctl restart named cat /var/log/messages 在日志里面找解决办法
3. 怎样搭建一个权威dns服务器

实验目的:使172.25.254.114非权威dns不再向114.114.114.114权威dns询问,而是向自己询问,这个也属于文件共享,搭建一个类似114功能的dns服务器

在server中打开/etc/named.rfc1912.zones文件,然后复制19-24行,修改zone后的名字,修改file的内容 复制的内容: 修改后的内容: 因为要找file的内容,但是我们目前还没有这个文件,这里的文件位于/var/named的目录中,转到这个目录,去复制文件

这里一定要注意,-p是为了改westos.com.zone这个文件的权限,复制的时候一定要加-p,不然会出错!!!

复制完成后,进入这个文件编辑内容 这个文件一旦写错,错的地方就会变成红色,要注意改正错误的地方,否则named.service服务无法重启

重启服务

在真机中修改nameserver 172.25.254.114,另一行nameserver注释掉 测试:在真机中dig www.westos.com

可以看到,www.westos.com的ip为172.25.254.114

4. 怎样搭建一个内网中重命名的dns服务器

vim westos.com.zone #编辑这个文件,加入CNAME的相关参数 重启服务 在真机中进行测试:dig bbs.westos.com 可以看到,bbs.westos.com在内网中的名称为linux.westos.com

5. 关于邮件的实验

平常发送邮件都是先登陆腾讯的服务器,再将邮件发出去 qq.com这台服务器将yy@163.com这个邮件发送 需要通过dns解析找到mx记录163.com 二者通过smtp协议的25端口进行邮件传送

简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准 SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输 可以很简单地通过telnet程序来测试一个SMTP服务器,SMTP使用TCP端口25 要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) DNS MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器 简单邮件传输协议(SMTP)会根据MX记录的值来决定邮件的路由过程

在dns服务器上面netstat -antlupe | grep master 查看25端口是否开启 vim westos.com.zone #编辑这个文件,加入邮件的相关参数 其中,MX是邮件交换器 1表示级别,表示一个记录而不是地址,所以后边有. 重启服务 测试:在客户端(主机)给服务器发送邮件,Ctrl+d退出

上述信息表示设置是没有问题的,问题跟25端口有关 由于我们并没有搭建邮件服务器,所有我们的邮件是无法发送成功的

以上所有的与dns服务器相关的全部是正向解析,也就通过域名找ip

6. DNS的反向解析(通过ip找域名)

PTR:IPv4/IPv6地址----->名称

正向解析和反向解析是分开的,二者没有任何关系 将上图作为模板复制一段,修改成下图所示由于是反向解析,zone后边的前三位网络位的ip也要反写 cd /var/named,复制一个named.loopback文件 vim westos.com.ptr#编辑这个文件 重启服务 在测试端测试: 可以看到,将172.25.254.116反向解析为bbs.westos.com 可以看到,将172.25.254.118反向解析为www.westos.com

7. DNS的双向解析(内网解析ip为内网的 外网解析为外网的)

双向解析:使特定的用户使用特定的解析文件,内外分开

在实验中,将此台主机看作内网主机192.168.1网段,将除过此台主机以外的主机看作外网主机172.25.254网段

复制一个外网的dns配置文件 vim westos.com.localnet#编辑这个文件,将172.25.254全部替换成192.168.0 可以看到,替换成功 vim /etc/named.rfc1912.localnet

vim /etc/named.conf,将52-59行注释掉,重新编写外网和内网的dns配置文件 重启服务, 在测试端改测试端主机ip(真机)nameserver 172.25.254.114 可以看到,在server里查到的ip为192.168.0.114(内网解析)

在真机里查到的ip为172.25.254.114(外网解析)

8. 如何建立辅助dns

建立辅助dns, 对外网访问dns服务器来说,能够缓解访问dns服务器的压力如何使多台dns 为主dns建立辅助dns? 实验准备:将双向DNS先注释掉,将原来注释的内容放开,恢复到双向DNS解析前的状态 再打开一个虚拟机desktop,在辅助dns里面安装dns

先配置yum源,再安装DNS, yum install bind -y

将desktop主机的ip设为172.25.254.214 在desktop主机上改主机名:hostnamectl set-hostname dns-slave.westos.com vim /etc/named.conf 改参数(一共改两行) listen-on port 53{any; }; allow-query{any; }; netstat -antlupe | grep named 看53端口是否开启 vim /etc/named.rfc1912.zones 写入: type slave;(辅助型) masters {172.25.254.114;};(为114主机服务) file "slaves/westos.com.zone";(在slaves/这个目录下同步westos.com.zone) systemctl restart named cd /var/named/salves ls systemctl restart named

vim /etc/named.conf #改参数 vim /etc/named.rfc1912.zones

修改辅助DNS上的nameserver 给火墙加上DNS服务

发现数据已经同步过来了,此时辅助DNS上可以得到和主DNS服务器上相同的ip,但是只能更改一次,第二次主DNS的域名解析改变了,辅助DNS就不能及时同步,这是因为当再次更新时,主DNS里的westos.com.zone里的文件没有发生变化,删掉这个文件,再次重启服务,则能看到辅助dns也能更新 生成了新的westos.com.zone文件,更改主DNS里的解析ip 可以看到,辅助DNS也更新了 但是这种删除的方法并不适合企业,介绍一种新的方法,同步DNS解析

在114主机中vim /etc/named.rfc1912.zones #修改参数, 写入allow-notify{172.25.254.214;};企业7以前的版本需要再加上 allow-transfer{172.25.254.214;};通知215主机更新

修改serial的值,通常为时间加次数(最大不超过10位)

并且将www.westos.com的解析ip改为172.25.254.188 重启服务 此时可以看到,辅助dns也更新了主dns解析的ip(可能会有一点点延迟,多重启几次)

9. DNS的远程更新

之前每次该完配置文件都要重启服务才会生效

现在即改即生效 查看/var/named/这个目录的权限

备份cp -p westos.com.zone /mnt/ 将selinux改至permissive模式 给named组加上写权限 vim /etc/named.rfc1912.zones

写入: allow-update {172.25.254.114; };

systemctl restart named #重启服务

进行更新:

nsupdate 回车 server 172.25.254.114 update add hello.westos.com 86400 A 172.25.254.123 send 回车

打开远程主机火墙,加上DNS

可以看到远程主机更新在主DNS上已经同步过来了,查看/var/named/,可以看到多了一个westos.com.zone.jnl的日志文件 vim westos.com.zone可以看到,多了一个hello.westos.com的解析对应关系 在远程主机上删掉这个网址,则主DNS上也dig不到ip 删掉westos.com.zone和westos.com.zone.jnl文件 将备份的文件恢复回来

再次查看这个文件

可以看到,已经看不到hello.westos.com的对应关系了,说明已经把远程更新的文件彻底删除干净了

10. DNS的密钥更新

之前我们通过ip的方式更新dns,这样的做法很不安全,别人也通过ip可以更新我的dns 如果给dns做一个钥匙,有钥匙才能更新,这样做更安全 实验准备:在实验之前,转到/var/named/目录下,ls查看

删掉之前更新产生的westos.com.zone和westos.com.zone.jnl文件, 将之前备份的westos.com.zone文件拷贝回来 生成自己的加密文件 cp -p /etc/rndc.key /etc/westos.key 在/mnt目录下输入 dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos生成钥匙 ls查看生成的对称加密文件 编辑自己的加密文件:加入钥匙名字和加密字符`cat Kwestos.+157+45843.key #查看加密字符

vim /etc/westos.key #在dns服务器自己的加密文件中写信息 在option语句块外添加 include /etc/westos.key

编辑dns文件,使其允许钥匙加密更新 vim /etc/named.rfc1912.zones

将密钥发送给测试机

在测试端进行更新

nsupdate -k /mnt/Kwestos.+157+63271.private server 172.25.254.114 update add test.westos.com 86400 A 172.25.254.136 send quit

切换到/opt/,ls查看密钥文件是否成功发送过来

可以看到,无法更新成功,这是因为没有告诉测试机使用密钥进行更新 可以看到,能够成功进行密钥更新

在主DNS上dig可以看到更新的ip(172.25.254.136)

11. dhcp+dns组成动态域名解析ddns

在动态分配ip时,dns域名解析的ip就变了,这样就查不到域名对应的ip了,要把域名与ip的对应关系做好,可以利用dhcp服务,dhcp将哪个ip给被访问域名,dhcp再告诉dns,这样客户端会利用主机名称去访问一个域名内的主机

DDNS(Dynamic Domain Name Server)是动态域名服务的缩写 DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上 用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序 服务器程序负责提供DNS服务并实现动态域名解析 DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样其他上网用户就可以通过域名来进行交流 而最终客户所要记忆的全部,就是记住动态域名商给予的域名即可,而不用去管他们是如何实现的 动态域名服务的对象是指IP是动态的,是变动的 普通的DNS都是基于静态IP的,有可能是一对多或多对多,IP都是固定的一个或多个,但DDNSIP是变动的、随机的 随着市场需求的变化,DDNS需求功能也越来越多,越来越要求方便,市场现在已经有了不少第三方DDNS方支持的设备

实验准备:server和desktop两台虚拟机,确保两台虚拟机的selinux的状态为disabled 在114 server主机上面恢复原来的环境

vim westos.com.zone(删除之前所有的,只留dns) 利用yum源安装dhcp服务 systemctl restart named #重启DNS服务

在114server主机上面安装dhcp服务 在火墙中加入dhcp服务 按照以前的方法配置dhcp

修改域名为westos.com 修改域名服务器为172.25.254.114

将desktop虚拟机的网络配置文件写为dhcp自动获取ip

如果dhcp无法自动分配ip,则查看server虚拟机的网络配置 server虚拟机的配置文件如下所示 重启网络和打开dhcp 重启dhcp服务,保证dhcp是开启的状态 进入dhcp的配置文件,写上ddns的更新方式为interim 修改配置文件里的子网ip,子网掩码,网关和自动获取ip的范围

写入以下内容,设置主机ip为172.25.254.114,通过加密密钥的方式进行dns解析

在desktop测试端,重启网络 可以看到自动获取的test.westos.com的ip为172.25.254.210 在dhcp的配置文件里更改自动获取ipd的范围为172.25.254.150到172.25.254.200 再重启dhcp服务,重启网络 查到的test.westos.com的DNS解析ip为172.25.254.150

最新回复(0)