DNS&BIND入门

本文主要论述DNS基本原理,BIND正反向解析、主从同步、子域授权及view

1、DNS基本原理

DNS:Domain Name Service,域名服务器,基于udp和tcp完成名称解析服务

C/S架构的协议--客户端、服务端;监听于53/udp,53/tcp两个端口;属于应用层协议

BIND:Bekerley Internat Name Domain-->ISC

BIND是DNS在互联网上最著名的实现,提供DNS和DHCP服务

DNS查询类型:

递归查询:一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;

迭代查询:一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;

名称服务器:域内负责解析本域内的名称的主机,通常用ns#(name server)表示

根服务器:从A至M编号,其中:美国10个(1个主根和9个辅根)、欧洲2个(位于英国和瑞典)、亚洲1个(位于日本)。1个为主根服务器,放置在美国弗吉尼亚州的杜勒斯,由美国VeriSign公司负责运营维护,其余12个均为辅根服务器。

因为迭代查询极耗资源,所以DNS服务器通常只为自己组织内的客户端做解析,通过在权限上加以限制来实现

DNS解析类型

FQDN-->IP(正向解析)

FQDN:Full
Qualified Domain Name--完全限定域名

IP-->FQDN(反向解析)

反向解析难度极大,目前应用:邮件服务器根据反向解析,拒绝接收来自没有域名的站点发来的信息以降低垃圾邮件的数量

注意:正、反向解析是两个不同的名称空间,是两棵不同的解析树;各需要一个解析库来分别负责本地域名的正向和反向解析

DNS服务器类型

主DNS服务器

从(辅助)DNS服务器

缓存DNS服务器

转发器

主DNS服务器:维护所负责解析的域内的解析库(解析库由管理员维护)

序列号:解析库的版本号;同步解析库的前提:主服务器解析库内容发生变化,其序列号递增加1

刷新时长:从服务器向主服务器请求同步解析库的时间间隔

重试时长:从服务器向主服务器请求同步解析库失败时,再次尝试的时间间隔

过期时长:从服务器始终联系不到主服务器时,多久之后放弃从服务器角色,停止服务

否定应答的TTL:解析得到的否定答案的缓存时长

从DNS服务器:解析库从主DNS服务器或其他DNS服务器“复制”(区域传送)而来

区域传送:全量传送:传送整个解析库

增量传送:传送解析库变化的那部分内容

缓存DNS服务器:不负责解析任何域,也不用注册域名,用于帮助域内的客户端向互联网的DNS服务器发送请求,把结果返回给客户端的同时在服务器上做一份缓存

2、BIND正反向解析

(1)基本概念

一次完整解析的流程

Client-->hosts文件-->DNS Service

Local Cache-->DNS
Server(recursion)-->Server Cache-->iteration(迭代)

解析答案有两种:

肯定答案                 权威答案

否定答案                 非权威答案

请求的条目不存在等原因导致无法返回结果

区域解析库,由众多RR组成

资源记录:Resource Record--RR

记录类型:A、AAAA、PTR、SOA、NS、CNAME、MX

资源记录的类型标记了主机在域内处于什么样的角色上

SOA:Start OfAuthority,起始授权记录;一个解析库有且仅有一个SOA记录,且必须为解析库的第一条记录;定义了当前解析库为哪个区域所用,由谁负责;

A:internetAddress,FQDN-->IPv4

AAAA:internetAddress,FQDN-->IPv6

PTR:PoinTeR,IP-->FQDN

NS:NameServer,专用于标明当前区域的DNS服务器

CNAME:Canonical Name,别名记录

MX:MaileXchanger,邮件交换器,标明该域实现邮件交换的主机是谁

资源记录定义的格式

语法格式:name  [TTL]  IN  rr_type  value

TTL:解析得到结果在客户端的缓存时长,在服务器端由管理员定义

注意:

(1)TTL可从全局继承

(2)@可用于引用当前区域的名字

(3)相邻的两个资源记录的name相同时,后续的可以省略

(4)同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮询方式响应

(5)同一个值也可能定义多个不同的名字,仅表示通过多个不同的名字可以找到同一个主机

SOA:

name:当前区域的名字,例如“magedu.com.”;

value:有多部分组成

1、当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字

2、当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用“.”替换

3、(主从服务协调属性的定义以及否定答案的统一的TTL)

示例:                 [TTL]

