DNS:Domain Name System

主要解决域名和IP转换,而早期主要是手动配置IP和域名的对应关系--hosts

相关概念:

名称空间:他制定用于组织名称的域的层次结构

资源记录Resouce Record:它将DNS域名映射到特定的类型的资源信息,供名称空间中注册或解析名称使用。在linux系统中,叫做“名称解析库”,在/var/named每一行是一个资源记录

DNS服务器:它存储和应答资源记录的名称查询

DNS客户端:解析程序,它查询从服务器返回的搜索将名称解析为查询中指定的记录类型。

DNS系统的作用:

正向解析:根据主机名称查找对应的IP地址

反向解析:根据IP地址查找对应的主机域名

DNS系统的分布式数据结构:

image 

 

根就是 ‘.’:一个域名访问他的根服务器可以这样:www.magedu.com.一般来说浏览器会自动补全这个.

 

全球一共有13台根服务器:如图

image

 

解析过程:www.magedu.com.

倒置,先查找本地DNS记录,没有就去找根

.----.com----.magedu----www

递归:只关注结果

迭代:也关注过程

image

DNS服务器类型:

住域名服务器:

特定DNS区域的官方服务器,具有惟一性

负责维护该区域内所有的域名到IP的映射记录

对区域的所有更新都通过此服务器进行

从域名服务器

也叫做辅助域名服务器

其维护的域名到IP的记录来源于住域名服务器

只从同一个区域的主服务器或其他从服务器同步区域数据文件

缓存域名服务器

也叫 唯高速缓存服务器

通过向其他域名服务器查询来获得域名到Ip的记录

将查询结果缓存到本地,提高重复查询时的速度

主从协调过程:

起始授权记录:

区域数据文件有版本号(序列号):serial

刷新时间(检查周期):refresh

重试事件(重试周期):retry

过期时间(失效时长):expire

否定应答TTL值(缓存时间)

从服务区在间隔达到refresh指定的时长后发起同步请求至主服务器;主服务器响应serial,从服务器与本地的serial进行比较,如果主服务器的serial大于本地,以为主服务器的区域数据文件更新了,请求同步。

 

资源记录:

SOA:Start Of Authority,其实授权记录,一个区域文件有且只能有一个SOA记录

NS:Name Server,名称服务器

      magedu.com IN NS dns1.magedu.com.                   //注意最后得有.

      @   IN  NS dns1…..                                               //name一样可以省略

MX:Mail eXchanger,邮件交换器

      @   IN MX 10 mx1.magedu.com.                            //中间数字是优先级

A:Address:FQDN—>IPv4

      www.magedu.com.   IN   A   1.1.1.1

      //同一条记录出现不同IP可以实现简单的负载均衡

AAAA:Address:FQDN—>IPv6

PTR:Pointer,指针:IP—>FQDN

反向解析:

name:IP地址的逆向格式,并附加 in-addr.arpa.后缀

value:FQDN

1.1.168.192.in-addr.arpa    IN   PTR   www.magedu.com.

CNAME:Cononical Name,正式名称,别名

web.magedu.com.   IN CNAME www.magedu.com              //不用额外的A记录了

 

 

具体实现:BIND,其进程叫named

yum install bind 安装

image

在sample里面有样例

/usr/sbin/named:主要执行程序

/etc/init.d/named:服务脚本

默认监听端口53

/etc/named.conf:主配置文件

可以精简成这样

image 

 

listen-on 监听地址和端口:分为TCP和UDP,UDP是查询用的,TCP是主从传输用的

directory:工作目录

allow-query:允许什么机器过来坐解析,可以改成any

recursion:是否开启递归

logging是日志记录,所有的路径都是以directory为基路径

severity实现动态打印,每个访问都回大×××来一个

zone “.” IN 根域:

type类型就是hint;

file是根域的解析文件

/var/named是其主工作目录,用于保存DNS解析记录的数据文件

 

没有/etc/init.d/named,进行不下去了,查询资料后更正