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服务器拒绝回答 |
搭建实验环境:
步骤一:
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服务
此时发现不能启动,再打开一个shell,随便敲击键盘,然后发现服务起来了,因为加密字符太短,我们敲击键盘使加密字符变长,服务就可以启动了。
在/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
然后用server 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端口进行邮件发送
SMTP
简单邮件传输协议(simple mail server transfer protocol ,SMTP)是在internet传输mail的事实标准协议
SMTP是一个相对简单的基于文本的协议,在其之上指定了一条消息的一个或多个接受者(在大多数情况下,被确认是存在的)然后文本消息会被传输
可以简单的通过telnet程序来测定定一个SMTP服务器,SMTP使用25端口
要为一个给丁的域名决定一个SMTP服务器需要使用MX(mail exchange)DNS
简单邮件传输协议(simple mail server transfer protocol ,SMTP)是在internet传输mail的事实标准协议
SMTP是一个相对简单的基于文本的协议,在其之上指定了一条消息的一个或多个接受者(在大多数情况下,被确认是存在的)然后文本消息会被传输
可以简单的通过telnet程序来测定定一个SMTP服务器,SMTP使用25端口
要为一个给丁的域名决定一个SMTP服务器需要使用MX(mail exchange)DNS
在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 复制回来即可恢复。
怎样通过密钥来更新
之前我们通过ip的方式更新dns这样的做法很不安全,别人通过ip可以更新我的dns
先在给dns做一个钥匙,有钥匙才能更新这样做更安全
key “westos” {
algorithm hmac-md5;
secret “自己生成的key”;
};
include “/etc/westos.key”;
vim /etc/named.rfc1912.zones
zones “westos.com” IN {
type master
file “westos.com.zone”
allow-update { key westos; };
also-notify { 172.25.254.117; };
};
一般动态分配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是变动的、随机的
随着市场需求的变化,DDNS需求功能也越来越多,越来越要求方便,市场现在已经有了不少第三方DDNS方支持的设备
在主DNS里安装dhcp服务
按照以前的方法配置dhcp
并且在dhcp的配置文件中加入:
ddns-update-style interim;
key westos {
algorithm hmac-md5;
secret 加密字符串==;(cat /etc/westos.key查看)
};
zone westos.com. {
primary 127.0.0.1; 回环接口比较安全
key westos;
}
systemctl restart dhcpd
systemctl restart named
systemctl stop firewalld
测试:
在测试客户端上:改主机名为test.westos.com
修改网络为dhcp
重启网络 systemctl restart network
ip addr show ---->查看分配给自己的ip
dig test.westos.com 查看结果
很明显,ip都为172.25.254.239,所以实验成功。
注意,不要开启主DNS防火墙的地址伪装功能
也可以三台主机做 两台做服务端 一台做客户端 客户端为dhcp获取ip
一台为dhcp服务器 一台为dns服务器 一台为客户端
dhcp这台主机获取ip的方式为静态
dns这台主机获取ip的方式为静态
客户端获取ip的方式为动态
将客户端的名字改为news.westos.com
dig news.westos.com
做法和两台主机一模一样