DNS服务原理及区域解析库文件配置

一、DNS服务概述

DNS(Domain Name service或者Domain Name Server)中文名叫做域名服务或者域名服务器, 属于应用层协议, 为C/S架构, 使用TCP/UDP的53号端口.

[[email protected] ~]# cat /etc/services | grep "^domain\b"
domain          53/tcp                          # name-domain server
domain          53/udp

1.1 DNS服务架构概览

DNS服务架构见下图:

从图中可以看出, DNS服务的架构是一个分布式的架构, 最顶层是根域服务器, 中间是顶级域名服务器, 接着是二级域名和三级域名服务器.
每一个域名服务器都只负责解析本域内的名称的主机. 根域服务器全球共有13组.

常用的顶级域名(TLD, Top Level Domain)有com, edu, mil, gov, net, org, int等, TLD分三类, 组织域、国家或地区域(.cn, .us, ...)和反向域.

1.2 DNS服务查询类型

DNS服务查询有两种类型:

  • 递归查询: 只发送一次查询请求就能得到最终答案, 普通客户端就是使用的递归查询
  • 迭代查询: 每次查询的答案为参考答案, 必须进行下一次查询, 通过1次或多次查询得到最终答案, 缓存DNS服务器(一般由电信运营商提供)使用的就是迭代查询

DNS查询过程图如下:

NOTE: 客户端在查询DNS服务器之前会先查询本地的hosts(名称解析配置文件)文件, hosts文件中没有查询到需要的信息才会去查询DNS服务器.
hosts路径:

  • linux: /etc/hosts
  • windows: %WINDOWS%/system32/drivers/etc/hosts
    # hosts格式:
    IP DomainName
    1.1.1.1 www.xxx.com
    2.2.2.2 www.yyy.com

一次完整的DNS查询请求经过的流程:

# 1. 当你请求www.xxx.com这个域名时, 会先去查找本地hosts文件, 如果本地hosts文件中有结果, 则直接返回
# 2. 如果hosts文件中没有结果, 则会请求DNS serveice, DNS service会先查找Local DNS Cache, 有结果则直接返回
# 3. 如果没有结果, 就去会从根域服务器开始迭代查询
# 4. 最后迭代查询有结果就直接返回给客户端

解析答案有四种类型:

  • 肯定答案
  • 否定答案: 请求的条目不出那种等原因导致无法返回结果
  • 权威答案
  • 非权威答案

1.3 DNS解析类型

DNS解析类型有两种:

  • 正向解析: FQDN(Full Qualified Domain Name) --> IP
  • 反向解析: IP --> FQDN

FQDN的中文意思是完全限定域名, 例如: www.buyaoliandebaidu.com就是一个FQDN.
正向解析和反向解析各需要一个解析库来进行解析, 称之为正向区域和反向区域.

NOTE: 正反向解析是两个不同的名称空间, 是两颗不同的解析树.

1.4 DNS服务器类型

DNS服务器类型分为四类:

  • 主DNS服务器: 维护所负责解析的域内解析库的服务器, 解析库由管理员维护
  • 辅助DNS服务器: 从主服务器或其他从服务那里“复制(区域传送)”一份解析库, 从服务器根据主服务器的序列号变化来更新解析库
    • 序列号: 解析库的版本号; 前提: 主服务器解析库内容发生变化, 其序列号递增
    • 刷新时间间隔: 从服务器从主服务器请求同步解析库的时间间隔
    • 重试时间间隔: 从服务器从主服务器请求同步解析库失败时, 再次尝试的时间间隔
    • 过期时长: 从服务器始终联系不到主服务器时, 多久之后放弃从服务器角色并停止提供服务器
  • 缓存DNS服务器
  • 转发器

区域传送有两种, 全量传送(传送整个解析库)和增量传送(传送解析库变化的那部分内容).

二、DNS的区域解析库

DNS的区域解析库中定义了资源记录(Resource Record, RR), 资源记录类型如下:

  • SOA(Start Of Authority): 起始授权记录, 一个区域解析库仅能有一个SOA记录, 而且必须为解析库的第一条记录
  • A(Internet Address): 用于实现将FQDN解析为IP地址
  • AAAA: 用于IPv6, 将FQDN解析为IPv6地址
  • PTR(PonTeR): 将IP解析为FQDN
  • NS(Name Server): 专用于标明当前区域的DNS服务器
  • CNAME(Canonical Name): 别名记录
  • MX(Mail eXchanger): 邮件交换器

