dns的定义
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务
作为将域名和IP地址相互映射的一个分布式数据库,帮助人们方便的访问互联网
DNS使用的是TCP和UDP端口53
dns的功能
例如:我直接在浏览器里面输入域名www.baidu.com,浏览器并不知道这是谁,只有通过dns找到域名对应的ip我才可以正常的访问百度
它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
DNS使用TCP和UDP端口53,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
dns的分类
权威名称服务器(权威dns:直接有客户需要的答案,客户给一个域名直接就能访问)
存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据
权威名称服务器的类型包括:
Master : 包含原始区域数据,有时称作 “主要 ”名称服务器
Slave : 备份服务器 ,通过区域传送从 Master 服务器获得的区域数据的副本,有时称作 “次要 ”名称服务器
非权威 / 递归名称服务器(非权威dns里面直接没有客户需要的答案,但它会通过问114.114.114.114等权威DNS找到答案给用户(相当于代购))
客户端通过其查找来自权威名称服务器的数据
递归名称服务器的类型包括:
仅缓存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性
DNS 查找的步骤
客户端上的 Stub 解析器将查询发送至 /etc/resolv.conf 中的名称服务器
如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端
如果名称服务器在其缓存中有请求的信息 ,则会将非权威答案发送至客户端
如果缓存中没有该信息 , 名称服务器将搜索权威名称服务器以查找信息
从根区域开始 , 按照 DNS 层次结构向下搜素 , 直至对于信息具有权威性的名称服务器 , 以此为客户端获得答案
在此情况中名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找
简单来说,权威和非权威的两种查询方式都要明白原理是怎样的
DNS系统中,常见的资源记录类型
主机记录(A记录) | A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上 |
---|---|
别名记录(CNAME记录) | CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录 |
IPv4主机记录(A记录) | 用于将特定的主机名映射到一个主机的IPv4地址 |
IPv6主机记录(AAAA记录) | 与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址 |
服务位置记录(SRV记录) | 用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等 |
NAPTR记录 | 它提供了正则表达式方式去映射一个域名,NAPTR记录非常著名的一个应用是用于ENUM查询 |
PTR | IPv4/IPv6 地址至名称 |
MX | 用于名称的邮件交换器 ( 向何处发送其电子邮件 ) |
NS | 域名的名称服务器 |
SOA | ” 授权起始 “ , DNS 区域的信息 ( 管理信息 ) |
DNS 排错(它显示来自 DNS 查找的详细信息 , 其中包括为什么查询失败)
NOERROR | 查询成功 |
---|---|
NXDOMAIN | DNS 服务器提示不存在这样的名称 |
SERVFAIL | DNS 服务器停机或 DNSSEC 响应验证失败 |
REFUSED | DNS 服务器拒绝回答 ( 也许是出于访问控制原因 ) |
步骤一:reset并且开启我的desktop虚拟机和server虚拟机
步骤二:给desktop虚拟机和server虚拟机配置网络
步骤三:使虚拟机desktop可以上网,并且可以ping通114.114.114.114
查看真机的ip
可以看出我的真机的ip为172.25.254.61与172.25.61.250
开启真机的路由功能
可见真机的路由功能已经开启
开启真机防火墙的伪装功能
可见真机防火墙的伪装功能已经开启
用配置文件的方法给desktop主机设置ip为172.25.254.111
给desktop主机设置网关172.25.254.61
检查虚拟机是否能上网?
可以看出desktop虚拟机可以ping通真机了
(在内网里面搭建一台高速缓存dns服务器,属于非权威dns,目的是为了提高内网的访问效率)
(1)实验背景
为什么要搭建高速缓存dns服务器?
当一个企业内网里面的每一台主机都要访问114.114.114.114这个权威dns进行域名解析(原理要知道)
但是内网通往114.114.114.114只有一根传输线,此时每台的访问速率都非常慢
内网访问外网速率较慢,但内网之间进行访问速率快
现在我们想把企业内部里面的一台服务器搭建成高速缓存dns,其他主机不再需要问114.114.114.114,直接问高速缓存dns服务器即可
只需要高速缓存dns去问114.114.114.114,然后把自己要到的东西共享给其他主机
这一我所搭建的这个高速缓存dns属于非权威dns
(2)实验原理
在172.25.254.111上面搭建高速缓存dns,在/etc/resolv.conf中写 nameserver 114.114.114.114
在172.25.254.211上面进行测试,在/etc/resolv.conf 写nameserver 172.25.254.111
也可以再开一台虚拟机,一共三台主机
1是dns,2访问1比较慢,因为此时1需要去向114要东西,3再次问1要和2要的同样的东西的时候就很快(1已经问114要过,不再去要)
(3)实验步骤
步骤一:在111上搭建告诉缓存dns服务器
高速缓存dns的搭建需要/etc/rndc.key这个文件的存在(如果加密字符太短就不存在)
systemcel start named (起不来)开启以后这个文件才会存在,存储加密字符
此时敲击物理键盘,使他的加密字符变长,此时这个文件才会有,系统才会起来
cat /etc/random 敲击物理键盘
cat /etc/rndc.key就有了
使111非权威dns不再向114权威dns询问,向自己询问,这个也属于文件共享想搭建一个类似114功能的dns服务器
步骤一:vim /etc/resolv.conf nameserver 172.25.254.111(改成自己)
步骤二:vim /etc/named.conf去掉114 如果直接在这个文件里面写入域名的管理的话会时文件内容冗长,排错难
步骤三:vim /etc/named.rfc1912.zones(这个文件和上述文件的作用一样)
步骤四:cd /var/named必须切换到这个目录下
cp -p named.localhost westos.com.zone(-p是为了改westos.com.zone这个文件的权限)
ll可以看到这个文件的权限
步骤五:vim westos.com.zone
写入:主机名字 ip地址(我要在这个域名里面找什么主机就写什么)
systemctl restart named
如果上述服务起不来
/var/log/messages
systemctl restart named
cat /var/log/messages 在日志里面找解决办法
测试在211里面:
dig bbs.westos.com 找westos.com这个域里面的主机
如果dig www.westos.com dns.westos.com. lee.westos.com.就会说它解析不到
我们平常发送邮件都是先登陆腾讯的服务器,再将邮件发出去
qq.com这台服务器将[email protected]这个邮件发送
需要通过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 record)是域名系统(DNS)中的一种资源记录类型,用于指定负责处理发往收件人域名的邮件服务器
MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器
简单邮件传输协议(SMTP)会根据MX记录的值来决定邮件的路由过程
在dns服务器上面netstat -antluep | grep master 查看25端口是否开启
在DNS服务器的meng.com.zone文件中加入以下内容,并重启服务
测试:在客户端给服务器发送邮件
注意:以上所讲解的和dns服务器相关的全部是正向解析,也就是通过域名找ip
PTR:IPv4/IPv6地址----->名称
正向解析和反向解析是分开的,二者没有任何关系
步骤一:vim /etc/named.rfc1912.zones
步骤二:cd /var/named
步骤三:systemctl restart named
测试:在211上面测试 dig -x 172.25.254.233
根据ip找域名
(1)什么是双向解析?
使特定的用户使用特定的解析文件,内外分开
先在我们为了做实验方便
将此台主机看作内网主机172.25.254网段,将除过此台主机以外的主机看作外网主机1.1.1网段
(2)实验步骤:
cd /var/named
ls
cp -p westos.com.zone westos.com.inter.zone
vim westos.com.inter.zone
将所有的172.25.254网段换成1.1.1网段
%s172.25.254/1.1.1/g
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter.zones
vim /etc/named.rfc1912.inter.zones
将原来的改为westos.com.inter.zones
vim /etc/named.conf
systemctl restart named
测试:
在111这个内网主机上面 dig bbs.westos.com 显示为172.25.254.网段提供解析
在211这个外网主机上面 dig bbs.westos.com 显示为1.1.1.网段提供解析
多台dns 为主dns建立辅助dns
步骤如下:
先在111上注释掉之前的双向解析
systemctl restart named
在辅助dns里面安装dns
配置yum源
yum install bind -y
在211主机上hostnamectl set-hostname dns-slave.westos.com
vim /etc/named.conf 改东西(一共改三行,早上已经讲过)
netstat -antlupe | grep named 看53端口是否开启
vim /etc/named.rfc1912.zones
写入:
type slave;(辅助型)
masters {172.25.254.111;};(为111主机服务)
file "slaves/westos.com.zone";(在slaves/这个目录下同步westos.com.zone)
systemctl restart named
cd /var/named/salves
ls
systemctl restart named
ls 看这个目录是否存在,并且已经同步文件过来
vim /etc/resolve.conf
nameserver 172.25.254.211
火墙要关闭
在111主机上面:
vim /etc/named.rfc1912.zones
写入:
allow-transfer {172.25.254.211;};企业6需要,企业7不需要
also-notify {172.25.254.211;};也使用211主机
测试:在两端dig bbs.westos.com
如果172.25.254.111上 westos.com.zones里面的ip变了,必须改serial的数字(只能往大的数字改最大10位)才会使辅助dns同步过来
改完重启systemctl restart named
之前每次该完配置文件都要重启服务才会生效
现在即改即生效
备份cp -p westos.com.zone /opt/
关闭selinux
chmod 770 /var/named/
vim /etc/named.rfc1912.zones
写入: allow-update {172.25.254.111;};
systemctl restart named
进行更新:
nsupdate 回车
server 172.25.254.111
update add test.westos.com 86400 A 172.25.254.111
send
quit
测试:在111和211主机上面分别dig test.westos.com看新建的没有手动重启是否自动同步过来
恢复:
nsupdate 回车
server 172.25.254.111
update delete test.westos.com
send
quit
cp -p /opt/westos.com.zone /var/named/
之前我们通过ip的方式更新dns这样的做法很不安全,别人通过ip可以更新我的dns
先在给dns做一个钥匙,有钥匙才能更新这样做更安全
先systemctl start named;systemctl stop firewalld
步骤一:删除之前的ip更新(上一个实验验证完我直接就删了,否则如果忘记恢复环境会影响下一个实验效果)
步骤二:生成自己的加密文件cp -p /etc/rndc.key /etc/westos.key
步骤三:在/mnt下面dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos 生成钥匙
先用真机ssh连上dns服务器,然后进入虚拟机控制台输入一些字符,这样才会顺利生成钥匙
步骤四:编辑自己的加密文件:加入钥匙名字和加密字符
cat /mnt/Kwestos.+157+63271.private 在这个文件里面查看加密字符
vim /etc/westos.key 在dns服务器自己的加密文件中写信息
步骤五:编辑dns文件,使其识别钥匙 vim /etc/named.conf
步骤六:编辑dns文件,使其允许钥匙加密更新 vim /etc/named.rfc1912.zones
步骤七:进行更新
nsupdate -k /mnt/Kwestos.+157+63271.private
server 172.25.254.111
update add test.westos.com 86400 A 172.25.254.111
send
quit
步骤八:测试 在211上面dig bbs.westos.com
一般动态分配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方支持的设备
步骤如下:实验用两台主机
步骤一:在111主机上面恢复原来的环境
cd /var/named
ls查看jnl文件
rm -rf westos.com.zone*
cp -p /opt/westos.com.zone .
步骤二:ll查看属性
步骤三:vim meng.com.zone(删除之前所有的,只留dns)
systemctl restart named
步骤四:在111面安装dhcp服务
yum install dhcp -y
按照以前的方法配置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
步骤五:vim meng.com.zone
加入news 172.25.254.121
步骤六:测试:在211上面
hostnamectl set-hostname news.westos.com
hostnamectl
vim /etc/sysconfig/network-scripts//ifcfg-eth0
none----->dhcp
systemctl restart network
ifconfig 查看ip是不是动态获取的
cat /etc/resolv.conf
nameserver 172.25.254.111
这台主机上面news.westos.com----->ip(动态)怎样给一个确定的关系?
dig news.westos.com
看211主机的ip地址与域名的对应关系是否恢复过来了
注意:
也可以三台主机做 两台做服务端 一台做客户端 客户端为dhcp获取ip
一台为dhcp服务器 一台为dns服务器 一台为客户端
dhcp这台主机获取ip的方式为静态
dns这台主机获取ip的方式为静态
客户端获取ip的方式为动态
将客户端的名字改为news.westos.com
dig news.westos.com
做法和两台主机一模一样