DNS & bind详解

1. DNS基础知识

1.1 DNS的出现及演化

      网络出现的早期是使用IP地址通讯的,那时就几台主机通讯。但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件)。这个文件中记录着主机名称和IP地址的对应表。这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。
但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪重负,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好办法。这时DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断的演化,直到现今的多层架构体系。

1.2 什么是DNS

      DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS可以使用TCP和UDP的53端口,基本使用UDP协议的53端口。
      DNS 的分布式数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(domain name space)。

1.3 域的分类

域是分层管理的。
第一层:根域

  • 根域 : .

第二层 :顶级域 (tld top level domain)

  • 按国家划分:.cn(中国)、.tw(台湾)、.hk(香港) 等。
  • 按组织性质划分:.org、.net、.com、.edu、.gov 等。
  • 反向域:arpa ,这是反向解析的特殊顶级域。

第三层及以下:
      顶级域下来就是普通的域,公司或个人在互联网上注册的域名一般都是这些普通的域,如jd.com。
在这里插入图片描述
注:正向解析与反向解析完全是两个不同的库,这儿只是为了方便理解。

1.4 主机名、域名、FQDN

以百度(www.baidu.com)和百度贴吧(tieba.baidu.com)来举例。

域名: 不论是 www.baidu.com 还是 tieba.baidu.com,它们的域名都是 baidu.com,严格地说是 “baidu.com.”。这是百度所购买的com域下的一个子域名。
主机名: 对于 www.baidu.com 来说,主机名是 www,对于 tieba.baidu.com 来说,主机名是 tieba。其实严格来说,www.baidu.com 和 tieba.baidu.com 才是主机名,它们都是 baidu.com 域下的主机。一个域下可以定义很多主机,只需配置好它的主机名和对应主机的IP地址即可。
FQDN: FQDN(Fully Qualified Domain Name),称为完整主机名,是指包含了所有域的主机名,其中包括根域。FQDN 可以说是主机名的一种完全表示形式,它从逻辑上准确地表示出主机在什么地方。例如 www.baidu.com 的 FQDN 是 “www.baidu.com.”,com 后面还有个点,这是根域;tieba.baidu.com 的 FQDN 是 “tieba.baidu.com.”。

1.5 DNS解析流程

在这里插入图片描述

这儿以我们访问 www.baidu.com 为例。
(1) 本地主机首先会查找本机 DNS 缓存,然後查询本地 hosts 文件是否有 www.baidu.com. 这个 FQDN 所对应的主机 IP 地址,若有,则直接使用;若没有,本机将向指定的 dns server 发起查询请求(这个 DNS 服务器就是计算机里设置指向的 DNS)。
(2) DNS 服务器收到询问请求,首先查看自己是否有 www.baidu.com 的缓存,如果有就直接返回给客户端,没有就越级上访到根域".",并询问根域。
(3) 根域只是记录了 .com 域的相关信息,所以将 .com 域的地址返回给 DNS 服务器。
(4) DNS 服务器根据根域返回的信息向 .com 域发起查询请求,由于 .com 域只记录了 baidu.com 的信息,所以将 baidu.com 域的地址返回给 DNS 服务器。
(5) DNS 服务器根据 .com 域返回的信息向 baidu.com 域发起查询请求,于是 baidu.com 域的 DNS 服务器就去查询本地的记录,找到了 www 主机对应 IP 地址,将该 IP 地址返回给 DNS 服务器。
(6) DNS 服务器将得到的 IP 地址返回给客户端,并缓存一份结果在自己机器中,方便下一次客户端再次访问该站点。
(7) 客户端得到回答的IP地址后缓存下来,并去访问 www.baidu.com,然后 www.baidu.com 就把页面内容发送给客户端,也就是百度页面。

注:
      1.本机查找完缓存后如果没有结果,会先查找hosts文件,如果没有找到再把查询发送给DNS服务器,但这仅仅是默认情况,这个默认顺序是可以改变的。在/etc/nsswitch.conf中有一行" hosts: files dns&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值