2.1 资源记录定义的格式

定义资源记录的语法:

# 语法: name    [TTL]   IN  tt_type     value
# NOTE:
    # TTL可从全局继承
    # “@”可用于引用当前区域的名字
    # 同一个名字可以通过多条记录定义多个不同的值, 此时DNS服务器会以轮询方式响应
    # 同一个值也可能有多个不同的定义名字, 通过多个不同的名字指向同一个值进行定义; 仅此表示通过多个不同的名字可以找到同一个主机而已

SOA记录:

# name: 当前区域的名字, 例如: leistudy.com
# value: 有多部分组成
    # 当前主区域的DNS服务器的FQDN, 也可以使用当前区域的名字
    # 当前区域管理员的邮箱地址, 但地址中不能使用@符号, 一般用“.”代替, 例如linuxedu.magedu.com
    # 主从服务协调属性的定义以及否定的答案的统一的TTL

# 示例:
leistudy.com.   86400   IN  SOA     ns.leistudy.com.    nsadmin.leistudy.com.   (
            2018022801  ;序列号
            2H          ;刷新时间
            10M         ;重试时间
            1W          ;过期时间
            1D          ;否定答案的TTL值
)

NS记录:

# name: 当前区域的名字
# value: 当前区域的某DNS服务器的名字, 例如: ns.leistudy.com.
    # NOTE: 一个区域可以有多个NS记录

# 示例:
leistudy.com.   IN  NS  ns1.leistudy.com.
leistudy.com.   IN  NS  ns2.leistudy.com.

NOTE1: 相邻两个资源记录的name相同时, 后续可省略
NOTE2: 对NS记录而言, 任何一个ns记录后面的服务器名字, 都应该在后续有一个A记录

MX记录:

# name: 当前区域的名字
# value: 当前区域的某邮件服务器(smtp服务器)的主机名, 一个区域内, MX记录可有多个; 但每个记录的value之前应该有一个数字(0-99), 表示此服务器的优先级, 数字越小, 优先级越高

# 示例:
leistudy.com.   IN  MX  10  mx1.leistudy.com.
                IN  MX  20  mx2.leistudy.com.

# NOTE: 对MX记录而言, 任何一个MX记录后面的服务器名字, 都应该在后续有一个A记录

A记录:

# name: 某主机的FQDN, 例如www.leistudy.com.
# value: 主机名对应主机的IP地址

# 示例:
www.leistudy.com.   IN  A   1.1.1.1
www.leistudy.com.   IN  A   1.1.1.2
mx1.leistudy.com.   IN  A   1.1.1.3
mx2.leistudy.com.   IN  A   1.1.1.3

# NOTE: 避免用于写错名称时给错误答案, 可通过泛域名解析进行解析至某特定地址
# 示例:
*.leistudy.com. IN  A   1.1.1.4
magedu.com. IN  A   1.1.1.4

AAAA记录:

# name: FQDN
# value: IPv6

PTR记录:

# name: IP, 有特定格式, 把IP地址反过来写, 例如1.2.3.4要写作4.3.2.1; 而且有特定后缀: in-addr.arpa; 所以完整写法为“4.3.2.1.in-addr.arpa”
# value: FQDN

# 示例:
4.3.2.1.in-addr.arpa. IN    PTR www.leistudy.com

# 简写: 网络地址及后缀可省略, 主机地址依然要反写
4   IN  PTR     www.leistudy.com.

CNAME记录:

# name: 别名的FQDN
# value: 真正名字的FQDN

# 示例:
web.leistudy.com.   IN  CNAME   www.leistudy.com.

NOTE: 配置示例请查看博客http://blog.51cto.com/13501622/2092851

原文地址:http://blog.51cto.com/13501622/2092840

时间: 2024-10-31 09:51:38

DNS服务原理及区域解析库文件配置的相关文章

DNS服务正向、反向解析区域,主/从区域数据库复制,子域授权及基本安全控制

