0%

DNS域名服务

概述

DNS

  DNS域名服务是把域名翻译成IP地址的软件称为域名系统,即DNS。它是一种管理名字的方法。这种方法是:分不同的组来负责各子系统的名字。系统中的每一层叫做一个域,每个域用一个点分开。所谓域名服务器(即Domain Name Server,简称Name Server)实际上就是装有域名系统的主机。它是一种能够实现名字解析的分层结构数据库。

关于域名

DNS的结构分为顶级域名和一级域名
  顶级域名是用以识别域名所属类别、应用范围、注册国家等公用信息的代码。 通用顶级域名指的是来自任何国家的任何人都可以自由使用的顶级域名,如”.COM”代表商业 实体;”.org”代表非营利性组织;”.net”代表网络服务者;专用顶级域名”.mil”代表军事机构;”.edu”代表教育机构;”.gov”代表政府机构。凡属于美国的机构,在此顶级域名下注册时,无需加注国家代码。
国家代码
  此标准是将国家与地区的英文名称缩写为两位英文字母形成代码,如cn代表中国;hk 代表 香港;tw代表 中国台湾;us代表美国;uk代表英国等等。多数国家要求凡在域名 中加入其国家代码的,主机必须处于该国。 但也有些国家并无这方面的要求。
二级域名
  指由域名使用者自己设计的,能够体现使用者的特殊性,并据以同其他人的域名相区别的字符串。
反向域
  .in-addr.arpa即是把IP地址反过来写加上这个后缀,如172.16.1.1的反向域为1.1.16.172.in-addr.arpa这里的. 一个都不可以少。

DNS服务器

顶级/根域名服务器
  根服务器可以说是管理互联网的主目录,是架构因特网所必须的基础设施。在国外,许多计算机科学家将根域名服务器称作“真理”(TRUTH),足见其重要性。换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。现在全球有13台原有IPv4根服务器加25台IPv6根服务器,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主IPv6根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。
主域名服务器
  负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。
辅助域名服务器
  当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。
缓存域名服务器
  从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息。
转发域名服务器
  负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

优点

  之所以域名解析不需要很长时间,是因为上网接入商,比如北京电信,河南电信等,为了要加速用户打开网页的速度,通常在他们的DNS服务器中缓存了很多域名的DNS记录。这样这个接入商的用户要打开某个网页时,接入商的服务器不需要去查询域名数据库,而是把自己缓存中的DNS记录直接使用,从而加快用户访问网站的速度。

缺点

  上网接入商ISP的缓存会存储一段时间,只在需要的时候才更新,而更新的频率没有什么标准。有的ISP可能1小时更新一次,有的可能长达一两天才更新一次。所以新注册的域名一般来说解析反倒比较快。因为所有的ISP都没有缓存,用户访问时ISP都是要查询域名数据库,得到最新的DNS数据。而老域名如果更改了DNS记录,但世界各地的ISP缓存数据却并不是立即更新的。这样不同ISP下的不同用户,有的可以比较快的获取新的DNS记录,有的就要等ISP缓存的下一次更新。

DNS

域名解析

  网络客户端就是我们平常使用的电脑,打开浏览器,输入一个域名。比如输入www.baidu.com. 这时,你使用的电脑会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。查询www.baidu.com 的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

可以看这个:https://juejin.im/post/5b0a32a36fb9a07ab979f0b4来源:掘金

记录类型及DNS数据库文件格式

DNS数据库文件是一个文本文件,只能包含资源记录或宏定义
资源记录的格式:

1
name          [ttl]            IN              rrtype                  value

例如,www.baidu.com 假如他的IP为192.168.0.0
那么它的格式应该写为以下这样

1
2
name              [ttl]             IN               rrtype                 value
www.baidu.com. 200 IN A 192.168.0.0

com后面的点不可少省,[ttl]的时间单位是秒可以省略不写,
IN是关键是这个不变,rrtype是记录文件类型,value是值。
SOA是区域数据为文件的第一条记录只能有一个
name:区域名称,如badu.com.通常可以简写为@
value:主DNS的

A记录

A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。就是服务器的IP,域名绑定,就是告诉DNS当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。简单的说,A记录是指定域名对应的IP地址。

NS记录

NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。您注册域名时,总有默认的DNS服务器,每一个注册的域名都是一个DNS服务器来进行解析的。

MX记录

MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。

CNAME记录

CNAME(canonical Name)别名记录,允许您将多个名字映射到同一台计算机。通常用于同时提供www和mail服务的计算机。

TXT记录/TTL值

TXT记录
TXT记录,一般指某个主机名或域名的说明,多数指管理员的邮箱地址。
TTL值
TTL(Time-To-Live):是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而被丢弃。有很多原因使包在一定时间内不能被传递到目的地。就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录后,记录会在DNS服务器中保存一段时间,这段时间内如时果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录,而这个记录在DNS服务器上保留的时间,就是TTL值。

PTR值

PTR用一个IP地址映射到对应的域名,也就是A记录的反向,就是IP地址反向解析。

DNS数据库的记录:正解、反解、Zone的意义

主机名(FQDN)的查询到IP的流程为:正解。
从IP到主机名(FQDN)的查询的流程为:反解。
不管是正解还是反解,每个域的记录就是一个域(Zone),也叫做地址池。
正解文件资源记录(Resource Rrcord,RR)格式:

1
2
[domain]          [ttl]        IN       [RR type]     [RR data]
[待查数据] [暂存时间(秒)] IN [资源类型] [资源内容]

一般ttl是可以省略的
常见的正解文件记录格式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
[domai]           IN          [RR type]           [RR data]

主机名. IN A IPV4的IP地址

主机名. IN AAAA IPV6的IP地址

域名. IN NS 服务器主机的名子

域名. IN SOA 管理这个域名的重要参数

域名. IN MX 优先级 接收邮件的服务器主机名子

主机别名. IN CNAME 实际代表这个主机别名的主机名字

RR type的解释

  1. A AAAA: 查询IP的记
  2. NS: 查询管理区域名的服务器主机
  3. SOA: 查询管理域名的服务器管理信
  4. CNAME: 设置某主机的别
  5. MX: 查询某域名的邮件服务器主机名

反解文件记录的RR数
反解的Zone必须把IP反过来写,而在结尾加上.in-addr.arpa
PRT就是反解,即是查询IP反对应的主机名。

虚拟机搭建本地dns

软件:bind

BIND是在互联网上使用最广泛的域名系统‘DNS软件’。在类似Unix的操作系统上充当一个或多个特定域的权威名称服务器,并充当DNS系统的递归解析器。>>>参见Wiki
在RHEL6.5中,系统光盘自带了BIND服务的安装文件
各软件包的主要作用:
bind:提供了域名服务的主要程序及相关文件
bind-utils:提供了对DNS服务器的测试工具,如nslookup等
bind-libs:提供了bind、bind-utils需要使用的函数库
bind-chroot:提供一个伪装根目录(将/var/named/chroot/作为BIND的根目录),提高安全性

安装

默认已安装bind-utils和bind-libs
插入系统光盘,挂载,安装完毕后,会自动增加一个名为named的系统服务:

# mount  /dev/cdrom  /media/                        

# rpm -ivh /media/Packages/bind-9.8.2* * * .rpm     

# rpm -ivh /media/Packages/bind-chroot-9.8.2* * * .rpm

# service  named  start                                

手动安装
yum install安装就这问题也没搞定,

ping 8.8.8.8没通,原来自己的dns都有问题···
于是>>>

配置

测试

============本文结束( ´◔ ‸◔`)感谢您的阅读============