DNS服务
使用背景
在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个完整域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
DNS的定义:
DNS是"域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS.
每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS的域名解析方式
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
域名结构
以新浪网为例:www.sina.com.cn.
二级域可以没有,或者可以理解为二级域和子域相当
树状结构最顶层称为根域,用"."表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派"机制,在根域下设智了一些顶级域,然后将不同顶级域解听权分别委派给相应的顶级域服冬器,如将com域的解析权委派给com域服务器。以后但凡根服务器收到以com结尾的域名解析请求,都会转发给con域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设级域或主机。
- 根域
位于域名空间最顶层,一般用一个“." 表示 - 顶级域
一般代表一种类型的组织机构或国家地区,如 net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名 - 二级域
用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、,net.cn、,edu.cn - 子域
二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名 - 主机
主机位于域名空间最下层,就是一台县体的计算机,如 www、mail都是具体的计算机名字,可用vww.sina.comcn.、mail,sina.com.cn,来表示,这种表示方式称为 EQDN(完全合格域名,是指包含了所有域的主机名,其中包括根域),也是这台主机在域名中的全名
解析过程:
递归查询,迭代查询
递归查询
-
1、主机首先向其本地域名服务器进行递归查询。
-
2、本地域名服务器收到递归查询的委托后,也采用递归查询的方式向某个根域名服务器查询。
-
3、根域名服务器收到递归查询的委托后,也采用递归查询的方式向某个顶级域名服务器查询。
-
4、顶级域名服务器收到递归查询的委托后,也采用递归查询的方式向某个权限域名服务器查询。
迭代查询
- 1、主机首先向其本地域名服务器进行递归查询。
- 2、本地域名服务器采用迭代查询,它先向某个根域名服务器查询。
- 3、根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器的IP地址。
- 4、本地域名服务器向顶级域名服务器进行迭代查询。
- 5、顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器的IP地址。
- 6、本地域名服务器向权限域名服务器进行迭代查询。
- 7、权限域名服务器告诉本地域名服务器所查询的域名的IP地址。
- 8、本地域名服务器最后把查询的结果告诉主机。
DNS解析过程总结:
浏览器缓存—–>系统hosts文件—–>本地DNS解析器缓存—–>本地域名服务器(本地配置区域资源、本地域名服务器缓存)—–>根域名服务器—–>主域名服务器—–>下一级域名域名服务器 客户端—–>本地域名服务器(递归查询) 本地域名服务器–>DNS服务器的交互查询是迭代查询
DNS服务器类型
(1)!主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改,构建主域名服务器时候,需要自行创建所负责区域的地址数据文件
(2)!从域名服务器:当主域名服务器出现故障、关闭或者负载过重时,从域名服务器作为备份服务域提供域名解析服务提供的解析结果不是自己决定的,而是来自于主域名服务器。构建从域名服务器时。需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库
(3)缓存域名服务器:只提供域名解析结果的缓存功能。目的在于提高查询速度和效率。但是没有域名数据库,它从某个远程服务器每次域名服务器的查询结果,并将它放在告诉缓存中,以后查询相同信息的时候用它予以响应。缓存域名服务器不是权威型服务器,因为提高的所有信息都是间接信息,构建缓存域名服务器时,必须设置根域或者指定其他DNS服务器作为解析来源。
(4)转发域名服务器,负责所有非本地域名的本地查询。转发域名服务器接收到查询请求后,在其缓存中查询,如果找不到就将请求依次转发给指定的域名服务器,直到找到结果位置,否则返回无法映射的结果。
通过bind来完成DNS域名解析服务器的部署
下载bind
rpm -qc bind 查询bind命令配置文件所在的路径
正向解析
- 编辑主配置文件vim/etc/named.conf
- 编辑区域配置文件vim /etc/named.rfc1912.zones
- 配置正向区域的数据文件
复制默认得区域数据文件为自己上一步定义得区域数据文件名
-
编辑文件
1 @这里是一个变量,当前DNS的域名
2 SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下戟。
3 jiang.com.此为完全合格域名 (FQDN),后面有个”.“不能漏掉
4 root.jiang.com.表示管理员邮箱,这里的”@"符号已有其他含义,所以用”.”代替(即root@jiang.com)
5 MX为邮件交换记录,数字越大优先级越低
-
启动程序,关闭防火墙,selinux和编辑本机DNS的ip地址
这样编辑完后不需要重启网卡就能生效
- 验证nslookup
反向解析
编辑
vim /etc/named.rfc1912.zones
再复制接着编辑
- 重启服务,关闭防火墙和selinux,加验证nslookup
主从域名服务器
从服务器
- 关闭防火墙和selinux
- 安装bind
- 编辑vim /etc/named.conf
- vim /etc/named.rfc1912.zones
file,指从主服务器那块同步的文件保存在slaves目录下
主服务器
配置/etc/named.rfc1912.zones
重启
客户端如何使用dns服务器
linux
编辑dns的ip
windows
在网络适配器中修改
拓展:dns和dhcp一起配置
其他配置都和之前一样