Linux下的DNS服务器

一、DNS的基础定义

1、DNS的定义

  • DNS,又称域名系统(Domain Name System),是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。万维网(World Wide Web,简称www)是Internet互联网提供的主要服务之一。
  • DNS使用TCP和UDP协议,使用端口号53。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。 53/TCP:完成区域传送; 53/UDP:完成主机名的解析查询。
  • BIND软件实现驱动DNS系统的应用程序 ,BIND的服务主程序为named 称为DNS服务程序

2、DNS的意义

  • DNS是一个按层次结构排列的分布式系统,由许多DNS服务器组成。DNS服务器是注册加入DNS的任何计算机。当你在浏览器中键入域名时,浏览器会询问DNS服务器该域的IP地址是什么,DNS服务器会尝试告诉你,只有通过DNS找到域名对应的ip,才可以正常访问。如果它不知道,那么它会尝试从其他DNS服务器中找出

3、DNS的分类

  • 权威名称服务器权威DNS :直接有客户需要的答案,客户给一个域名直接就能访问,存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。
  • 权威名称服务器的类型包括: Master : 主DNS,包含原始区域数据,有时称作 “主要 ”名称服务器。 Slave : 备份DNS ,通过区域传送从 Master 服务器获得的区域数据的副本,有时称作 “次要 ”名称服务器。
  • 非权威 / 递归名称服务器非权威DNS:里面没有客户需要的答案,但它会通过访问114.114.114.114等权威DNS找到答案给用户(相当于代购),客户端通过其查找来自权威名称服务器的数据。
  • 递归名称服务器的类型包括:缓存名称服务器 : 仅用于查找 ,不负责解析域,只是缓存域名解析结果。

4、DNS查找的过程

  • 客户端上的 Stub 解析器(根解析器)将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端,如果名称服务器在其缓存中有此请求的信息,则会将非权威答案发送至客户端,如果缓存中没有该信息 , 名称服务器将搜索权威名称服务器来查找信息 ,从根区域开始 ,按照DNS层次结构向下搜素 , 直至对于信息具有权威性的名称服务器 ,以此为客户端获得答案,在此情况中名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找。

二、高速缓存DNS服务器(可提高内网的访问效率)

1 问题引入:区域内有多台主机,当同时访问114.114.114.114这个权威DNS进行解析时,都通过一根传输线与外界进行通信,所以很耗带宽,并且每次请求等待的时间都很长,影响性能!
2 解决思路:内网访问外网速率较慢,但内网之间进行访问速率快,我们知道每台主机获取到当前域名的IP时,都会在缓存中保存一段时间,默认是600s。当区域内的A主机获取到IP的时候,如果区域内的其它主机也有想同的需求,让其先询问此A主机,如果A主机的缓存中有,则直接获取到,由于并不向外界发出请求,也不占用带宽!
3 解决 :区域内一台主机褡建为高速缓存DNS服务器,其余的主机每次想查询域名的IP的时候,都去请求这个DNS服务器,其他主机不再需要访问权威DNS,直接问高速缓存DNS服务器即可,只需要高速缓存DNS去问114.114.114.114,然后把自己要到的东西共享给其他主机即可。
4 高速缓存DNS特点:非权威DNS,只提供信息,不会校验是否正确!可用于提高内网的访问效率。

三、搭建DNS服务器及排错

1、搭建DNS服务器

实验条件:
(1)虚拟机可以上网:真机打开地址伪装和内核路由功能,虚拟机配置网络,设置网关:ip=172.25.70.22
(2) 通过主机ip=172.25.70.250的镜像搭建共享yum源,使虚拟机可以安装软件

搭建DNS服务器
(1)yum search dns 查找dns服务的软件
在这里插入图片描述
(2)yum install bind -y 安装bind软件
在这里插入图片描述
(3)rpm -ql bind 查看bind的配置文件和服务名称

  • 主配置文件:/ etc / named.conf
  • 辅助配置文件: / etc / named.rfc1912.zones:声明了区域 可以在主配置文件中利用include命令来包含其他配置文件;
  • 区域文件的存放目录 : /var / named
  • 存放辅助区域文件的目录:/ var / named / slaves
    在这里插入图片描述

(4)systemctl start named 开启dns服务

  • 第一次开启服务时,服务会起不来,是因为加密字符太短 /etc/rndc.key 这个文件就不存在,此时敲击物理键盘,使他的加密字符变长,此时这个文件才会有,系统才会起来

在这里插入图片描述
在这里插入图片描述
(5) 在防火墙里面添加dns服务
   firewall-cmd --pernament --add-service=dns
   firewall-cmd --reload
   firewall-cmd --list-all
在这里插入图片描述
(6)vim /etc/resolv.conf 中添加 nameserver 114.114.114.114 在dns配置文件里面写入权威dns的ip
在这里插入图片描述
在这里插入图片描述
(7)netstat -antlupe | grep named 查看dns服务的53端口是否对172.25.70.22开启
在这里插入图片描述
(8)vim /etc/named.conf 编辑dns服务的主配置文件更改参数,关闭安全检测
在这里插入图片描述
在这里插入图片描述
(9)systemctl restart named 重启服务

测试:在server虚拟机 ip=172.25.70.122
(1)vim /etc/resolv.conf 中添加 na

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值