A-A+

DNS服务器配置的相关知识和操作

2016年02月16日 站长资讯 暂无评论

一、什么是名称解析?

我们知道,主机之间通信必需要知道对方的ip地址,但是,ip地址并不好记,而且互联网上主机那么多,不可能都记下来。有一个解决办法,我们可以给主机取个方便记忆的名称,让名称与ip地址建立关联,然后我们就可透过主机的名称访问主机了。例如,用户要访问网易,并不是直接输入其web主机的ip地址,而是输入其名称www.163.com,这个名称会被某种机制解析为对应的ip地址,用户获取到其ip地址后就能发起连接请求了

所以,名称解析就是根据用户所提供的一种名称,去查询解析库,以得到另一种名称(地址)。解析库实际上是某种存储,存储着名称和地址之间的对应关系,这种存储有多种形式:

文本文件:不适宜存储大量的记录,检索缓慢;如本地的/etc/hosts文件;

关系型数据库:有索引机制,检索快;如mysql,oracle

LDAP(lightweight directory access protocol,轻量目录访问协议):检索比关系型数据库更快

二、DNS基础

DNS(domain name system,域名系统)就是一种名称解析机制或协议

DNS采用C/S架构:

server:bind,53/udp(用于DNS查询,较快),53/tcp(用于区域传送)

client:共享库

1、DNS的分级授权管理:

由于互联网主机太多,名称解析请求量太过庞大,在一个或多个DNS服务器上存储所有的记录完全不现实,为此,DNS实行分级授权管理:将整个名称空间分成多级多个域,每个DNS服务器管理一片区域。每级DNS服务器管理下一级DNS服务器,不越级管理,直至最后一级DNS服务器解析一块区域的主机。好比地球上有多个国家,国家又分省、省分市、市分区、一个区由多个公民组成;中央管理省、省管理市...,但中央不会直接管理公民。
wKiom1ZdCoiisHg4AAF3uapxstk450.png

根域:root domain,整个名称空间,由一个“.”表示。全球有13个DNS根服务器

一级域(顶级域):top-level domain

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

国家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir

反向域:.in-addr.arpa

二级域:公司、组织、个人使用;如.sohu,.amazon

主机:如www,mail

例如 www.163.com,实际上末尾省略了一个“.”,完整的应写作www.163.com.,我们称为之为 FQDN(full qulified domain name,完全限定域名),从右到左其区域逐渐缩小:其一级域为“.com”,二级域为“.163”,因此域名为“.163.com.”,而主机名为www

▲FQDN中的主机名与主机的hostname是两个不同概念,不要求一样:前者是在网络上公开的用于通信的主机标识,可供解析;后者只是某个特定主机的代号,不能被解析。例如www.163.com这个站点可能对应多个ip,即对应多个web主机,这些主机在网络上有个共同的标识www,而在本地我们可以分别给它们取名node1,node2....以作区分

2、DNS解析:

正向解析:FQDN --> IP,一个名称可以对应多个ip

反向解析:IP --> FQDN,一个ip也可对应多个名称

正向解析和反向解析分别使用一个解析库

3、DNS查询过程:

总体过程为:/etc/hosts --> local dns cache --> dns server (cache) --> 迭代

客户端首先查询本机上的/etc/hosts文件,无结果则查询本机DNS缓存,无结果再请求区域内的DNS服务器,DNS服务器上若没有结果则会发起迭代查询只有针对非本区域的FQDN的才会发起迭代),获取到结果后会先缓存再返给客户端,客户端也会将解析的结果缓存。详细过程见上图

本机DNS缓存加速了名称解析过程,减轻了服务器端压力。本机DNS缓存和DNS服务器缓存都是有有效期的,因为名称对应的ip地址是可能会发生改变的

根据DNS的分级管理和迭代查询机制,一个DNS服务器要在互联网上工作,必须到域名注册商那里注册(在父域DNS服务器的区域解析库中添加NS和A记录)

4、DNS服务器类型:

主DNS服务器

从DNS服务器

缓存服务器:不解析任何区域,但允许递归

主从DNS服务器解析库文件同步的过程:区域传送 (单方向传送),基于53/tcp

完全区域传送:axfr

增量区域传送: ixfr

周期性检查 + 通知

5、区域解析库

资源记录: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,正式名称

㈡资源记录格式:

name [ttl] IN RRType value #ttl为DNS缓存时长

①SOA:Start Of Authority,起始授权记录。任何解析文件的第一个记录的类型必须是SOA且一个区域文件只能有一个

name: 区域名称,通常可以简写为@

value: 主DNS服务器的FQDN,也可以当前区域的区域名称;

