一、DNS概述
1.什么是DNS
- 域名服务(Domain Name Service)
- 作用:为客户机提供域名解析服务器,即将域名解析成对应的IP地址
2.DNS服务器
- 一般DNS服务器是由运营商搭建的,比如中国的DNS服务器运营商:电信,联通,移动。
- 但是中大型公司中由于不信任互联网上的服务器,就会自己搭建一台DNS服务器,让公司的员工主机指向自己的DNS服务器。所以我们需要深入学习。(DNS基本内容详见day02、1 - IP地址与MAC地址笔记中的DNS)
3.DNS服务绑定端口号
- TCP53 ,UDP53
二、完全限定域名(FQDN)
1.域名组成概述
- 平时我们说"www.sina.com.cn"是一个域名。但是从严格意义上讲,"sina.com.cn"才被称为域名(全球唯一,且需要购买注册),而"www"是主机名(最后一级域名常称为主机名)。
- 主机名+域名称为完全限定域名(Fully Qualified Domain Name)
2.域名和主机名
-
域名:需要花钱购买,在平台上注册通过后方可使用,域名是唯一的。购买域名的网站https://wanwang.aliyun.com/
-
主机名:自己设定的名称,且无需花钱。
主机名是怎么设定的呢?比如现在公司买了sina.com.cn这个域名,现在公司中搭建一个网页服务器,提供网页服务,给这台服务器取名为www。结合起来www.sina.com.cn其实就表示这台服务器。现在又买了一台服务器提供邮件服务,但无需再买域名后缀了,那么给这台服务器取名叫mail,即mail.sina.com.cn。那么我们输入域名请求对应的服务时,就是请求提供此服务的服务器,和服务器之间进行通信。
-
但我们平时就混为一谈了,“www.sina.com.cn”就称为域名
3.域名的组成
-
树形结构(方便管理)
说明:
-
根域名为:
.
,不用我们手动输入,浏览器帮我们输入了 -
顶级域名:
-
国家顶级域 cn jp hk uk
-
商业顶级域
- com 商业机构
- gov 政府机构
- mil 军事机构
- edu 教育机构
- org 民间组织架构
- net 互联网
-
-
一级域名比较之前,需要花钱购买
-
二级域名如果处于最后一级域名则又可称为主机名
-
下面是上面的子域名
顶级域名个人根本买不起,也不让买
域名就是从根开始找到顶级域名再找到购买的一级域名再定位到二级域名(从世界定位到具体的一台服务器)
举例:www.baidu.com.
.为根域
.com为顶级域
baidu为一级域名
www为主机名
三、DNS解析过程(原理)
1.DNS解析全过程
-
图示:
-
过程文字说明:
-
一台客户机想通过域名
www.baidu.com
访问百度网页,就需要知道提供百度网页服务的服务器的IP地址,才能和www.baidu.com
这台服务器通信,享受百度网页的服务。(通信一定需要知道IP) -
先查找缓存,再查找本地hosts文件,都没找到才会请求主机上指定的DNS服务器(即本地DNS服务器)
-
本地DNS服务器可能也没有此域名的解析。就要去请求根域名服务器(全国只有十三台,且只要是台DNS服务器就一定内置了根域名服务器的IP地址)
因为DNS服务器能力是有限度的,比如这台服务器只负责
jd.com.
域名,它只能解析以jd.com.
为后缀的域名,即知道www.jd.com.
、mail.jd.com.
、blog.jd.com.
等服务器的IP地址。(一般称这种自己的配置文件中直接写明了域名与主机对应关系并被授权管理该域的DNS服务器为xxx的权威DNS服务器)但它不负责baidu.com
-
根域名服务器收到
www.baidu.com
域名,根域名服务器中也没有记录此域名对应的IP,但是它知道它的下一级域名服务器IP,即顶级域名服务器。所以将com.
域名服务器的IP发送给本地DNS服务器,让它去找com.
域名服务器 -
com.
域名服务器收到域名后,也没有直接记录对应的IP,但是它负责以.com.为域名后缀的一级域名服务器,所以将baidu.com.
域名服务器的IP发给本地DNS服务器,让它去请求baidu.com.
域名服务器 -
baidu.com.
域名服务器收到www.baidu.com
域名在自己的配置文件中找,发现记录有www.baidu.com.
这台服务器的IP,baidu.com.
域名服务器就将www.baidu.com
解析的IP地址发给本地DNS服务器因为
baidu.com.
DNS服务器负责管理以baidu.com.
为后缀域名的域名,比如www.baidu.com.
、news.baidu.com
、map.baidu.com
等域名,而这些域名已经是完全限定域名了,且以二级域名作为最后一级域名,则表名它其实就是一台名为news、map、www的服务器,负责提供对应的服务。所以将www.baidu.com
这台服务器的IP返回给本地DNS服务器,DNS再告诉客户机后,经过一系列复杂的过程,客户机与www.baidu.com
服务器建立通信,服务器就可以为客户机提供上百度网的服务了 -
DNS服务器收到后,会在自己的缓存中记录下
www.baidu.com
域名对应的IP地址,如果以后再有其他客户机请求这个域名的解析,就不用再去问其他DNS服务器了,自己的缓存中就记录了IP地址,(虽然此域名服务器不是负责解析www.baidu.com的权威域名服务器,但是缓存中有记录,就直接告诉客户机了)。接着将IP发给客户机 -
客户机收到
www.baidu.com
对应的IP地址,也会在缓存中记录,只要不注销关机,缓存段时间内是可以存在的,下次再用此域名去请求服务器时,就直接在缓存中查找,得到IP地址,就可以发送一些信息了
-
2.客户机域名请求解析顺序
-
DNS缓存
-
本地hosts文件
-
找本地DNS服务器
3.DNS服务器处理域名请求的顺序
-
DNS高速缓存(必须学会如何查看及清空)
-
DNS区域配置文件
-
DNS转发器
-
根提示
- 实例:
公司内搭建的DNS服务器解析过程
- 如果在公司内部搭建了一台DNS服务器,让员工主机指向公司内部的域名服务器。一般会给内部的NDS服务器安装一个转发器,让转发器指向当地的比较近的由运营商提供的DNS服务器。
- 原理:当员工向本地DNS服务器(公司内部的NDS服务器)发送域名解析请求,公司的DNS服务器先会在缓存中查找,没有就看自己是否是负责此域名的服务器(即看自己的配置文件中是否记录了此域名的IP),再没有由于此服务器安装了转发器,会将请求域名转发给设置好的运营商提供的DNS服务器,让运营商的DNS服务器去迭代请求–问根域一级一级的查找
- 像这种什么域名解析都不负责,叫缓存DNS服务器。当缓存中记录越来越多的域名解析,则就无需再向其他服务器询问了,会提高公司内部人员的域名解析速度
- 公司内部搭建DNS服务器的好处:
- 这样会大大减小公司自己的DNS服务器的压力。
- 在公司内部的DNS上可以任意创建区域,指定自己公司起的名字的域名对应的公司内部某个服务器的IP,那么公司员工通过公司内部的域名就可以访问公司的某某服务器,在公司外面就无法访问,因为其他的DNS服务器不知道这个域名是什么,无法解析,只有公司内部的DNS服务器知道
四、DNS解析方式种类
1.按照查询方式分类
-
递归查询:客户机与本地DNS服务器之间,即查询指定域名的IP得到的就是此域名的IP(所问即所答)
-
迭代查询:本地DNS服务器与根等其他DNS服务器的解析过程,即查询指定域名的IP得到的不是此域名的IP,而是其他域名服务器的IP(所问非所答)
2.按照查询内容分类
-
正向解析:已知域名,解析IP地址 (使用频率高)
-
反向解析:已知IP地址,解析域名
五、DNS服务器的种类
-
主要名称服务器
-
辅助名称服务器
-
根名称服务器
-
高速缓存名称服务器
一般称一台不负责任何区域的解析的DNS服务器,即不是任何域名的权威DNS服务器,缓存中只有从其它服务器问到域名对应的IP,这种服务器叫缓存DNS服务器
-
权威DNS服务器(SOA)
一般称自己的区域文件中直接写明了域名与主机对应关系(正向解析记录)并被授权管理该域的DNS服务器为xxx的权威DNS服务器
比如:现在一台DNS服务器创建一块区域
baidu.com
,则表示这台服务器专门负责以baidu.com
为域名后缀的域名,以后负责这个区域的域名解析。区域文件中就直接记录了比如www.baidu.com
,news.baidu.com
的IP地址,而www和news等又称为主机名,所以就是直接记录了域名与主机的对应关系。
六、解析记录类型
-
A记录: 正向解析记录
-
CNAME记录:别名
-
PTR记录:反向解析记录
-
MX:邮件交换记录
-
NS:域名服务器解析(有几台服务器负责这个区域)
-
SOA:开始授权机构(权威服务器)
七、DNS相关命令
1.手动解析域名
nslookup 域名 #单独对指定域名解析
nslookup #进入交互模式,可以解析多个域名
域名1
域名2
...
-
结果:
-
解释:
- 服务器:为本地DNS服务器的域名名称
- Address:为本地DNS服务器的IP
- 非权威应答:不是专门负责
baidu.com
的权威DNS服务器,而是其他DNS服务器中有此域名的解析缓存的应答 - 名称:
www.baidu.com
的真实域名 - Addresses:域名为
www.baidu.com
的服务器的IP地址,即提供百度上网服务的服务器的IP - Aliases:表示真实域名的别名
权威应答:由xxx权威DNS服务器解析出IP地址
非权威应答:其他服务器不负责此区域,只是道听途说,从其他DNS服务器那知道的,记录在缓存中。这种服务器解析出的IP地址
2.刷新DNS缓存
ipconfig /flushdns
3.显示本机DNS缓存
ipconfig /displaydns
八、DNS服务器搭建过程
1.DNS服务器搭建
-
要求服务器网卡IP是静态IP地址;NDS服务器地址指向自己
127.0.0.1
-
安装DNS服务器插件(也就是安装并开启TCP及UDP53端口)
-
查看53号端口是否开启
-
安装完成后在开始–管理工具中打开
-
-
创建区域文件(负责一个域名后缀的解析,比如以baidu.com为域名后缀,一台DNS服务器内可存放多个区域文件)
-
正向查找区域
右击–新建区域(这里的区域就是该服务器负责以该区域为后缀的域名解析,称为该区域的权威域名服务器) -
区域类型的选择:存根区域我们用不到一般都是国家创建;辅助区域为备用DNS服务器创建,可以直接从主DNS服务器中将上面的区域迁移过来,作为辅助DNS服务器;主要区域即负责的域名后缀解析,可以创建多个区域
-
区域名称即负责的的以该区域为后缀的域名解析,比如
baidu.com
,qq.com
,cuit.edu.cn
等 -
会自动创建区域文件:区域文件中可记录多条以此区域为后缀的域名(主机名+域名)比如:
www.qq.com
,mail.qq.com
等 -
此区域中会有两条自带的解析记录:SOA和NS
SOA:表示负责该区域(qq.com)的权威DNS服务器的主机名
NS:表示其他还有负责该区域解析的DNS服务器的主机名(可以有多个)
-
-
新建A记录
-
在正向查找区域空白处右击–新建主机(A),A记录又叫正向解析记录,A记录为以该区域为后缀的域名对应的IP。如果是一条完全限定域名,则二级域名又叫主机名,即为服务器的名称,不同的服务器提供该区域(qq.com)有关的不同服务,
www.qq.com
负责qq的网页服务,mail.qq.com
负责qq的邮件服务等。
-
2.辅助DNS服务器的搭建
-
在主DNS服务器上的操作
-
由于我们备份的是区域而不是服务器,所以右键区域(qq.com)–属性–区域复制–只允许区域复制到下列服务器–添加辅助DNS服务器的IP地址
注意:有些公司的DNS服务器这里有漏洞,不能允许所有,不然黑客把自己作为DNS,也可以从你这同步区域
-
-
在辅助DNS服务器上的操作
-
在右键新建区域后–选择辅助区域
-
选择主DNS服务器(做为哪台DNS服务器的备份就填哪台服务器的IP)
-
3.为DNS服务器设置转发器
-
对DNS服务器右键–属性–转发器–添加其他DNS服务器IP即可
4.设置DNS反向查找
-
当我们键入手动解析域名命令时:
nslookup www.qq.com
,主机会通过DNS服务器IP询问DNS服务器的域名,如果没有设置DNS反向查找,则Server会显示UnKnown,表示无法通过IP反向解析到DNS服务器的域名 -
所以要先给DNS服务器设置一个域名,即在正向查找区域创建一个A记录,为DNS服务器取一个主机名(假如为dns1),IP地址写DNS服务器的IP
-
然后再在反向查找区域新建区域,网络ID即为要查找的IP所在的网段(10.1.1.0)
-
在新建的反向查找区域空白处右键–新建指针–主机IP即为DNS服务器IP,主机名即为刚创建的DNS服务器的主机名
-
再次手动解析IP,即可得到主机上本地DNS服务器的域名
5.为域名的主机名起别名
-
区域空白处右键–新建别名–为某域名的主机名起别名
不仅可以通过
www.qq.com
来访问也可以通过haha.qq.com
来访问