DNS是应用层的协议,默认使用UDP的53端口,也会用到TCP的53端口. DNS名称解析方式: 名称 --> IP:正向解析 第一段这种方式叫递归查询,只发出去一次请求,就给它返回答案:第二段这种方式就迭代查询,要发出多次请求,需要自己查询不同域名,最后才返回答案:这就是DNS的查询类型. 一般内网递归,外网迭代. IP --> 名称:反向解析 每一层服务器都有各自的数据库,来存储各自负责的网段,这与正向解析的数据库是两个各自独立的数据库. 一次完整的查询请求经过的流程: Client --

DNS服务之正反向解析、主从服务配置

要想使用DNS服务进行解析,需要安装bind.bind-libs.bind-utils这三个程序包. bind: 服务脚本:/etc/rc.d/init.d/named 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key 解析库文件:/var/named/ZONE_NAME.ZONE 注意: (1) 一台物理服务器可同时为多个区域提供解析: (2) 必须要有根区域文件:named.ca (3) 应该有两个(如果包括ipv6

第十八天 DNS服务原理及bind详细配置

1.DNS服务原理详解 2.DNS服务原理详解 3.bind基本配置详解 一.DNS 服务 Domain name server 域名服务,工作在53号端口,查询时使用udp协议,传输时使用tcp协议. FQDN (Full Qualified Domain Name)完全合格域名 根域:root domain   如:.                        一级域:top-level domain  如: com\net\cn\ gov\org\mil\edu\cc\info   

DNS服务正向、反向解析以及主从同步实操(有图有字,易做易懂)

DNS解析大体实操分为:1.DNS正向解析2.DNS反向解析3.DNS主从同步 一.DNS正向解析 1.安装bind工具包通过在线yum库进行安装bind软件包,构建DNS服务.2.修改全局配置文件 只需要修改两个选项:(1)将listen-on后面的IP地址修改为自身IP,作用为监听本机53端口.无论是谁通过本机DNS服务进行域名解析,都能够监听到:(2)将allow-query后面更改为any--这里允许任何人使用本机的DNS服务 3.修改区域配置文件 添加域名和区域数据文件名的文件,在zo

加密算法原理及DNS服务原理

1.简述常见加密算法及常见加密算法原理,最好使用图例解说在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段.利用该手段能够保障数据安全通信的三个目标 1.数据的保密性,防止用户的数据被窃取或泄露: 2.保证数据的完整性,防止用户传输的数据被篡改: 3.通信双方的身份确认,确保数据来源与合法的用户: 而常见的密钥加密算法类型大体可以分为三类:对称加密.非对称加密.单向加密. 对称加密 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加

DNS服务原理解释

简介:DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在TCP与UDP协议之上,使用端口号53. 正文: DNS是由C/S架构的,由服务端提供数据解析的工作,客户端接受解析的最终结果. DNS是将一个服务端的IP地址映射成一个域名,然后客户端访问域名的时候会由服务端去解析

[转] Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装、配置

本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文件传输协议,FTP协议是现今使用最为广泛的网络文件共享协议之一,我们现在也一直有在用着FTP协议来进行各种文件的传输,FTP为我们提供了一种可靠的方式在网络上进行文件的共享 FTP是C/S架构的服务,拥有一个服务器端和一个客户端,FTP底层通过TCP协议来作为传输协议,所以FTP协议是一种可靠的文件

STM32Cube_FW_F4_V1.16.0固件库文件配置

启动文件:STM32Cube_FW_F4_V1.16.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f429xx.s 外设寄存器定义文件:STM32Cube_FW_F4_V1.16.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f429xx.h 系统初始化文件:STM32Cube_FW_F4_V1.16.0\Drivers\CMSIS\Device\S

DNS服务原理详解

一.DNS DNS:Domain Name Service 协议: UDP:53 TCP:53 实现:BIND(Berkeley Internet Name Domain,PowerDNS,dnsmasq MAC-->IP-->主机名称-->DNS 名称解析:将一种格式的信息转化为另外一种格式,以某关键字为标准查找某一数据库的过程 passwd <--> nsswitch转换 login:nsswitch为login提供服务 nsswitch配置文件在/etc/nsswitc