1.DNS的概念
DNS的定义
域名系统:Domain Name System,是互联网的一项服务 作为将域名和IP地址相互映射的一个分布式数据库 DNS使用的是TCP和UDP 53端口
DNS的功能
浏览器并不知道www.baidu.com是什么,只有通过DNS找到域名对应的ip才可以正常的访问 对于每一级域名长度的限制是63个字符,域名长度不能超过253个字符
DNS的分类
权威名称服务器,权威DNS,直接有客户需要的答案,客户给域名就可直接访问 存储并提供某区域(整个DNS域或者DNS域的一部分)的实际数据 权威名称服务器类型包括: Master:包含原始区域数据,“主名称服务器” Slave:备份服务器,通过区域传送从Master服务器获得的区域数据的副本,有时称作“次要名称服务器”
非权威名称服务器,非权威DNS里面没有客户要的答案,但它会通过访问114.114.114.114等权威DNS来找到答案 非权威名称服务器类型: 仅缓存名称服务器:仅用于查找,对于非重要数据之外的任何内容都不具有权威性
DNS系统中,常见的资源记录类型
主机记录A记录 | A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上 |
---|---|
别名记录CNAME | CNAME记录用于将某个别名指向某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录 |
IPv4主机记录:A记录 | 用于将特定的主机名映射到一个主机的IPv4地址 |
服务位置记录SRV记录 | 用于提供特定服务的服务器位置,如主机hostname,端口portnumber 等 |
NAPTR记录 | 提供了正则表达是去映射一个域名,NAPTR记录非常著名的一个应用是用于ENUM查询 |
PTR | IPv4 IPv6地址名称 |
MX | 用于名称的邮件交换器,向何处发送其电子邮件 |
NS | 域名的名称服务器 |
SOA | “授权起始”DNS区域的信息 |
DNS排错
NOERROR | 查询成功 |
---|---|
NXDOMAIN | DNS服务器不存在这样的名称 |
SERVFAIL | DNS服务器停机或者DNSSEC应响验证失败 |
REFUSED | DNS服务器拒绝回答 |
搭建实验环境:
步骤一:
reset 虚拟机 server 和 desktop,目的给实验一个纯净的环境
步骤二:
给desktop和server配置网络,desktop设置为172.25.254.115,server为172.25.254.215
且都可以与真机通信,能够ping通172.25.254.60
步骤三:
使虚拟机desktop可以上网,并且可以ping通114.114.114.114
在真机里,将防火墙的伪装地址功能和内部路由功能开启
设置desktop的网关为172.25.254.60,DNS为114.114.114.114
此时desktop虚拟机已经可以上网。
3.搭建一个高速缓存的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
实验原理
在172.25.254.115上搭建高速缓存DNS,在/etc/resolv.conf中写nameserver 114.114.114.114 在真机里进行测试,在nameserver里写172.25.254.115,然后desktop已经访问到的网,再用真机去访问,速度非常快。
实验步骤
配置本地yum源,安装DNS服务
安装成功,开启服务named(DNS服务名字)
此时发现不能启动,再打开一个shell,随便敲击键盘,然后发现服务起来了,第一次开启named服务的时候需要手动生成加密字符 :字符串 需要保存到加密设备里/dev/random,/etc/rndc.key 这个文件在开启named服务会自动生成。鼠标无轨迹的运动以及对键盘的敲击。
在/etc/resolv.conf里写入nameserver 114.114.114.114
在火墙里添加DNS服务
firewall-cmd --list all firewall-cmd --permanent --add-service=dns
查看dns服务的53端口是否对于172.25.254.115开启
netstat -antlupe | grep named 可以看到并没有对172.25.254.115开启
编辑DNS的配置文件,vim /etc/named.conf
更改使53端口对所有ip都开放
更改,允许任何用户使用此非权威DNS
更改该非权威的权威DNS是114.114.114.114额外添加
更改不访问顶级DNS,速度会快
重启named服务
将真机主机的DNS域名解析改成非权威DNS115的IP,vim /etc/resolv.conf 写入 nameserver 172.25.254.115
然后用desktop dig www.westos.com
时间514msec ,然后再用真机dig www.westos.com发现时间是0mses
用server虚拟机配DNS是172.25.254.115,dig www.westos.com发现时间也是0mses
本地高速缓存DNS配置成功
4.怎么搭建一个权威DNS服务器
使115非权威DNS不再向114权威DNS询问,向自己询问。
步骤一:
vim /etc/resolv.conf 将nameserver改成自己
步骤二:
将/etc/named.conf中的forwarders {114.114.114.114;};注释掉
重启named
步骤三:
vim /etc/named.rfc1912.zones
将上面的模板复制一份 写入自己创建的主机信息
步骤四:
cd /var/named下 必须
cp -p named.localhost westos.com.zone cp -p 是为了将这个文件权限一起复制 ll 可以看到这个文件的权限
步骤五:
vim westos.com.zone
写入主机名,IP地址(在这个域名里赵什么主机就写什么)
注意:这个文件里面的com后面必须要加.
如果服务启不起来,在/var/log/messages中查看日志,找到解决办法
测试:
在server里面dig www.westos.com 找到westos.com这个域里面的主机
又结果可得,是server 172.25.254.115回答了这个问题,然后www.westos.com的IP 为172.25.254.111
若dig bbs.westos.com
172.25.254.115 告诉server虚拟机,不存在这样的域名
权威DNS搭建成功
5.关于邮件的实验
我们平常发送邮件都是先登陆腾讯的服务器,再将邮件发出去 qq.com这台服务器将lee.163.com这个邮件发送 需要通过DNS解析找到MX记录163.com 而这通过smtp协议的25端口进行邮件发送
简单邮件传输协议(simple mail server transfer protocol ,SMTP)是在internet传输mail的事实标准协议 SMTP是一个相对简单的基于文本的协议,在其之上指定了一条消息的一个或多个接受者(在大多数情况下,被确认是存在的)然后文本消息会被传输 可以简单的通过telnet程序来测定定一个SMTP服务器,SMTP使用25端口 要为一个给丁的域名决定一个SMTP服务器需要使用MX(mail exchange)DNS
邮件交换记录(MX record)是域名系统DNS中的一种资源记录类型,用于指定负责处理发往收件人域名的邮件服务器 MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据这个值来决定投递邮件的服务器 简单邮件传输协议(SMTP)会根据MX记录的值来决定邮件的路由过程
==在DNS服务器上面 netstat -antluep | grep master 查看25端口是否开启
在DNS服务器的westos.com.zone中加入以下内容并且重启服务
MX邮件交换器1表示级别,表示一个记录而不是地址,所以有.
在客户端给服务端发送邮件
mail [email protected]
Ctrl+D 结束编辑 ,mailq查看
表示设置成功,但是跟25端口有关,如果想要发送成功,需要搭建服务
此时在客户端dig -t mx westos.com
以上和DNS服务器相关的全部是正向解析,也就是通过域名找IP
6.反向解析,通过IP来找域名
步骤一: vim /etc/named.rfc1912.zones 编辑此文件设置反向解析
vim westos.com.ptr
重启服务
在215上面测试 dig -x 172.25.254.111,发现给出的域名是hello.westos.com.
再次dig -x 172.25.254.211,发现给出的域名是westos.westos.com.
反向解析配置成功
7.双向解析
什么是双向解析
使特定的用户使用特定的解析文件,内外分开 将主DNS看作内网主机172.25.254网段,将除过此台主机看作192.168.0网段
实验步骤
cd /var/named ls cp -p westos.com.zone westos.com.internet.zone vim westos.com.internet.zone 将所有172.25.254网段换成192.168.0网段 :%s/172.25.254/192.168.0/g cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.internet.zones vim /etc/named.rfc1912.internet.zones 将原来的改为westos.com.internet.zones vim /etc/named.conf 重启服务
vim /etc/named.conf
将原来的配置都注释掉,分别写内网和外网的配置
内网主机访问权威DNS115
外网主机访问权威DNS 115
经过排错重启系统
测试
用自己dig自己,dig www.westos.com,显示的是172.25.254.111
用server dig www.westos.com,显示的是192.168.0.111
在本机dig bbs.westos.com 是172.25.254.网段提供解析
在server主机dig bbs.westos.com 是192.168.0.网段提供解析
DNS双向解析建立成功
8.建立辅助DNS
对于外网访问dns服务器来说,缓解访问DNS服务器的压力
步骤一:
先在115上注释掉之前的双向解析,并且重启服务
恢复原来的内容
重启named
步骤二:
在215里面配置yum源,然后安装bind,name服务
启动服务
步骤三:
vim /etc/named.conf 编辑配置文件
重启服务
步骤四: 检查53端口是否开启
步骤五:
vim /etc/named.rfc1912.zones
然后cd /var/named/slaves ls查看 ,发现已经同步过来了 ,file westos.com.zone 可以看出它是一个数据
步骤六:
在115主机上面设置
vim /etc/named.rfc1912.zones 写入 allow-transfer {172.25.254.215;}; 企业7之前的版本需要
also-notify {172.25.254.215;}; 也通知215主机
测试:在两端dig bbs.westos.com ,如果115上westos.com.zones里面的ip变了,在215这端,需要删除slaves中的数据,然后再重新启动服务,才可以更新IP和域名
此时215上的DNS要改成自己,而不是再用115
然后在115端,改之前www.westos.com IP为115,重启服务,并且dig发现,改变了
在215端,dig www.westos.com 发现也改变了
再次修改115端的www.westos.com 的IP 地址,为172.25.254.161 重启服务后dig,发现已经更改
用215再次dig,发现没有更改
然后我们将215里slaves里面的文件删除,重启启动服务,同步数据,再次dig www.westos.com 发现IP 地址更改了。
我们发现,这样同步的方法是非常麻烦的,如果企业中有很多台主机,利用手动删除,重启的方式来获取新的域名和IP对应是不现实的,那如何才能解决这样的问题?
测试:在两端dig bbs.westos.com ,如果111上westos.com.zones里面的ip变了,必须改serial的数字,(只能往大的数字改,最大10位)才会使得辅助dns同步过来,改完重启named服务。
在115端,将ip改为181,并且将serial的数从0改变到1
然后在215端,直接重启服务,然后dig www.westos.com
发现数据已经同步过来了。
辅助DNS配置成功
两台虚拟机都需要在防火墙中加入dns服务 selinux需要关闭 nameserver都是本机IP
9.如何进行远程更新
我们允许172.25.254.60 真机来添加更新DNS
首先给 /var/named/ 这个目录的用户组一个写的权限
vim /etc/named.rfc1912.zones 写入:allow update {172.25.254.60}
并且重启named服务
更新之前用cp -p westos.com.zone /mnt/ 备份一份
用172.25.254.60进行更新
测试:在115和215上分别dig test.westos.com 查看有没有同步
发现都已经同步。
恢复
再次在115和215中dig test.westos.com发现并不能找到对应关系
然后将115中的 /var/named/ westos.com.zone 和 westos.com.zone.jnl 删除即可,将之前备份的westos.com.zone cp -p 复制回来即可恢复。
10.如何通过密钥进行更新DNS
之前我们通过ip的方式更新DNS这样的做法其实不是很安全,这样别人就可以通过更改ip更新我的dns 先在给dns做一个钥匙,有钥匙才能更新,这样安全性更好。
==先systemctl start named ;systemctl stop firewalld
步骤一:
删除之前上一个更新实验的ip,保证纯净环境。
步骤二: 生成自己加密文件
步骤三: 在/mnt下面dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos 生成钥匙,在打开一个shell做无规则的敲击键盘,生成钥匙。
步骤四: 编辑自己的加密文件:加入钥匙名字和加密字符
步骤五: 编辑DNS文件,让它识别钥匙 vim /etc/named.conf
步骤六:
编辑DNS文件,使其允许钥匙加密更新 vim /etc/named.rfc1912.zones
步骤七: 进行更新
将钥匙通过scp发给真机172.25.254.15
然后更新
测试
在server端dig test.westos.com
成功更新
11.dhcp+DNS 组成动态域名解析ddns
一般动态分配ip,那么dns域名解析的ip就变了,客户会访问不到。 所以要将域名和ip的对应关系做好 dhcp将哪个ip给被访问域名,dhcp告诉dns 这样客户端才会正常访问一个域名内的主机
DDNS Dynamic Domain Name Server 是动态域名服务的缩写 DDNS是将用户的动态IP地址映射到一个固定的域名解析服务器上 用户每次连接网络的时客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主上的服务器程序 服务器程序负责提供DNS服务并实现动态域名解析
也就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样其他上网的用户就可以通过域名来进行交流 而最终客户要记忆的全部,就是记住动态域名商给的域名即可 动态域名服务的对象是指IP是动态的,变动的 普通DNS都是基于静态IP的,有可能是一对一或者多对多,IP都是固定的一个或者多个,但DDNS的IP是变动的,随机的。
实验步骤
在115上面搭建dhcp服务 yum install dhcp -y
搭建dhcp服务器
在215上,编辑网络配置文件
可见已经获取到dhcp动态ip:172.25.254.180
在115端,继续配置dhcp服务
重启服务
在测试机,215上面,改名 hostnamectl set-hostname test.westos.com
然后dig test.westos.com 发现是 172.25.254.180 对应test.westos.com
提供答案的server为172.25.254.115
改变dhcp的池的范围,然后再次在客户端重启网络,重新分配ip地址,再次dig test.westos.com ,发现ip改变为新的dhcp获取的ip。