例如:@ IN SOA ns.xiaoxiongboke.com. admin.xiaoxiongboke.com.(邮箱) (

serial number #解析库的版本号,例如2014080401;若有配置主从,每次修改解析文件,要更新版本号,以便从服务器同步

refresh time #主从服务器周期性同步的时间间隔

retry time #主服务器未响应从服务器,从服务器的重试时间间隔

expire time #主服务器一直无响应,从服务器解析库的失效时长

negative answer ttl #否定答案(无结果)的统一缓存时长
)

说明:@表示当前当前定义的区域,按上面的例子,完整地应写为xiaoxiongboke.com.

因@在解析库中有特殊意义,故邮箱地址中不能使用,而用.代替,如上面的admin.xiaoxiongboke.com.

②NS:name server

name: 区域名称

value: DNS服务器的FQDN

例如:@ IN NS ns.xiaoxiongboke.com.

注意:

如果有多台NS服务器,每一个都必须有对应的NS记录;

对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

③MX:Mail eXchanger

name: 区域名称

value: 邮件服务器的FQDN

例如:

@ IN MX 10 mail.xiaoxiongboke.com.

@ IN MX 20 mail2.xiaoxiongboke.com.

注意:

如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性(0-99)

④A:Address

name: FQDN

value: IP

例如:

www.xiaoxiongboke.com. IN A 1.1.1.1

www.xiaoxiongboke.com. IN A 1.1.1.2

pop3.xiaoxiongboke.com. IN A 1.1.1.3

imap.xiaoxiongboke.com. IN A 1.1.1.3

泛域名解析:将所有匹配不到资源记录的请求都解析到指定ip地址

*.xiaoxiongboke.com. IN A 1.1.1.1

用途:

⑴可以让域名支持无限的子域名;

⑵防止用户错误输入导致的网站不能访问;例如 wwww.xiaoxiongboke.com

⑤AAAA:ipv6 IP

⑥CNAME:Canonical Name

name: FQDN

value: FQDN

例如:

www.xiaoxiongboke.com. IN A 1.1.1.5

web.xiaoxiongboke.com. IN CNAME www.xiaoxiongboke.com. #前者是后者的别名

⑦PTR:pointer,反向解析

name: 逆向的主机IP地址加后缀.in-addr.arpa.,例如172.16.100.7/16, 网络地址为172.16, 主机地址为100.7,其name为7.100.in-addr.arpa.

value: FQDN

例如:

7.100.in-addr.arpa. IN PTR www.xiaoxiongboke.com.

三、DNS服务器基本配置

bind (bekerley internet name domain)是DNS服务端的软件包名

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

配置文件:/etc/named.conf, /etc/named.rfc1912.zones

区域解析库文件:/var/named/zone_name.zone

安全起见,DNS服务进程是以系统用户named的身份运行的。named可运行于chroot环境,即可以/var/named/chroot/作为named进程的根,要实现这一功能需要另外安装bind-chroot包。

Linux有一个特性:只有管理员才能使用小于1024的端口,因此named进程得由管理员启动,启动完成后再切换为以named系统用户的身份运行

1、安装配置过程

①安装程序包

yum install bind

②修改配置文件:

  1. options {    #全局配置段  
  2.            ...  
  3.            // directory "/var/named";  #工作目录;必不可少  
  4.          };  
  5.         
  6.         zone "ZONE_NAME" IN {     #可定义多个区域  
  7.            type {master|slave|hint|forward};  
  8.            file "mageedu.com.zone";    #注意:必须以分号结尾  
  9.         };  
  10.    
  11.         logging {  
  12.           ...  
  13.         };  

■options中几个重要参数:

1、listen-on port 53 { any; };

监听在哪些地址上。预设是监听在127.0.0.1,亦即只有本机可以对DNS服务进行查询,所以应改成any或直接用//将本条目注释掉

2、directory "/var/named";

工作目录,解析库的存放位置。必不可少

3、allow-query { any; };

这个是针对用户端的设定,指定谁可以对我的DNS服务提出查询请求

4、recursion yes; #允许递归

recursion no; #不递归,意思就是本机管理的域名之外的DNS请求都不回答

allow-recursion { ip; };

★区域既可定义在主配置文件/etc/named.conf中,也中定义在/etc/named.rfc1912.zones中,因为主配置文件默认已 include 后者了

反向区域的名称为逆向网络地址加.in-addr.arpa做后缀。例如 16.172.in-addr.arpa

③为每一个区域提供解析库

变量的定义

资源记录

说明:

⑴正向解析和反向解析文件中的名称可以仅使用相对名称,它们均相对当前区域而言;

⑵绝对后缀可以使用$ORIGIN来定义;

2、检查工具

named-checkconf:检查配置文件的语法和完整性

named-checkzone:检查区域解析库文件的语法和完整性

用法:named-checkzone zonename filename

例如named-checkzone xiaoxiongboke.com /var/named/xiaoxiongboke.com.zone

service named configtest

标签:

给我留言