DNS服务器搭建与配置

目录

1.DNS查询方式
2.DNS服务器类型
3.DNS配置的主要文件组
4.name.conf文件的配置
5.DNS的资源记录(Resource Record, RR)格式
6.DNS服务器和客户端配置
7.搭建简单的DNS正向解析服务器
8.配置DNS反向解析解析
9.配置bind-chroot环境
10.补充

正文

  前言:DNS(C/S;53/udp, 53/tcp;BIND;应用层协议)的配置文件是一个复杂的系统,伴随DNS建议出现的很多问题都会引起相同的结果,但大多数问题是由于配置文件中的语法错误而导致的!

 

回到顶部
1.DNS查询方式
迭代查询:客户端向本地 DNS 服务器发出请求后,一直处于等待状态,直到本地名称服务器返回查询结果。以访问 www.baidu.com 为例叙述迭代查询过程。当客户端向本地 DNS 服务器发出请求后,本地 DNS 服务器查询本机缓存,如果有记录,则直接返回;如果没有,则本地 DNS 服务器以客户端的身份将查询请求发给根名称服务器,这个过程是递归查询过程。根名称服务器通过查询返回给本地 DNS 服务器 .com 顶级名称服务器的IP地址;本地DNS服务器收到 .com 顶级名称服务器的IP地址后继续向.com顶级名称服务器发出请求,顶级名称服务器收到请求后查询缓存,如果有记录则直接返回本地DNS服务器,如果没有,则返回baidu.com二级名称服务器的IP地址;本地名称服务器继续发出请求,二级名称服务器同样查找缓存返回www.baidu.com的IP地址。(最多127级域)。

递归查询:客户端和本地DNS服务器的查询就属于递归查询,客户端发出查询请求后处于等待状态,本地DNS以客户端身份询问下一个DNS服务器,直到本地DNS服务器返回确定回复或否定答复。

一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根

--> 顶级域名DNS-->二级域名DNS…

回到顶部
2.DNS服务器类型
主名称服务器(primary name server)。从域管理员构造的本地磁盘文件中加载域信息,该文件(区域文件)包含着该服务器具有管理权的一部分域结构

的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。

从名称服务器(secondary name server)。它可从主服务器中复制一整套域信息。区域文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助

服务器中。这种复制称为”区域文件复制”。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器

也称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。

唯高速缓存名称服务器(caching-only server)。可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得域名服务器查询的结果,一

旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。

当BIND被配置为缓存服务器的时候,它只会回应已缓存的请求,并将所有其他的请求转发到上游的 DNS 服务器。缓存名称服务器只需要.这个zone file文件

即可。

回到顶部
3.DNS配置的主要文件组
/etc/hosts  主机的一个文件列表   添加记录如:111.13.100.92 www.baidu.com

对于简单的主机名解析(点分表示法),默认在请求DNS或NIS网络域名服务器前,/etc/named.conf 通常会告诉程序先查看此文件。

/etc/resolv.conf  转换程序配置文件

在配置程序请求BIND域名查询服务查询主机名时,必须告诉程序使用哪个域名服务器和IP地址来完成这个任务

/etc/named.conf  BIND主文件

设置一般的name参数,指向该服务器使用的域数据库的信息源

/var/named/named.ca  根域名配置服务器指向文件

指向根域名配置服务器,用于告诉缓存服务器初始化

/var/named/localhost.zone  localhost区正向域名解析文件

用于将本地IP地址(127.0.0.1)转换为本地回送IP地址(127.0.0.1)

/var/named/name.local  localhost区反向域名解析文件

用于将localhost名字转换为本地回送IP地址(127.0.0.1)

/etc/named.rfc1912.zones  区块设置文件

回到顶部
4.name.conf文件的配置
acl  定义ip地址的访问控制清单

control  定义rndc使用的控制通道

include  把其他的文件包含到配置文件中

key  定义授权的安全密钥

logging  定义日志内容和位置

options  定义全局配置选项和默认值

server  定义远程服务的特征

zone  定义一个区

回到顶部
5.DNS的资源记录(Resource Record, RR)格式
DNS域名数据库有资源记录和区文件指令组成,由SOA(Start Of Authority起始授权机构记录,SOA 记录说明了在众多NS记录里那一台才是主名称服

务器。责) RR开始,同时包括NS RR;正向解析文件包括A (internet Address,作用,FQDN --> IP)RR MX (Mail eXchanger,邮件交换器)RR

和 CNAME(Canonical NAME 别名) RR 等;反向解析文件包括PTR(PTR: PoinTeR,IP --> FQDN) RR

RR 语法:name  [TTL]  IN  type  value (字段之间由空格和制表符隔开)

注意: (1) TTL可从全局继承  (2) @可用于引用当前区域的名字   (3) 同一个名字可以通过多条记录定义多个不同的值;此时 DNS服务器会以轮询方

式响应   (4) 同一个值也可能有多个不同的定义名字;通过多个不同的 名字指向同一个值进行定义;此仅表示通过多个不同的名字 可以找到同一个主机

SOA记录:name: 当前区域的名字,例如“heiye.com.”   value: 有多部分组成 (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

(2) 当前区域管理员的邮箱地址;地址中不能使用@符号,一般用.替换 如linuxedu.heiye.com (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL

例如: heiye.com.  86400   IN   SOA   ns.heiye.com.

    nsadmin.heiye.com.   (

        2015042201 ;

        序列号 2H ;

        刷新时间 10M ;

        重试时间 1W ;

        过期时间 1D ;

        否定答案的TTL值

   )

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

例如:heiye.com.   IN   NS  ns1.heiye.com.

   heiye.com.   IN   NS   ns2.heiye.com.

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

MX记录(Mail eXchanger):name: 当前区域的名字   value: 当前区域的某邮件服务器(smtp服务器)的主机名 , 一个区域内,MX记录可有多个;

但每个记录的value之前应 该有一个数字(0-99),表示此服务器的优先级;数字越小优 先级越高 例如:

heiye.com.   IN   MX   10   mx1.heiye.com.

        IN   MX   20   mx2.heiye.com.

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

A记录(Addrss):name: 某主机的FQDN,例如www.heiye.com.   value: 主机名对应主机的IP地址

例如: www.heiye.com.   IN   A   1.1.1.1   

    www.heiye.com.   IN   A   2.2.2.2   

    mx1.heiye.com.   IN   A   3.3.3.3

    mx2.heiye.com.   IN   A   4.4.4.4

    *.heiye.com.     IN   A   5.5.5.5

    heiye.com.     IN   A    6.6.6.6   

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

其他记录: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.heiye.com.

如1.2.3为网络地址,可简写成: 4   IN   PTR   www.heiye.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写

别名记录:name: 别名的FQDN   value: 真正名字的FQDN

例如: www.heiye.com.   IN   CNAME   websrv.heiye.com.

named字段:

#####(1)根域以” . “结束,并且只有一个,没有上级域。而在Internet中,根域一般不需要表现出来。

#####(2)@:默认域,文件使用$ORIGIN domain 来说明默认域。

#####(3)ttl 全称”Time to Live “,以秒为单位记录该资源记录中存放高速缓存中的时间长度。通常此处设为空,表示采用SOA的最小ttl值。

#####(4)IN:将该记录标志为一个Internet DNS资源记录。

type字段:

#####(1)A记录:主机名对应的IP地址记录,用户可将该域名下网站服务器指向自己的Web服务器,同时也可设置域名的二级域名。

#####(2)MX记录:邮件交换记录可将该域下所有邮件服务器 指向自己的邮件服务器,只需在线填写服务器的IP地址。

#####(3)CNAME记录:别名记录,可允许多个名字映射到同一计算机,通常用于同时提供Web和邮件服务器的计算机。

#####(4)SOA记录:一个授权区的开始,配置文件的第一个记录必须是SOA的开始。

#####(5)PTR记录:用于地址到主机名的映射。

#####(6)HINFO记录:由一组描述主机的信息文件组成,通常包括硬件名称和操作系统名称。

value字段:

#####(1)A :存放IP地址。

#####(2)CNAME:设置主机别名。

#####(3)HINFO:通常为两行,分别对应Hareware(计算机硬件名称)和OS-type(操作系统名称)。

#####(4)NS:域名服务器的名称。

#####(5)PTR:主机真实名称。

测试检查配置文件错误的工具:nslookup、dig、named-checkzone、host、named-checkconf及dlint。

回到顶部
6.DNS服务器和客户端配置
BIND的安装配置: dns服务程序包:bind,unbound

         程序名:named,unbound

         程序包:yum list all bind*

             bind:服务器

             bind-libs:相关库

             bind-utils;客户端

             bind-chroot: /var/named/chroot/

注意: (1) 一台物理服务器可同时为多个区域提供解析 (2) 必须要有根区域文件;named.ca

    (3) 应该有两个(如果包括ipv6的,应该更多)实现localhost 和本地回环地址的解析库

主配置文件: /etc/named.conf (用户和属组需为root权限,否则BIND无法启动)。

    全局配置:options {};

    日志子系统配置:logging {};

    区域定义:本机能够为哪些zone进行解析,就要定义哪 些zone   zone "ZONE_NAME" IN {};

注意:任何服务程序如果期望其能够通过网络被其它主机访 问,至少应该监听在一个能与外部主机通信的IP地址上。

缓存名称服务器的配置: 监听外部地址即可 ;dnssec: 建议关闭dnssec,设为no。

配置主DNS服务器: (1) 在主配置文件中定义区域 zone "ZONE_NAME" IN {

                       type {master|slave|hint|forward};

                       file "ZONE_NAME.zone";

                       };

          (2) 定义区域解析库文件 出现的内容;宏定义;资源记录

主配置文件语法检查: named-checkconf

DNS测试:dig www.qq.com (@ IP)向IP这个DNS服务器询问,不写默认为本机/etc/resolv.conf

回到顶部
7.搭建简单的DNS正向解析服务器

在172.18.251.219主机上

vim /etc/named.conf

vim /etc/named/rfc1912.zones

cd /var/named/

cp -a named.localhost heiye.com.zone

vim /heiye.com.zone

named-checkconf (检查主配置文件语法)

named-checkzone heiye.com /var/named/heiye.com.zone (版本号最好不超过10位!)

service named reload

dig www.heiye.com @127.0.0.1 (测试)

在172.18.252.229主机上

在172.18.250.128上

vim /var/www/html/index.html

ok!到此环境搭建完成

在172.18.252.229上测试:

加点儿料:

把DNS指向172.18.251.219

这样即便主机www写错,DNS也能正确解析出来。这就是泛域名解析。

再加一行

rndc load 重新加载,如果不行则重启服务。

这样即使不写主机名,DNS也能解析到另外一个指定的地址

如果服务器过多,对应主机名也很多,则可以

效果:

回到顶部
8.配置DNS反向解析解析
vim /etc/named.rfc1912.zones

vim /var/named/172.18.251.219.zone

named-checkzone "172.18.251.219.zone" /var/named/172.18.251.219.zone

检查没语法问题之后,重新加载zone,rndc reload

然后测试

回到顶部
9.配置bind-chroot环境
DNS在历史上饱受×××,故而为了系统安全,不影响其他进程和服务,需要将named服务单独放在一个比较深的目录里,以目录挂载目录实现。

yum -y install bind-chroot

ll

回到顶部
10.补充
dig [-t type] name [@SERVER] [query options] (dig只用于测试dns系统,不会查询hosts文件进行解析 )

查询选项: +[no]trace:跟踪解析过程 : dig +trace heiye.com

      +[no]recurse:进行递归解析

      测试反向解析: dig -x IP = dig –t ptr reverseip.in-addr.arpa

      模拟区域传送: dig -t axfr ZONE_NAME @SERVER

             dig -t axfr heiye.com @10.10.10.11

             dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1

             dig -t NS . @114.114.114.114

             dig -t NS . @a.root-servers.net

dig -t ns heiye.com @172.18.251.219 (查指定域的记录)

dig -t ns .  查根域的A记录

邮件服务器:

其中10为邮件服务器优先级,数字越小优先级越高!

host命令:

host [-t type] name [SERVER]

host –t NS heiye.com 172.16.0.1

host  –t soa heiye.com

host –t mx heiye.com  

host –t axfr heiye.com

host 1.2.3.4

nslookup命令:

交互式模式:
nslookup>
server IP: 指明使用哪个DNS server进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称

nslookup在window中和linux中用法相同!

rndc reload 重新加载view的zone

允许动态更新:指定的zone语句块中:Allow-update {any;};

        chmod 770 /var/named

        setsebool -P named_write_master_zones on (selinux为启用状态时)

        nsupdate

        >server 172.18.251.219

        >zone heiye.com

        >update add |delete ftp.heiye.com 86400 IN A 8.8.8.8

        >send

        测试:dig ftp.heiye.com @127.0.0.1

ll /var/named/heiye.com.zone.jnl

cat /var/named/heiye.com.zone

DNS主从数据库更新的标志是版本号的更改!

DNS默认端口是53的TCP和UPD,UDP是供用户查询的,主从复制用TCP和UDP的53端口都用。

BIND的ACL:bind有四个内置的acl:

   none: 没有一个主机

   any: 任意主机

   localhost: 本机

   localnet: 本机的IP同掩码运算后得到的网络地址段

   注意:只能先定义,后使用;因此一般定义在配置文件中, 处于options的前面,当然也可自定义如下

   acl lan{

      192.168.25.0/24

   } ;

访问控制:

  访问控制的指令: allow-query {}: 允许查询的主机;白名单

           allow-transfer {}:允许区域传送的主机;(白名单,一般用于主从)

           allow-recursion {}: 允许递归的主机,建议全局使用

           allow-update {}: 允许更新区域数据库中的内容

                 PS. 以上内容系转载,原文地址:https://www.cnblogs.com/heiye123/articles/7687922.html#_label1

转载于:https://blog.51cto.com/8873235/2171514

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值