1、什么是dns
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解 析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)
1.1、dns的实现方式
方法一 : 本地host文件
方法二 : 安装软件服务
本地名称解析配置文件:hosts
1.2、本地host文件
早期用的解析域名的方式,在一个文本中写上ip与域名
文件位置:
windows:/c/windows/system32/drivers/etc/host
linux:/etc/hosts
知道现在本地host文件的优先级还是最高的
2、DNS系统的作用
其作用为解析
但可以正向和反向解析
正向解析:将域名转换为ip地址
反向解析:将ip地址转换为域名
3、DNS服务器类型
-
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
-
主域名服务器:管理和维护所负责解析的域内解析库的服务器
-
从域名服务器
从主服务器或从服务器"复制"(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
4、DNS查询类型及原理
4.1、查询方式
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
4.2、查询原理过程
正向解析查询过程:
- 先查本机的缓存记录
- 查询hosts文件
- 查询dns域名服务器,交给dns域名服务器处理 以上过程成为递归查询:我要一个答案你直接会给我结果
- 这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
- 求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
- 求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
- 求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
- 本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
5、BIND
应用最广泛的DNS服务程序
执行进程为 /usr/sbin/named
主配置文件在 /etc/named.conf
域名文件 /etc/named.rfc1912.conf
数据库文件 /var/named/*.zone
但是个程序都会有漏洞,而root的权限太高
所以为了防止黑客,BIND会自动创建一个用户,名为named
6、正向解析
yum install -y bind bind-utils.x86_64
安装bind
vim /etc/named.conf
配置
vim /etc/named.rfc1912.zones
修改配置文件
cd /var/named/
cp -a named.localhost heitui.com.zone
将模版文件复制
vim wqxxx.com.zone
修改wqxxx.com.zone配置文件
systemctl start named
启动bind程序
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改网卡配置中的dns服务器
systemctl restart network
重启网卡
nslookup www.wqxxx.com
测试