Lesson23 Linux下高速缓存DNS服务器的配置
简单来说, DNS 服务器将域名解析出来,找到域名对应的ip地址的服务,可以高速缓存从其他 DNS 服务器收到的 DNS 记录。 也可以在 DNS 客户服务中使用高速缓存,将其作为 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 在日志里面找解决办法实验目的:使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
vim westos.com.zone #编辑这个文件,加入CNAME的相关参数 重启服务 在真机中进行测试:dig bbs.westos.com 可以看到,bbs.westos.com在内网中的名称为linux.westos.com
平常发送邮件都是先登陆腾讯的服务器,再将邮件发出去 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
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
双向解析:使特定的用户使用特定的解析文件,内外分开
在实验中,将此台主机看作内网主机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(外网解析)
建立辅助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 namedvim /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(可能会有一点点延迟,多重启几次)
之前每次该完配置文件都要重启服务才会生效
现在即改即生效 查看/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的对应关系了,说明已经把远程更新的文件彻底删除干净了
之前我们通过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)
在动态分配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都是固定的一个或多个,但DDNS的IP是变动的、随机的 随着市场需求的变化,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