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

[经验分享] linux之DNS

[复制链接]
累计签到:5 天
连续签到:1 天
发表于 2019-2-17 10:08:03 | 显示全部楼层 |阅读模式
  在早期的网络世界中,网络主机将主机名映射到ip保存在一个共享静态的文件hosts中。由hosts文件实现网络中域名的管理。但internet的计算机迅速增加时,通过一个中心授权机为所有Internet主机管理一个主机文件的工作将无法进行。文件会随着时间的推移而增大,这样按当前和更新的形式维持文件以及将文件分配至所有站点将变得非常困难,甚至无法完成,于是便产生了DNS服务器。
  DNS:Domian Name System ,c/s架构,udp/tcp,端口53,应用层协议。
  基本概念:
  FQDN:Full Qualified Domain Name,完整主机名    www.baidu.com.
  . 根
  .com 顶级域
  .baidu.com 二级域
  www 主机名
  域:
  TLD:Top Level Domain 顶级域包括:组织域(.com .net .edu)和国家域(.cn .hk .tw),还有特殊域(arpa域:用于地址到名称转换的特殊域)

  SLD:Second-level-Domain 二级域,如下
  baidu.com域,以下是二级域中的完整主机名

  www.baidu.com
  mail.baidu.com


  DNS解析方式(每个域都有两个区域):
  正向解析:FQDN-->IP
  反向解析:IP-->FQDN
  区域:baidu.com域有
  FQDN-->IP正向解析库,称一个区域
  IP-->FQDN反向解析库,称一个区域
  DNS查询类型:
  递归查询:

  由客户端发出解析主机名的请求后,由Local DNS负责完成解析任务(客户端不负责),若Local DNS缓存无结果则会请求根服务器,根服务器返回顶级域服务器的ip后,Local DNS会继        续向.com请求解析,.com会返回baidu.com二级域的ip,Local DNS继续请求二级域的ip,得到www.baidu.com对应的ip地址,缓存在本地后返回给客户端。

    注:chrome浏览器的DNS缓存输入chrome://net-internals/#dns可查看,火狐浏览器可输入about:config查看DNS缓存配置。
  迭代查询:客户端发出解析主机名的请求,Local DNS返回无缓存和根服务器ip地址后就不负责了,由客户端发送解析请求到根服务器……如下图:


  DNS报文格式:
  下图是用于查询和响应的报文格式:由12字节首部和4长度可变字段组成;


  标识:由客户程序设定并由服务器返回,客户程序通过使用它来确认查询和响应是否匹配;
  标志:由若干子字段组成,如下图:

  QR:1bit字段,0表示查询报文,1表示响应报文

  opcode:4bit字段,0表示标准查询,1表示反向查询,2表示服务器状态请求

  AA:1bit字段,表示授权回答,该名称服务器是授权于该域的

  TC:1bit字段,表示可截断的,使用UDP时当响应的总长度大于512时,只返回前512个字节

  RD:1bit字段,此字段在查询报文中使用,1表示期望递归,告知名称服务器必须处理这个查询,称为递归查询,0表示被请求的名称服务器没有一个授权回答,它返回一个可以解答该查询的其他名称服务器列表,称为迭代查询

  RA:1bit字段,表示可用递归,若名称服务器支持递归查询,则此字段为1

  zero:3bit字段,必须为0
  rcode:4bit字段,返回码字段,0表示没有差错返回,3名称差错

  问题数:4个16bit字段,对于查询类第一个字段为1,其他字段都是0,对于应答报文,至少有一个应答,其他两字段是0或非0
  查询问题:格式如下图


  查询名:需要查询的名称,是一个或多个标识符的序列,每个标识符的首字节计数值来说明随后标识符的字节长度,每个名称以最后为0的标识结束,长度为0的标识符是根符号


  每个问题都有一个查询类型也称为域名解析方式,每个响应也有一个类型。

常见域名解析方式:

    A记录:域名对应的ip,多个域名可以指向同一个ip,多个ip不可以指向多个域名;

    CNAME记录:canonical name别名解析,为一个域名设置一个或多个别名,如baidu.com是a.shifen.com的别名;
    NS记录:又称名称服务器,这个区域由哪些DNS服务器负责解析;
    SOA记录:在众多NS记录中指定主服务器负责解析;
    MX记录:邮件交换记录
    PTR记录:指针记录用于指针查询,IP地址被看成in-addr.arpa域下的一个域名

DNS响应报文中资源记录部分:
其中DNS报文中最后三个字段回答字段、授权字段、附加信息字段都是采用一种资源记录RR的相同格式,报文格式如下图:

域名:记录中资源对应的名称,格式与查询名字段格式相同
类型:RR类型码,值与查询类型中一样
类:指internet数据
生存时间:客户程序保留该资源记录的秒数,通常为2天

资源数据长度:资源数据的数量


实例:ping qq.com,同时tcpdump抓包
19:33:15.941772 IP 192.168.146.136.51574 > public1.114dns.com.domain: 30492+ A? qq.com. (24)
19:33:15.954342 IP public1.114dns.com.domain > 192.168.146.136.51574: 30492 2/0/0 A 111.161.64.40, A 111.161.64.48 (56)第一行 +表示期望递归,A表示查询类型为A,?表示查询不是响应 ,后表面紧接着是要查询的域名,24表示UDP数据报中用户数据长度(12字节固定长度的报文首部+8位域名方式+4位查询类型和查询类)

第二行 从名称服务器返回的响应信息,2/0/0表示响应报文中最后3个变长字段的资源记录数,回答RR数为2个。


高速缓存:
为了减少internet上DNS的通信量,所有的名称服务器都使用高速缓存。高速缓存由名称服务器维护。

名称解析器在主机上使用/etc/reslove.conf文件中删除nameserver后使用名称服务器IP,在这个文件中可能存在无nameserver字段的行,指的是名称解析器使用本地主机上的名称服务器。


  DNS服务器类型:
  负责解析至少一个域(权威答案):

  主名称服务器:维护所负责解析的域数据库的服务器,读写均可;
  从名称服务器:从主DNS服务器复制一份解析库,只能读操作;
  复制操作实施方式:
  序列号:即数据库的版本号,主服务器数据库内容发生变化,版本号递增;

  刷新时间间隔:从服务器多久到主服务器检查序列号更新状况;

  重试时间间隔:从服务器从主服务器请求同步解析失败时,再次发起尝试请求的时间间隔;
  过期时长:从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;若真联系不上时,停止提供服务;

  否定答案的缓存时长:否定答案缓存多久

  不负责域解析(非权威答案):
  缓存名称服务器(Local DNS)

  DNS域维护:

  上面说了从服务器复制主服务器的方式,域维护是通过DNS协议在从主服务器之间共同维护一个共同的zone(区域)文件。共有两种方式:
  全量传送axfr
  增量传送lxfr




运维网声明 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-673473-1-1.html 上篇帖子: informix linux安装步骤 下篇帖子: linux 学习感悟
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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