设为首页 收藏本站
查看: 429|回复: 0

[经验分享] 简述DNS原理及bind9的配置使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-14 08:55:46 | 显示全部楼层 |阅读模式
DNS(domain name system):域名系统。
现代主机通讯的过程如下:
wKioL1WjIIeSsEXMAACy7jmLPbY690.jpg
    1、首先应用层的把数据封装一个应用层首部交给传输层;
    2、传输层接收到上层数据后在后面封装一个传输层首部交给网络层;(源端口和目的端口)
    3、网络层接收到上层数据后在后面封装一个网络层首部交个数据链路层;(源IP和目标IP)
    4、数据链路层收到上层数据后在后面封装一个数据链路层首部交给物理层;(源MAC和目标MAC)
    5、物理层收到上层数据后把上层数据转换成二进制放到传输介质上进行传输,传输过程会经过交换机、路由、防火墙到达目的地。
    6、数据到达目标主机后,目标主机会反向拆封发送主机发过来的数据包,从而得到发送方应用程序发过来的数据。

    在上面数据封装的时候。传输层的端口号在封装时会从本地的1024以上的未用的端口中随机选一个作为源端口,目的端口通常是默认的,也可以让用户指定。数据链路层的MAC地址通常是通过ARP广播得到。           
    那么现在就有一个问题, 网络层的IP地址怎么指定呢?     
    通常情况下都是用户直接指定的,第二种情况是在在程序中指定。
    在程序中指定的话那就简单了,直接在程序中写入即可。如果是用户指定的话那就麻烦了,使用的用户就得一个一个去记想要访问的主机的IP地址,然而现在的互联网上有成千上万台主机,如果想让每个用户都记住每台主机的IP地址和它所提供的功能,那几乎是一件不可能完成的事情。但是如果让用户记名字呢?比如说
www.baidu.com这个名字,人们一看到这个名字就知道是百度公司的搜索引擎。

    基于上面的原因DNS服务就诞生了。DNS服务是现代互联网上的网络基础服务——域名解析服务,它能够完成主机名到IP地址的映射。当用户需要访问百度时,只需要在本地配置号DNS,然后在浏览器中输入www.baidu.com这个名称即可访问。

    早期的互联网上的主机数量不是很多,因此那时候主机是互联网上的主机的主机名和IP地址的对应关系写在本地的/etc/hosts文件中。当用户想基于主机名跟别的主机通讯时,只需要用户输入主机的主机名,计算机会自动根据主机名在/etc/hosts文件中查找与之对应的IP地址,而后用这个IP地址跟主机通讯。由于后来的互联网的速度发展过快,主机数量成几何数增长,本地的/etc/hosts文件中所要记录的条目过多,每次想基于主机名通讯时,查找主机名对应的IP地址时的速度过慢。因此就出现了目前的DNS服务器的模型。
    下面我来介绍一下现在DNS服务器的模型。
wKiom1WjUo-ykxtuAAEDGmLj3wk619.jpg
    1、最上面的 . 代表根域,是域名系统中最大的域名,他只负责直接处于其下面的域名,不负责其他的域。
    2、第二层的.com、.net、.cn、.us这些域名是顶级域,也称一级域。他也只负责直接处于其下面的域名,不负责其他的域,不知道处于其上面的父域的存在。且这些域都是独立的命名空间,意思就是在两个不同的一级域内,可以有两个名称相同的子域。
    3、第三层的.baidu、.movekj、.sina这些都是二级域,,也只负责直接处于其下面的域名,不负责其他的域,不知道处于其上面的父域的存在。且这些域都是独立的命名空间,意思就是在两个不同的一级域内,可以有两个相同名称的子域。在每个二级域的下面也可以分其他的子域,在其子域下面还可以分其他的子域......。
    ps:上面的每一个域内都有专门的DNS服务器,这些服务器负责接收并响应本域内的主机名的名称解析请求,且每台服务器上都存有本域主机的主机名和其IP地址对应关系的解析库。

    基于上面的DNS模型的,DNS客户端在基于DNS服务器做www.baidu.com这个主机名的名称解析的步骤如下:(客户端在网络配置中配置DNS服务器的IP地址)
