本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • 服务部署
  • DNS部署教程(一)使用bind搭建Linux DNS服务器图文教程

DNS部署教程(一)使用bind搭建Linux DNS服务器图文教程

发布:TangLu2018-5-13 13:10分类: 服务部署 标签: DNS BIND

一、DNS服务器的基本概念

在线上工作的DNS服务器通常都是主辅结构。辅DNS用于分担查询请求,它的数据都是从主DNS同步,工作过程大概如下:

1、辅DNS根据配置文件中所设置的刷新间隔(refresh来定期向主DNS进行数据同步

2、辅DNS根据主服务器上序列号(serial作为标准决定是否需要执行同步

3、如果辅DNS无法连接主DNS,会根据设置的重试时间(retry)来重新与主DNS进行连接

4、如果重新连接了多次还是无法成功,那么达过过期时长(expire的限制后辅DNS就会放弃获取数据,辅DNS也不会升级成主DNS,而是下线不再提供服务(因为辅DNS是没有办法写入新数据的)


下面先看一个配置各种时长的设置示例

linuxe.cn  86400 IN SOA  linuxe.cn {
                    2017010801 ;serial序列号,标识是第几个版本
                    2H         ;refresh刷新时间
                    10M        ;retry重试时间
                    1W         ;expire过期时间
                    1D         ;否定回答时间
}


二、DNS的查询方式

一个是客户端向服务器提交查询,服务器直接做最终回应,这个是递归查询(只发出一次请求,最终得到结果);另一个是DNS服务器接收到客户端请求后,由于本地没有该解析记录,会将请求转给其他DNS服务器进行查询,这个叫做迭代查询(需要发出多次请求,最终获得正确的结果)

 

三、DNS常用记录类型

区域解析库文件:每个域名都有一个自己的区域解析库文件(zone文件),由一条条资源记录来定义具体指向

SOA记录:起始授权记录,一个区域解析库只能有一个SOA记录,而且必须为第一条。打个比方,建了个海岛,需要对外宣布世界上多了一个海岛,这个事情就是SOA在做    

NS记录:域名服务记录,一个区域解析库可以有多个NS记录,其中一个为主服务器。结合上面的例子,NS记录可以理解为用来宣布岛主是谁

A记录:地址记录,从域名解析为IP的记录

AAAA:IPv6的地址记录

PRT:反向解析记录,从IP解析为域名

MX:邮件交换记录。我们平时发邮件都是直接发到qq.com、163.com等域名上,但是这些域名肯定是有多台服务器的,MX记录就是指明了哪个服务器会负责邮件。MX服务可以存在多个,由优先级来区分先后,0-99,数字越小优先级越高

CNAME记录:给一个地址设置一个别名

 

四、资源记录的定义语法

在DNS服务器中每个域都要通过zone文件保存信息,文件语法格式是标准化的,一个典型配置内容如下:

dns111.png

下面是各个记录类型的示例

首先在区域解析库zone文件的开头定义SOA记录,定义格式

linuxe.cn  86400 IN SOA  linuxe.cn {
                    2018051301 ;  #serial序列号,标识是第几个版本
                    2H         ;  #refresh刷新时间
                    10M        ;  #retry重试时间
                    1W         ;  #expire过期时间
                    1D         ;  #否定回答时间
}


定义当前区域的NS记录,定义格式示例

linuxe.cn    86400 IN NS ns1.linuxe.cn
linuxe.cn    86400 IN NS ns2.linuxe.cn


MX记录定义格式示例(多了一个优先级)

linuxe.cn  IN MX 10 mx1.linuxe.cn
linuxe.cn  IN MX 20 mx1.linuxe.cn


A记录记录定义格式示例

www.linuxe.cn  IN A 192.168.1.100
bbs.linuxe.cn  IN A 192.168.1.110


PTR(IP反过来写,加特定后缀):

100.1.168.192.in-addr.arpa  IN PTR  www.linuxe.cn.


CNAME记录定义格式示例

web.linuxe.cn  IN CNAME www.linuxe.cn


注意事项:

1、TTL可以从全局继承,不用每个记录都定义具体的TTL

2、@符号可以表示当前区域的名称,所以真需要写@的时候由.来代替。如最后一行“www   IN  A  192.168.1.1” 代表www.linuxe.cn 是解析到192.168.1.1这个地址的
bind5.jpg

3、相邻的两个记录,如果NAME相同那么后面一条的NAME可以省略,如:

www.linuxe.cn    IN A 192.1681.100
                 IN A 192.1681.110  #没写name
bbs.linuxe.cn    IN A 192.1681.100


4、对于正向区域来说,如果MX、NS等类型的记录VALUE为一个FQDN,那么此FQDN应该有一个A记录

 


五、DNS服务器的安装

如今使用最广泛的DNS服务器软件是BIND,在Linux和Windows平台都是支持的。BIND相关软件包介绍如下:

bind:DNS主程序包

bind-utils:DNS客户端程序包,如nslookup,dig

bind-devel:DNS开发包,也可以叫做支持包

bind-libs:被bind和bind-utils共同用到的库文件

bind-chroot:chroot牢笼,伪装根目录,选装

1、安装bind的话只需要直接用yum安装即可:

yum  install  bind  bind-utils  bind-devel bind-libs  bind-chroot  -y

 

2、安装结束后开始了解bind服务的主要配置文件及工作目录:

/etc/named.confbind服务的主配置文件,通常只修改listen-on的地址为any即可。该文件可include其他配置文件,尤其是/etc/named.rfc1912.zones这个文件为主配置提供了很多有用的辅助性配置

/var/named/bind服务的工作目录,该目录里保存了每个域的zone文件(就是详细的解析信息文件)

注意事项:

1、在/var/named目录中必须要有根域的解析文件:named.ca

2、在/var/named目录中还应该有2个本地区域的正反向解析文件:named.localhost和named.loopback(127.0.0.1

3、如果装了bind-chroot,那么主配置文件在/var/named/chroot/etc/named.conf,数据文件是/var/named/chroot/var/named

4、bind服务主程序是/usr/sbin/named服务默认监听在UDP、TCP协议的53端口,TCP的53端口是主从复制时使用,UDP的53端口是客户查询时使用;还有一个DNS远程控制工具rndc,也可以进行数据的更新、服务的启动等工作,其监听在本地的953端口

rndc reload | reload zone


六、bind正式配置,以创建linuxe.cn域名的正向解析为例(反向解析的话也要建立一个区域数据文件):

1、在主配置文件/etc/named.conf中修改监听地址,然后修改主配置文件或辅助配置文件/etc/named.rfc1912.zones(推荐使用辅助文件,该文件中定义了许多域名的zone文件),增加一个域名的定义:

zone "linuxe.cn"  IN {     
    type master;    #master代表是该域的主服务器 
     file  "linuxe.cn.zone";    #定义zone文件的名字,使用相对路径的话配置文件是/etc/var/named下
  };


2、建立区域数据zone文件推荐复制named.local作为模板文件进行修改)注意修改文件权限为640,属主root,属组named

touch /etc/var/named/linuxe.cn.zone    #这里用了绝对路径便于理解
$TTL 3600
linuxe.cn IN SOA ns1.linuxe.cn. 13841276.qq.com. {
                2018051401
                 1H
                 10M
                 3D
                 1D
 }

          IN    NS ns1.linuxe.cn.
ns1       IN    A     192.168.1.100
www       IN    A     192.168.1.110
web       IN   CNAME  www
bbs       IN    A     192.168.1.120


3、重启服务之前进行一次语法检查,可以使用named-checkconf、named-checkzone命令,后面跟上需要查询的配置文件。如果没有问题的话用rndc reload重新加载服务即可

bind6.jpg

4、重启后可以将DNS客户端指向到这台测试DNS服务器,然后进行测试

 

七、DNS测试工具

1、dig工具,用-t选项指定解析类型,如A记录、MX记录,然后就可以看到完整具体的解析流程

dig.jpg


2、nslookup工具,会进入交互模式,不输入server的话默认是本机。然后设置需要查询的类型,如set type=a代表查看A记录,然后跟上需要查询的域名就可以看到完整的解析流程了

dig2.jpg

3、traceroute。路由追踪根据,会显示达到目标IP时每给路由节点的情况,最多30跳。

traceroute 192.168.1.100


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《DNS部署教程(一)使用bind搭建Linux DNS服务器图文教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-140.html  [生成短网址]

已有 0/6067 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~