DNS服务器之理论基础

一、什么是DNS

DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址。

在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识别0、1代码,这时就需要一种机制来解决IP地址与主机名的转换问题。

早期由于网络上的主机数量有限,主机名和IP的解析借助于hosts文件即可完成,Linux中此文件一般存放路径为/etc/hosts,在此文件中手动记录每个主机名与其IP的对应关系;但hosts文件的内容不能自动更新,一旦主机名或IP地址发生变化,需要手动对每一台主机进行更新。

随着互联网的发展,网络上可供人们访问的网站越来越多,hosts文件已经不能满足需求;为了解决此问题,伯克利大学研究出了一套系统,被称为BIND(Berkeley Internet Name Domain),也就是现在流行的DNS。

DNS利用树形目录结构,将主机名的管理分配给不同的层级,这样可以实现更加快速的完成主机名的查找,修改主机名解析时也更加方便。

二、相关概念

1、域

TLD:Top Level Domain (顶级域名)

组织域:.com, .org, .net, .edu,.gov,.mil,.cc,…

国家域:.cn, .us, .tw, .iq,…

反向域: .in-addr-arpa

上面提到过,DNS采用分级的授权管理机制,其结构如下所示:

根域与一级域由IANA直接管理。

2、FQDN

FQDN全称为Fully Qualified Domain Name,即完全合格域名。

FQDN由两个部分组成:主机名和域名。因为DNS是逐级管理的,所以在不同的层级中主机名与域名也是不同的;以www.google.com为例,在第二层中,.com就是域名,google就是主机名,而到了第三层中,.google.com就成了域名,www就成了主机名。

注意:主机名与域名并不是依据"."来划分的,主机名中也可以包含"."号的,主要还是要根据域名的注册情况来划分。

3、正向解析

从FQDN转换为IP地址称为正向解析。

4、反向解析

从IP地址转换为FQDN称为反向解析。

5、区域

正向解析或反向解析中,每个域的记录就是一个区域。

三、DNS的解析库

DNS的主要作用是进行主机名的解析。

解析:根据用户提供一种名称,去查询解析库,以得到另一种名称。

正向解析与反向解析使用不同的解析库。

正向解析库:

资源记录:rr(resource record)

有类型的概念;用于此记录解析的属性。

SOA:Start of Authority,起始授权记录,一个区域文件只能有一个。

NS:Name Server,可以有多个。

MX:Mail eXchange,邮件交换器。标明域内的邮件服务器,MX记录有优先级属性(0-99);数字越小,优先级越高。

A:FQDNàIP,专用于正向解析库。

PTR:IPàFQDN,专用于反向解析库。

AAAA:FQDNàIPv6,专用于正向解析库。

CNAME:Canonical Name,正式名称。

解析库文件同步的过程:区域传送(单方向传送)

完全区域传送:axfr

将整个区域传送到各服务器。

增量区域传送:ixfr

只将区域有改动的记录传送到各服务器。

四、DNS的查询过程

DNS采用两种查询机制:递归和迭代。

客户端向DNS服务器发起查询请求,DNS服务器搜索本地解析库没有结果,于是向根域发起查询请求,根域告诉DNS服务器.com服务器上有它需要的资源,DNS服务器又向.com服务器发起查询请求,结果被告知.google.com服务器上有它想要的结果,最后终于在.google.com服务器上找到了解析记录,并返回给了客户端。

在上面的查询过程中,客户端只发起了一次请求,并得到了最后的结果,这种查询方式被称为递归。

而DNS服务器在查询过程中不停的发起请求,直到找到想要的结果,这种查询方式被称为迭代。

这就好比你想知道某日本微电影女星的健康状况,你去问了小A,虽然小A也不知道,但他好面子想表现,于是他向小B咨询,小B让他问问小C,小C让他利用翻墙软件去日本的网站上去看看,最后终于知道了答案并将告诉了你,在这个求知过程中你向小A发起的询问就是递归的,对于你来说是最省心,而对于小A来说是比较悲催的;小A的发起查询就是迭代的,对于小A来说是比较辛苦的,但对于小B、小C来说是基本上没什么工作量的。

注意:根不会为任何请求递归。

DNS服务器并不需要在客户端每次发起请求时都执行迭代查询,DNS服务器会将之前的查询结果在本地存储一份,如果客户端再次请求此资源,可以马上做出响应,这个存储空间称为本地DNS缓存。

另外我们可能还经常会听到两个概念权威DNS服务器和非权威应答。

权威DNS服务器说的容易理解一点,就是如果本地DNS的配置文件中写明了FQDN与IP的对应关系的,并授权管理这个域时,那么就称这台DNS服务器是该域的权威DNS服务器。

客户端得到的DNS查询结果是从本地DNS缓存中获得的,那么称这个解析结果为非权威应答;非权威应答的结果不一定是正确的,有可能权威DNS服务器上记录已修改,而缓存中还是未更新的记录。

五、DNS的查询顺序

1、本地hosts文件

2、本地DNS缓存

3、本地DNS服务器

4、发起迭代查询

六、DNS使用的端口号

DNS协议使用udp/tcp的53端口提供服务,客户端向DNS服务发起请求时,使用udp的53端口;DNS服务器间进行区域传送的时候使用TCP的53端口。

七、DNS服务器类型

1、主DNS服务器

为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务。

