目录
一、DNS基础
1、DNS是什么?
1.1、正向解析查询过程:
2、DNS使用的协议及端口号
3、DNS系统服务类型
3.1 主域名服务器
3.2 从域名服务器
3.3 缓存域名服务器
3.4 转发域名服务器
4、DNS域名体系结构
5、两种查询方式
5.1 递归查询(内网)
5.2 迭代查询(外网)
5.2 递归和迭代的区别
6、访问百度的流程 ☆☆
1、DNS解析(递归解析方式)
2、开始进行DNS的迭代解析
3、DNS服务器返回给客户端(用户端),此时用户端接收到了www.baidu.com域名与IP的映射关系
4、建立连接通道后,根据http/https协议进行传输数据
二、正向解析实验
1、查看并安装NDS服务软件
2、修改全局配置文件
3、修改区域配置文件
4、修改区域数据配置文件
5、开启named服务
6、在另一台虚拟机配置解析域名
7、开始解析验证
总结
DNS域名系统 (Domain Name System 缩写为:DNS)是因特网的一项核心服务,它作为可以将 域名 和 IP地址 相互映射的一个分布式数据库,能够使人更加方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
DNS的作用:
正向解析: 根据域名查找对应的IP地址(A记录)
正向解析---域名解析为 ip :可以多对一,ip主机可以设置多台,起到备份冗余作用。
反向解析:根据IP地址查找对应的域名(反垃圾邮件的验证)(P记录)
反向解析---ip 解析为 域名 :只能1对1(假如虚拟化的话,可以多对一)
分离解析: 同一个dns服务器,同一个域名情况下,不同网段进行访问会解析出不同的IP地址。
主从解析:
内网
①先查本机的缓存记录 ②查询 /etc/hosts (映射)文件 ③查询dns域名服务器,交给dns域名服务器处理 /etc/resolv.conf
外网
1、这个 dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
2、求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
3、求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
4、求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
5、本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
DNS的默认端口为53 DNS端口分TCP和UDP
① TCP是用来做区域传送,多用于主从同步在一个区中主DNS服务器从自己的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的DNS服务器中读取该区的DNS数据信息
② UDP是用来做DNS解析的,域名(FQDN)通常由一个完全合格域名标识,他能准确表示其相对于DNS域树根的位置,也就是节点到DNS树根的完整表达方式,从节点到树根采用反向书写,并将每个节点用 “ .” 分隔。 FQDN有严格的命令限制,长度不能超过256个字节,只允许a-z,0-9,A-Z和减号表示
特定DNS区域的权威服务器,具有唯一性
负责维护该区域所有 域名->IP地址 的映射记录
需要自行建立所负责区域的地址数据文件
解释: 负责维护一个区域的所有域名信息,是特定的所有新的权威信息源,数据可以修改,构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
也成辅助域名服务器,是对主域名服务器的热备份
其维护的 域名-> IP地址 记录来源于主域名服务器
需要从主域名服务器自动同步区域地址数据库
解释: 当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务,从域名服务器提供的解析结构不是由自己决定的,而是来自主域名服务器。构建从域名服务器时,需要制定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
只提供域名解析结构的缓存功能,目的在于提高查询速度和效率,但没有域名数据库,它从某个远程服务器取得每次域名服务器查询的结构,并将它放在高速缓存中,以后查询相同的信息时用它给予相应,缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息,构建缓存域名服务器时,必须设置根域或指定其它DNS服务器作为解析来源。
负责所有非本地域名的本地查询,转发域名服务器接到查询请求后,在其缓存中查找,如果找不到就将请求一次转发到指定的域名服务器,直到查看到结果为止,否则返回无法映射的结果。
DNS整个结构图是树状结构,最顶层称为根域,用点“ . " 表示,相应服务器称为根服务器,整个域名空间的解析权都归根服务器所有。 所有的域名必须以点结尾
根域: 位于树状结构最顶层,用“ . ”表示。
顶级域: 一般代表一种类型的组织机构或国家地区
二级域: 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理。
子域: 二级域下所创建的各级域统称子域,各个组织或用户可以自由申请注册自己的域名。
主机: 主机位于域名空间最下层,就是一台具体的计算机。
顶级域和二级域的区别
顶级域是代表类型的组织或国家地区,二级域属于顶级域之下的域名。
当我们访问一个网址时,有些网址没有顶级域(国家地区),那么它的二级域就会充当顶级域,如果有的网址有顶级域的话,我们访问该网址时,顶级域也可以不用加上,因为顶级域代表的国家地区,我们在国内访问该网址会默认国家地区。
而且有一些网址没有向根域申请顶级域(因为网址范围较小,国内够用),那么在根域上也不会有顶级域的对应关系。自然它的二级域就成为了顶级域。
组织域和地理域(顶级域)
组织模式顶级域名 | 含义 | 地理模式顶级域名 | 含义 |
---|---|---|---|
com | 商业组织 | cn | 中国 |
edu | 教育机构 | hk | 香港 |
gov | 政府部门 | mo | 澳门 |
Mil | 军事部门 | tw | 台湾 |
net | 网络供应商 | us | 美国 |
org | 团体组织 | uk | 英国 |
int | 国际组织 | jp | 日本 |
114.114.114.114 是国内移动、电信和联通(三大运营商)通用的DNS,手机和电脑端都可以使用。
8.8.8.8是Google公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
223.5.5.5和223.6.6.6:阿里云DNS
递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结构回复客户机,如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其它服务器,并将返回结果提交给客户机。
解释: 客户机给与DNS之后,只要等待DNS服务器回应解析结果的这种解析方式
当客户机发送查询请求时,DNS服务器并不是直接回复查询结构,而是告诉客户机另外一台DNS服务器地址,客户机再向这台DNS服务器提交请求,一次循环直到返回查询的结果为止。
解释: 客户机自行找不同等级的域名服务器询问域名-ip解析关系
客户端--->本地DNS服务器,这部分属于 递归查询 ,返回的结果只有两种:查询成功或查询失败。
本地DNS服务器--->外网,这部分属于 迭代查询 ,又称作为重指引,返回的是最佳的查询点或主机地址。
①首先查看本地缓存是否有【域名-IP地址】映射关系,有的话直接使用,没有进行下一步。
②尝试解析/etc/hosts解析文件(DNS解析,本地配置),有的话直接用,没有进行下一步。
③通过/etc/resolv.conf 配置文件中指定的DNS服务器(代理服务器)的位置,请求解析www.baidu.com 域名和IP的映射关系。
①首先DNS服务器接收到请求后,向根域服务器请求解析
②根域服务器返回给DNS服务器后,向顶级域服务器请求解析
③顶级域服务器返回给DNS服务器后,再依次向二级域、子域进行请求解析
④直到将www.baidu.com 这个域名全部解析完成,找到对应的IP映射关系,然后返回给DNS服务器
①保存在本地的缓存中
②根据请求的协议类型,向www.baidu.com 服务器进行连接(三次握手建立连接)
查看配置文件(全局配置文件、区域配置文件、区域数据配置文件)
vim /etc/named.conf
配置说明
options {
listen-on-v6 poet 53 { 192.168.100.22; }; #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
# listen-on-v6 port 53 { : :1; }; #ipv6行如不使用可以注释掉或者删除
directory "/var/named"; #区域数据文件的默认存放位 置
dump- file "/var/ named/data/cache_ dump . db"; #域名缓存数据库文件的位置
statistics-file "/var/named/data/named stats.txt"; #状态统计文件的位置
memstatistics-file "/var/named/data/named_ mem_ stats. txt"; #内存统计文件的位置
allow-query
{ any; }; #允许某个网段(192.168.100.0/24)的IP使用DNS解析服务,也可用any代表所有
vim /etc/named.rfc1912.zones
配置文件说明
zone "xiaogang.com" IN { #正向解析“. "根区域
type master; #类型主服务器
file "xiaogang.com.zone"; #区域数据文件为xiaogang.com.zone,对应查找。
allow-update {none; }; #定义是否更新其它从服务器,none表示无从设备更新,有其它服务器可以设置其它服务器的ip地址。
};
首先选中正向还是反向解析,然后设置需要解析的域名,定义主服务器,定义区域数据文件的文件名(跟上面函数类似),是否允许其它主机从这进行更新数据。
查看以前的区域数据文件
cat /var/named/named.localhost
以原区域数据配置文件的为模板,复制一份在本地,并且修改名称为区域配置文件所指定的文件名
区域数据配置文件内容介绍
$TTL 1D #设置缓存解析结果的有效时间
@ IN SOA xiaogang.com. admin.xiaogang.com. (
0; serial .
1D; refresh
1H; retry
1W; expire
3H ) ; minimum
NS xiaogang.com. #记录当前区域的DNS服务器的名称
A 192.168.100.22 #记录主机IP地址
IN MX 10 xiaogang.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.100.100 #记录正向解析www.ky20.com对应的IP
mail IN A 192.168.100.200 #CNAME使用别名,ftp是www的别名
* IN A 192.168.100.250 #泛域名解析,“*"代表任意主机名
设置域名和ip的映射,以及各种主机名所对应的关系(配置的时候注意下面的点)
注释掉原来的域名
添加新域名
DNS就是一个域名解析服务
可以正向解析:将域名解析成ip地址
也可以反向解析:将ip地址解析成域名
域名的结构
比如www.baidu.com.cn.
从右往左看:
. 表示根域。
cn表示顶级域(部分网址没有,因为它代表过家,大型网址向国外请求才会分配到)。
com:表示二级域(当前面的顶级域不存在时,它就是顶级域)
baidu :表示子域。
www :表示主机名。
域名解析过程:主要有递归查找和迭代查找
递归查询:客户机只要发出解析的请求,递归查询都会返回一个结果,不管是否能查询到。
迭代查询:客户机发出解析请求,迭代查看不会返回一个结果,而会请求其它服务器,直到最终返回查询结果为止。