magedu.com.  86400   IN   SOA   ns.magedu.com.   nsadmin.magedu.com.(                                                       2015042301;    序列号(一般不要超过10位数字)

2H;            刷新时长

10M;           重试时长

1W;            过期时长

1D;            否定答案的TTL值

NS:

name:当前区域的名字

value:当前区域的某DNS服务器的名字,例如ns.magedu.com.

注意:

(1)一个区域可以有多个NS记录

(2)对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录

示例:

magedu.com.  IN   NS   ns1.magedu.com.

magedu.com.  IN   NS   ns2.magedu.com.

MX:

name:当前区域的名字

value:当前区域的某邮件服务器(smtp服务器)的主机名

注意:

(1)一个区域内,MX记录可以有多个,但是每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小,优先级越高

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

示例:

magedu.com.   IN   MX  10  mx1.magedu.com.

magedu.com.   IN   MX  10  mx2.magedu.com.

A:

name:某主机的FQDN,例如www.magedu.com.

value:主机名对应的主机地址

示例:

www.magedu.com.  IN   A   1.1.1.1

www.magedu.com.  IN   A   1.1.1.2

同一个名字可以通过多条记录个不同的值,DNS解析时会轮询响应,即:第一次解析时解析为1.1.1.1,第二次解析为1.1.1.2,第三次1.1.1.1,第四次1.1.1.2。。。

mx1.magedu.com.   IN   A   1.1.1.3

mx2.magedu.com.   IN   A   1.1.1.3

同一个值有多个不同的名字

注意:

避免用户写错名称时给否定答案,可以通过泛域名解析进行解析至某特定地址

例如假设百度网址www.baidu.com对应的是1.1.1.4,若A记录写成“www.baidu.com IN A 1.1.1.4”,则用户在输入“ww.baidu.com”或“baidu.com”时会无法解析到1.1.1.4,得到否定答案,但如果在A记录上加上两条“*.baidu.com IN A 1.1.1.4”“baidu.com IN A 1.1.1.4”,就可以正确解析到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.magedu.com.

简写成

4   IN   PTR   www.magedu.com.

注意:网络地址及后缀可省略,主机地址仍然要反写

CNAME:

name:别名的FQDN

value:正式名字的FQDN

示例:

web.magedu.com.   IN   CNAME  www.magedu.com.

(2)正向解析

缓存名称服务器的配置

监听外部地址即可(通过修改配置文件来实现)

dnssec:Domain
Name System Security Extensions (DNSSEC)DNS安全扩展,是由IETF提供的一系列DNS安全认证的机制。它提供了一种来源鉴定和数据完整性的扩展,但不去保障可用性、加密性和证实域名不存在。

测试建议关闭dnssec,通过注释下图各选项来实现

除此之外,下图选项也必须注释掉或改为any,否则服务器只允许本机查询

正向解析测试

(3)反向解析

反向解析测试

 3、主从同步

6、主从服务器时间应该同步,可通过ntp进行

7、bind程序的版本应该保持一致,否则,应该从高,主低


  4、子域授权

子域授权

分布式数据库的实现依赖于子域授权

正向解析区域的子域授权方法:

glue record:粘合记录,将上级服务器和下级服务器建立起关联

在父域的解析库文件中定义一个子域的DNS:

ops.magedu.com.
        IN
        NS
        ns1.ops.magedu.com.

ops.magedu.com.
        IN
        NS
        ns2.ops.magedu.com.

ns1.ops.magedu.com.
        IN
        A
        1.1.1.1

ns2.ops.magedu.com.
        IN
        A
        1.1.1.2

fin.magedu.com.
        IN
        NS
        ns1.fin.magedu.com.

fin.magedu.com.
        IN
        NS
        ns2.fin.magedu.com.

ns1.fin.magedu.com.
        IN
        A
        3.1.1.1

ns2.fin.magedu.com.
        IN
        A
        3.1.1.2

注意:子域和父域的服务器无须在一个网络内,只要通过互联网彼此间能通信即可

5、BIND view(视图)

一个bind服务器可以定义多个view,每个view中可以定义一个或多个zone;

每个view匹配一组客户端;

多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件;

定义格式:

view VIEW_NAME {

match-clients {  };

}

注意:

(1) 一旦启用了view,所有的zone都只能定义在view中;

(2) 仅需在允许递归请求的客户所在的view中定义根区域;

(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表;

DNS&BIND入门

时间: 2024-08-07 21:19:54

DNS&BIND入门的相关文章

DNS从入门到管理(一)

DNS概念 DNS三步法 反向解析 主从DNS服务器的实现 子域授权 智能DNS 压力测试与DNS排错 DNS概述 DNS(Domain Name System,域名系统),域名和IP地址相互映射的一个分布式数据库,通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析.而DNS的主要作用,就是域名解析,将主机名解析成IP地址.DNS这种机制能够完成从域名(FQDN)到主机识别IP地址之间的转换,在DNS诞生之前,这个功能主要是通过本地的一个hosts文件来记录域名和IP的对应关系,但ho

转: DNS 原理入门 (from 阮一峰)

转自:http://www.ruanyifeng.com/blog/2016/06/dns.html DNS 原理入门 作者: 阮一峰 日期: 2016年6月16日 DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读完此文后,你就能完全理解DNS. 一.DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址.你可以把它想象成一本

DNS 原理入门

DNS 原理入门 导读 DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读完此文后,你就能完全理解DNS. 一.DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址.你可以把它想象成一本巨大的电话本. 举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.12

DNS&BIND——动态更新的DNS主从复制

本文配置的正向解析的主从服务,反向同理,不赘述了.... 从服务器应该是一台独立的名称服务器(首先要成为缓存服务器) 主动通知的必要条件(i或ii,满足其一即可) 主服务器的区域解析库文件中,必须有一条NS记录是指向从服务器(主动通知) master: vim  /etc/named.rfc1912.zones also-notify {slave_ip;}; 从服务器只需要定义区域.而无需提供解析库文件; 解析库文件自动同步至/var/named/slaves目录中 主服务器得允许从服务器作区

DNS&BIND——基础知识

DNS & BIND(1) what-DNS& BIND DNS: Domain Name Service 已于C/S架构的协议 53/udp:  域名解析 53/tcp  :  区域传输 BIND: Bekerley Internet Name Domain BIND对DNS协议的开源实现,包含对域名的查询和响应所需的所有软件 BIND是互联网上最广泛使用的一种DNS服务器 传输方式 1)区域传输 的时候使用TCP协议 : 主DNS服务器: 从自己本机的数据文件中读取该区的DNS数据信息

DNS&BIND——DNS的ACL和视图

bind中的基础安全相关配置 (一)ACL定义:把一个或多个主机归并为一个集合,并通过一个统一的名称调用 acl acl_name{ ip; ip; net/prelen;} ; 实例: acl mynet{机 172.25.0.0/46;}; bind 由四个内置的aclnone:    没有一个主机any:     任意主机local:   本机localnet:本机的IP同掩码运算后得到的网络地址   注意:    acl,先定义后使用,一般定义在配置文件中的option前面 访问控制的指

DNS&BIND——源码编译bind9和DNS的压力测试

源码编译bind9 why-Source installation-bind9 安装rpm包那么方便,为什么要手动编译bind9呢,因为编译安装可以按照自己的需求拓展相应的模块,可以增加软件的灵活性哦~ how-Source installation-bind9 安装编译环境 编译源码通常都需要安装Devel包等~~~ [[email protected] yum.repos.d]# yum groupinstall "Development Tools" "Server P

Linux DNS (bind) 子域授权

一个区域内可能有主DNS.从DNS.子域DNS,本节以主DNS授权子域为例讲解. 子域授权配置过程: 1.编辑主DNS正向区域文件 [[email protected] named]# vim dove.com.zone    #编辑主DNS正向区域文件 $TTL    600 @       IN      SOA     dove.com.       admin.dove.com. (            2015041802   #由于有从DNS服务器,所以序列号每次修改须加一    

DNS原理入门

DNS是互联网上最重要的协议之一,DNS服务是其他很多服务的基础服务,本文详细介绍DNS的原理,并介绍如何使用工具观察DNS的运作机制. 一.DNS是什么? DNS(Domain Name System,域名系统),是一种应用层协议,它要实现的功能是将IP与主机名的映射关系存储在DNS服务器上,而最常用的功能是将主机名解析为IP地址,这样用户就可以基于一串易于记住的字符串(主机名)访问互联网上的主机了,而不需要记住一串难记的数字(IP地址).这个DNS服务器可以理解为数据库,这个数据库上是按照键