2、从DNS服务器

主服务器DNS长期无应答,从服务器也会停止提供服务。

主从区域之间的同步采用周期性检查+通知的机制,从服务器周期性的检查主服务器上的记录情况,一旦发现修改就会同步,另外主服务器上如果有数据被修改了,会立即通知从服务器更新记录。

3、缓存服务器

服务器本身不提供解析区域,只提供非权威应答。

4、转发服务器

当DNS服务器的解析区域(包括缓存)中无法为当前的请求提供权威应答时,将请求转发至其它的DNS服务器,此时本地DNS服务器就是转发服务器。

时间: 2024-10-14 05:10:38

DNS服务器之理论基础的相关文章

CentOS下dns服务器之授权

dns授权 dns授权分为两步 1]父域dns对子域dns实现授权, 2]子域对父域 1.改变根提示,把父域dns视为根 2.转发器 dns服务器的搭建请看dns服务器搭建 一.修改父域实现对子域的授权 修改dns服务器配置文件注释最后一行 [[email protected] chroot]# vim etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory    

linux下DNS服务器之视图和轮询

案例4 视图  viwer 拓扑图: 1.查看帮助 [[email protected] ~]# vim /usr/share/doc/bind-9.8.2/sample/etc/named.conf [[email protected] ~]# cd /var/named/chroot/etc 2.[[email protected] etc]# vim named.conf 添加视图: 36 view    "lan-view" 37 { 38 zone "."

DNS服务器之二:从服务器的实现

DNS从服务的搭建 一.安装  [[email protected]~]# yum install bind 二.修改主配置文件  [[email protected]~]# cat /etc/named.conf 将以下三行注释掉 //               listen-on port 53 { 127.0.0.1; }; //               listen-on-v6 port 53 { ::1; }; //               allow-query     {

DNS服务器之简单配置(一)

名词解释: 域名: 域名是域名系统名字空间中,从当前节点到根节点的路径上所有节点标记的点分顺序连接. 域: 域是指域名系统名字空间中的一个子集,也就是树形结构名字空间中的一颗子树.这个子树根节点的域名就是该域的名字, 域的级别: 顶级域(TLD, Top Level Domain)是指域名系统名字空间中根节点下最顶层的域.顶级域也称一级域,顶级域的下级就是二级域,二级域的下级就是三级域,以此类推.每个域都是其上级域的子域.最早的顶级域名,也是现在说的国际域名,按照用途分为的7个大类: .com:

DNS服务器之主从复制和子域转发(二)

主从复制: DNS服务器类型: 主服务器:区域解析库手动创建 从服务器:区域解析库不能手动创建和修改,要从主服务器同步而来 从服务器从主服务器上拉取区域解析库用完全区域传送AXFR和不完全区域传送IXFR 完全区域传送是在从DNS服务器第一次从主服务器同步是用完全区域传送AXFR 1.配置主从DNS服务器需要时间同步 crontab: */3 * * * * /usr/sbin/ntpdate  172.16.0.1 &> /dev/null 每3分钟从时间服务器同步一次时间 2.从服务器B

DNS服务器之子域授权

一.子域授权 在一个较大的生产环境中,一般还需要在公司内分多个部门,这些部门负责的域是整个公司所负责的域的子域,这时公司内除了需要主从DNS服务器彼此之间互相协调提供服务之外,还需要为每个子域授权并让各个子域分别管理各自部门的主机,以减轻公司所在域的系统管理员的负担,这就是子域授权. 假设公司内有两个部门,分别是dev和ops,对于itab.com这个域来说,需要分别为dev.itab.com和ops.itab.com这两个子域授权,而在这两个子域下还分别管理www.dev.itab.com和w

DNS服务器之bind

bind早期是有伯克利维护,后来交给了ISC进行维护,官方站点www.isc.org 在linux主机上提供可供选择的域名解析机制,在/etc/nssswitch.conf文件提供了域名解析的平台,里面可以定义多重解析域名的方法以及本主机采用优先采用哪种域名解析方法. hosts:      files dns 其中files表示优先使用本地hosts文件来解析域名 dns表示其次使用dns服务来解析域名,这两者的顺序即表示他们使用时的优先级 而在/usr/lib64目录下有以下三口库文件可以实

DNS服务器之配置

一.安装DNS服务器 DNS服务的安装包为bind,使用yum直接安装即可: 安装完成后,查看DNS服务相关的文件: 二.配置正向区域 1.在配置正向区域之前,先来看下主配置文件中的内容: 全局配置段 其中: listen-on port 53:监听端口,默认是本机,即只允许本机进行DNS查询,可以使用any开放给所有用启. direcoryt:指明正.反向解析区域的配置文件的存放路径. dump-file.statistics-file.memstatistics-file:这三个文件为统计信

部署DNS服务器之主机A记录

一. 部署实验所需要的环境: 1. 2. 使用ipconfig检查三台服务器的IP地址是否配置正确并用ping检查相互之间能正常通讯 Server01 Server02 Server03 创建主机A记录: 打开服务器管理器,打开右上角"工具"中的DNS: 点击"正向查找区域"(正向查找区域:域名解析为IP),然后右键: 新建区域 在这里系统为我们弹出一个新建区域向导的窗口,我们直接点击下一步: 系统让我们选择新建的区域类型,这里分为三个区域 1.主要区域:包含区域内