前面是有关DNS的相关理论知识,懂了的可以直接跳到第五点。
说明一下:作为服务器ip最好固定下来,以DNS服务器为例子,如果客户机的填写DNS信息的之后,服务器的ip如果变动了的话,客户机都得跟着改,学过DHCP服务器的宝子都应该知道,不知道的宝子看我栏目的DHCP服务器博文,可以通过DHCP预留ip给指定服务器,此种方式在客户端是动态获取的,而且每次都会获取同一个ip,比较灵活。另一种是自己静态配置,如果客户机固定不动,静态配也行,但是如果客户机还会移动到别的网络环境下,那又得改ip比较麻烦。大家根据实际情况自行选择。
一、DNS
域名解析服务器,国际比较通用的域名解析服务器有8.8.8.8 114.114.114.114。当然大型公司也有自己的域名解析服务器。域名解析服务器是将用户访问的域名找到其对应的服务器IP,然后将ip发送给用户。DNS服务是53端口号。
域名解析查询的步骤:
客户机:DNS缓存-本地host文件-本地服务器。
服务器:DNS高速缓存--本地区域解析文件--转发器--根
二、域名概述
如"www.qq.com"是一个完全限定域名(主机名.域名 )全球唯一,一般是我们嘴里的域名,但是严格来说,"qq.com"才被称为域名(全球唯一),而"www"是主机名。
一个域名下可以有多个主机,域名全球唯一,那么"主机名.域名"肯定也是全球唯一的。
以"qq.com"域名为例,去网上查询一下我们能够看到有:
1. http://www.qq.com:腾讯公司的官方网站;
2. http://mail.qq.com:腾讯公司的邮箱服务;
3. http://qzone.qq.com:腾讯公司的社交网络服;
4. http://3g.qq.com:腾讯公司的3G网络服务。
我们可以看到主机名有www/mail/qzone/3g,这些主机名是根据服务提供的服务来命名的。假设我有一台服务器(IP地址是 183.183.10.10)提供邮箱服务,我申请了一个域名叫fafa.com 那么我这台提供邮箱服务的机器的主机名就设置为mail,那么我的完全限定域名就叫做:mail.fafa.com。
由此可见,我们的一个域名可以拥有多个完全限定域名。
三、域名的组成:
........四级域名,三级域名,二级域名,顶级域名,.根域名(一般不显示,www.qq.com.),越靠近(.根)域名的域名越值钱,越是后面的域名越不值钱。
如:www.baidu.com.
.为根域
com为顶级域(还有其他顶级域名:net,org,edu,gov,mil等)
baidu为二级域名
www为三级域名(主机名)
四、DNS服务器解析域名的过程
第一种是权威应答(递归查询)
就是你的请求发送给指定的DNS服务器,而该服务正好能够解析出你请求域名的ip,就直接将域名解析的ip信息发给你,那么这就是权威应答。
此图中:
客户机向B服务器发送域名解析请求,B服务器查到了信息就直接发给了用户。
第二种是非权威应答(迭代查询)
指定的服务器无法解析出你发送的域名请求时,最后经过一些列的操作得到的信息就是非权威应答。
此图中:
客户机想解析www.sohu.com时,信息发送给13.2.1.2这个域名解析服务器B,因为B只负责net的域名,com的域名解析不了,就找根(注意:不论谁,解析不了都找是直接找根,每一台DNS服务器都存有根服务的ip)。
根收到请求后,会从后开始查,一般只负责顶级域名的服务器,查询到com是42.6.1.8服务器C负责的,就把这个消息(服务器C的ip)发送给B,
B收到后就给服务器C发送请求, C收到后解析发现sohu不是自己管的,但是知道sohu是谁负责,就将管sohu的服务器E的ip发送给给B,
B再给E发送请求。 E找到域名对应的IP后会发给B,然后 B会缓存这个信息 并把这个信息发给客户机,此时就是非权威应答。
客户机也会缓存,客户机缓存还未清除的时候,再次访问sohu就不会再次解析了。
一般公司里面如果建立一台本地的域名解析服务器的话,最好是使用域名转发,让其他DNS域名解析器帮助解析,减轻本地域名解析服务的负担。当然如果不做域名转发的话,本地DNS解析器也是能通过上图,先找根,然后层层迭代,最终找到域名对应的ip的。
五、搭建DNS服务器
实验条件:windows server2019服务器+win 10客户机(均是虚拟机)
1,可以固定服务器的ip,也可以不固定。如果过动态分配IP的话,当前租的ip过期后,下次获取的可能不是同一个ip,这个静态ip可以用你现在服务器所在的ip,用ipconfig查询到的IP,填入下面即可固定。
2,安装DNS服务
打开服务器管理器--添加角色和功能--后面三步直接下一步
选择DNS服务器--添加功能--下一步
安装完成
此时的服务器是缓存服务器,前面第二个案例图提到过,DNS会做缓存,这样能提高我们上网的速度,具体解析的服务可以用域名转发的方式让别的服务器去做解析,这样又轻松又高效。
六、模拟客户机使用本地DNS服务器
前提准备:服务器已经安装好了DNS服务,客户机和服务器在同一网段,这里两台服务器我选择的联网模式都是NAT,(如果不选择NAT,或者桥接的话-其实也就是无法连接外网的话,那么我们的DNS服务器就在解析不出域名的情况下,就不能访问到根,但是这不影响我们的此次实验,实验的目的是要完成客户机像DNS服务器发送域名解析的请求,并将结果返回给客户机,解析不出来也是一个结果。)
1、DNS服务器新建一个区域
这里创建的内容就是自己玩玩,也就是说在公司搭建的本地DNS服务器目的就是为了公司员工使用的,如果你离开了公司,就不一定能访问得到某域名了。
2、客户机手动添加本地DNS服务器ip,
现实工作中,会有DHCP服务器到时候就在DHCP服务里面取设置DNS的ip即可。
3、测试(以下方式都可)
相关命令:
ipconfig /flushdns 清除DNS缓存
ipconfig /displaydns 查看DNS缓存
1)在客户机上测试使用ping命令:ping命令是要先解析域名,再发送请求包,因此可以检测域名解析服务器是否生效。前面我配的mail.qiqiu.com 对应的ip是私有ip,同时和我现在客户机不在同网段,因此是ping不通的。
客户机上已经有了这个mail.qiqiu.com的缓存记录
2)在客户机上测试使用nslookup查询
3)查看客户机和DNS服务器上的缓存
在客户机上ping qq.com
在客户机上ping baidu.com
前面说过,ping命令是要有域名解析这个过程的,因此能留下缓存。
七、模拟域名转发
域名转发:前面提到过,就是自己解析不了的,给到指定的另一台域名解析服务器,因此这里我克隆了windows server 2019,作为另一台域名解析服务器(模拟互联网上的非本地的服务器),联网模式我这里选的是桥接。
1)添加第二台DNS服务器器
在另一台(互联网)DNS服务器上新建正向查找区域,步骤和前面一样,这里我将区域名设定为baidu.com,主机名设为www
2)本地服务器添加转发指向
(对于本地服务器来说,就是说我解析不了,我让我指定的对象去解析--甩保留再说)
3)验证
客户机端输入nslookup查看和ping www.baidu.com
八、反向解析
反向解析就是已知ip,获取域名的过程,在前面使用nslookup的时候,就存在这么一个过程,客户机在服务器在发送解析的内容之前,还会贱贱的发送了一个反向解析的请求,就是想知道解析域名的服务器的域名叫什么。就是下图黄色框标记出的一段内容,由于服务器没有配这个反向解析,所以就没做应答。
反向解析对于安全来说是起到一定作用的,当一个ip给你发送数据,你请求反向解析能够验证该IP是不是你心目中的那个域名,如果不是就可能是别人冒充的。
接下来为DNS服务器配这个反向解析
1)为服务器创建域名
给服务器一个域名dns01.zhuzhu.com,步骤和前面创建正向区域一样,只不过ip设置的时候要设置为服务器的ip。右击正向查找区域--新建区域--输入区域名称(zhuzhu.com)--默认下一步,完成;右击新建的区域--新建主机A如下图:
2)添加反向查找区域
右击反向查找区--域新建区域--下一步--主要区域(下一步)--下一步--输入网络ID--后面都是下一步--完成(此过程需要注意的地方已截图,其他都是下一步)
3)添加指向
右击前面新建的反向查找区域--新建指针--重要的已经截图,其他都是下一步
创建完成,此时使用nslookup 就会生效。
九、别名
CName是给域名取一个别名,取别名是为了方便客户能快速访问到自己。如图所示:
在本地DNS服务器的区域上新建别名
在客户机上验证: