目录
1.什么是DNS
DNS:Domain Name System域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp,53/tcp实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为zone(区域)。根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录)和反向区域(包含IP地址到域名的解析记录)
DNS的作用
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名
- DNS系统的分布式数据结构
2.域名的结构
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
域名的特点是从右至左层级往下,他们依次为,根服务器,顶级域名或一级域名,二级域名,三级域名,有些域名有四级、五级域名我们以www.baidu.com为例
. 根服务器 跟在域名的最后,一般省略
com 顶级域名 原来指商业机构,现不限制使用
常见的还有.net .cn .org等
顶级域名由根服务器管理
baidu 二级域名 二级域名一般是指域名注册人选择使用的网上名称
二级域名由顶级域名服务器管理
www 主机名 可以理解为网页提供的不同的服务,比如百度贴吧主机名为tieba
百度网盘主机名为pan,www(万维网)是最常见的一种主机名,
一般为网页主站,此外还有mail、news等他们都由二级域名服务器管理
各级域名之间的关系
3.DNS服务器类型
3.1缓存域名服务器
- 也称为DNS高速缓存服务器
- 通过向其他域名服务器查询获得域名
- 将域名查询结果缓存到本地,提过重复查询的速度
3.2主域名服务器
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护该区域所有域名和IP地址的映射记录
- 需要自行建立所负责区域的地质数据文件
3.3从域名服务器
- 也称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名和IP地址记录来源于主域名服务器
- 需要从主域名服务区自动同步区域地址数据库
4.DNS服务器工作原理
在讲DNS服务器的工作原理之前,我们要先了解一下hosts文件
hosts文件
hosts文件其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析,所以hosts文件的优先级大于公网地址
hosts优点:本地文件访问速度快,测试使用方便
hosts缺点:当域名过多是,写入会变得繁琐
工作原理
1)先查本机的缓存记录
2)查询hosts文件
3)查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果
4)这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
5)求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
6)求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
7)求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
8)本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
查询的方式
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
5.DNS正向解析配置
在进行配置之前我们要先做一下准备工作,关闭防火墙和安装bind软件并开启服务
安装好之后我们来看一下软件包的配置文件目录
首先我们进入到/etc/named.conf文件内,将第13行及27行的括号内的内容改为any
这里修改的目的是允许所有监听所有的主机使用53端口 允许所有的主机访问DNS服务
修改完成之后,我们进入/etc/named/rfc.1912.zones,从13行开始复制5行
粘贴在13行之前,并对其进行修改
修改处的含义:
zone “hao.com” IN; 这里双引号中内容是给DNS服务器的名称
type master; 定义这个DNS服务器为主服务器,从服务器为slave
file “hao.com.zone” ; 定义配置文件的名称
allow-update {none;}; 允许更新,可有可无
注意:这里一定要注意文件内容的格式,尤其是分号,一旦输错将无法启动服务
修改完之后,我们进入/var/named这个路径,找到named.localhost这个模板文件
将这个文件另存为我们设置的配置文件名称
接着就是修改这个文件的内容
$TTL 1D //解析记录的生存周期
@ IN SOA master rname.invalid. ( //@域名的代替符号可以向下继承
0 ; serial //数字变动表示被修改(手动)
1D ; refresh //刷新数据库文件时间间隔
1H ; retry //重试间隔
1W ; expire //放弃时间
3H ) ; minimum //无效记录生产周期
NS master //记录当前DNS服务器名称
master A 192.168.112.97 //主机地址IP
www A 192.168.112.99 //同上
保存退出后,重启named,不要忘记,我们的网卡中设置的DNS地址是8.8.8.8,我们需要做的最后一步就是将网卡中的DNS地址指向我们的虚拟机地址
重启一下网卡,使用host命令测试一下
域名成功被解析为地址
6.主从复制DNS配置
主从复制实验是在正向解析的基础上加一台从服务器,当主服务器停止服务时,顶替主服务的位置
我们就拿刚刚完成的正向解析服务器作为主服务,下面进行从服务器的配置
重新开一台服务器,重复之前主服务器的操作,直到修改named.rfc1912.zones文件
要将类型改为slave(从服务器),并在下面加上主服务器的IP地址,要注意格式
修改好之后保存退出,并重启服务,可以看到/var/slaves路径下已经获取到了主服务器的数据文件
我们来测试一下
成功!