wKiom1WjY1XCA2C4AADofsEMWwo820.jpg
    1、DNS客户端把www.baidu.com这个主机名的名解析请求发送给DNS服务器,
    2、DNS服务器接收到客户端的查询请求后,判断该请求的主机名的.baidu.com这个域是不是本机负责的,如果是则该服务器直接返回解析结果给DNS客户端;否则该服务器会把该请求转发给根域。
    3、根域的DNS服务器收到请求后,则根据请求的主机名的顶级域名.com返回.com顶级域的DNS服务器的IP地址给发起该请求的DNS服务器;
    4、DNS服务器收到结果后,会根据结果中的.com域的DNS服务器的IP,把请求发送给.com域的DNS服务器;
    5、.com域的DNS服务器收到请求后,则根据请求的主机名的二级域.baidu.com返回.baidu.com二级域名的DNS服务器的IP地址给发起该请求的DNS服务器;
    6、 DNS服务器收到结果后,会根据结果中的.baidu.com域的DNS服务器的IP,把请求发送给.baidu.com域的DNS服务器;
    7、.baidu.com域的DNS服务器收到请求后,则会判断本域有没有叫www.baidu.com主机名的主机,如果有,则返回www.baidu.com主机名的IP地址给发起该请求的DNS服务器,若没有,则返回给发起该请求的DNS服务器一个否定答案。
    8、DNS服务器得到结果后就把结果回应给DNS客户端。   DNS客户端得到结果后,如果结果是否定答案,就把否定答案缓存在本地。否则,就会根据结果中的IP地址请求相关服务。
    PS:在上面的过程中,DNS客户端把请求发送给DNS服务器这个过程称之为递归查询,DNS服务器到其他DNS服务器帮DNS客户端查询请求的过程称之为迭代查询。

    DNS服务器类型:在DNS服务器中,根据DNS服务器所完成的功能不同,分为不同的类型。类型主要有以下几种:
    缓存DNS服务器:不负责任何域的解析请求,负责接收本地DNS客户端的请求,并转发请求,且缓存解析到的结果。
    主DNS服务器:负责一个域或多个域内的主机名解析请求,且负责接收本地DNS客户端的请求,并转发请求。且缓存解析外部域的主机名到的结果。
    辅助DNS服务器:负责一个域或多个域内的主机名解析请求,且负责接收本地DNS客户端的请求,并转发请求。且缓存解析外部域的主机名到的结果。
    转发器:不负责任何域的解析请求,负责接收本地DNS客户端的请求,并转发请求,但不缓存解析到的结果。

    现代的互联网中,很多的DNS服务器都是使用bind这个软件来提供DNS主机名解析服务。配置bind的时候主要需要配置/etc/named.conf配置文件,而后给每个区域创建区域配置文件。在每个区域配置文件中常用的有以下几种资源记录类型:
    通用格式:
    name  [ttl]  IN  RRT  value
    name:资源记录名称
    ttl:资源记录缓存时长(可以省略)
    RRT(resouce record type):资源记录类型
    vlaue:该条资源记录的值

    资源记录类型
    SOA(起始授权记录):定义了该区域谁是主DNS服务器、管理员邮箱地址、否定答案的缓存时间,且定义了该区域中的主从DNS服务器直接的数据如何同步。
    NS(域名服务器记录):定义了该区域内的DNS服务器,可以有多条。(需要有正向解析记录)
    MX(邮件服务器记录):定义了该区域内的邮件服务器,可以有多条。(需要有正向解析记录)
    A(正向解析记录):定义了该区域内的主机的主机名与IP地址的对应关系,可以有多条。
    PTR(反向解析记录):定义了该区域内的主机的IP地址与I主机名的对应关系,可以有多条。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86458-1-1.html 上篇帖子: Ubuntu 安装 CollabNet Subversion Edge 5.0 (SVN) 下篇帖子: Linux Samba 服务器的搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表