频道栏目
首页 > 资讯 > 其他 > 正文

BIND的配置及安装详情

17-12-11        来源:[db:作者]  
收藏   我要投稿

DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:

  正向解析:根据主机名(域名)查找对应的IP地址
  反向解析:根据IP地址查找对应的主机名(域名)

工作形式上又分主服务器、从服务器和缓存服务器。

  主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系
  从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况
  缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率

bind是一款代码的DNS服务器软件,它是由伯克利大学编写,全名(Berkeley Internet Name Domain)伯克利英特网域名,是目前世界上使用最为广泛的DNS服务器软件

bind相关

包名: bind 进程: named 协议: DNS 使用端口: 53/tcp , 53/upd

named程序

主程序文件 /usr/sbin/named 主配置文 /etc/named.conf 区域配置文件 /etc/named.rfc1912.zones

bind相关的安装包

bind : 主程序包 bind-chroot : 将named进程的活动范围限定在chroot目录,保证安全性 bind-devel : 与开发相关的头文件和库文件(编译安装bind时所需) bind-libs : bind服务器端和客户端都使用到的公共库文件 bind-utils : bind客户端工具 bind的客户端

bind客户端

~]# rpm -ql bind-utils 
/etc/trusted-key.key
/usr/bin/dig    #最常用的DNS服务器测试工具
/usr/bin/host    #一款轻量级DNS测试工具
/usr/bin/nslookup    #DNS查询工具,在众多平台上都有实现(windows上也有),可交互式查询
/usr/bin/nsupdate     #更新工具
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/host.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz

dig命令

dig [-t type] name [@SERVER] [query options]

query options:
+[no]trace:跟踪解析过程
+[no]recurse:进行递归解析

测试反向解析:
dig -x IP @SERVER

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

Tips:(1)dig用于测试dns系统,因此,不会查询hosts文件进行解析
     (2)不加”@server-ip”,根据/etc/resolv.conf配置的解析文件来查询
     (3)dig命令不会查缓存,而是直接查服务器

eg:
解析百度的地址
这里写图片描述
反向解析114DNS的域名
这里写图片描述
追踪www.qq.com的过程
这里写图片描述

host命令

  host [-t type] name [SERVER]

eg:
这里写图片描述

nslookup命令

  nslookup domain [dns-server]
  nslookup -qt=type domain [dns-server]

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

eg:
这里写图片描述

bind服务器配置

配置正向解析的bind 配置反向解析的bind 配置辅助bind 实现主辅DNS之间的区域传送

实验环境:2台CentOS 7.4 x64虚拟机(selinux和firewall已关闭)

  Domain Name: example.com.          10.0.0.0/24
  主DNS服务器: mster.example.com.     10.0.0.10
  辅DNS服务器: slave.example.com.     10.0.0.11
  WEB服务器: www.example.com.         10.0.0.10,10.0.0.11
  FTP服务器: ftp.example.com.   CNAME   www.example.com
  MX服务器: mx.example.com.          10.0.0.10

具体过程如下:

两台虚拟机都通过yum安装bind

~]# yum install bind bind-libs bind-utils -y

两台虚拟机都修改主配置文件(/etc/named.conf)

主配置文件包含以下内容

  全局配置:options {}
  日志子系统配置:logging {}
  区域定义:本机能够为哪些zone进行解析,就要定义哪些zone;
           格式为  zone "ZONE_NAME" IN {}
~]# vim /etc/named.conf
listen-on port 53 { any; };    监听任意ip地址
allow-query     { any; };      允许任何主机查询
dnssec-enable no;              关闭dnssec功能
dnssec-validation no;

两台虚拟机都启动named服务,设置开机自启动

~]# systemctl start named.service
~]# systemctl enable named.service
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

两台虚拟机都查看named服务是否启动

~]# ss -tunl | grep :53
udp    UNCONN     0      0      10.0.0.10:53                    *:*                  
udp    UNCONN     0      0      127.0.0.1:53                    *:*                  
udp    UNCONN     0      0       ::1:53                   :::*                  
tcp    LISTEN     0      10     10.0.0.10:53                    *:*                  
tcp    LISTEN     0      10     127.0.0.1:53                    *:*                  
tcp    LISTEN     0      10      ::1:53                   :::*      

这样,缓存DNS服务器就设置好了

1.配置主DNS服务器正向解析

(1)配置区域数据信息

[root@master ~]# vim /etc/named.rfc1912.zones 

zone "example.com" IN {
        type master;
        file "example.com.zone";
        allow-update { none; };
};

(2)创建区域数据文件(/var/named/ZONE_NAME.zone)

[root@master ~]# vim /var/named/example.com.zone

$TTL 86400
@        IN    SOA    master.example.com. admin.example.com. (
                                    2017121001
                                    1D
                                    1H
                                    1W
                                    3H )

         IN    NS    master
         IN    MX 20 mx
master   IN    A     10.0.0.10
www      IN    A     10.0.0.10
         IN    A     10.0.0.11
mx       IN    A     10.0.0.10
ftp      IN    CNAME www

(3)更改区域解析库文件的权限为640,属主为root,属组为named

[root@master ~]# chown :named /var/named/example.com.zone 
[root@master ~]# chmod 640 /var/named/example.com.zone 

(4)使用named-checkconf,named-checkzone命令检测配置文件及区域文件是否存在语法错误

[root@master ~]# named-checkconf 
[root@master ~]# named-checkzone "example.com.zone" /var/named/example.com.zone 
zone example.com.zone/IN: loaded serial 2017121001
OK

(5)重启或者重载named服务

[root@master ~]# systemctl reload named.service

(6)检验正向解析结果

这里写图片描述
这样bind正向解析就配置好了

2.配置主DNS服务器反向解析

(1)添加反向解析区域配置文件

[root@master ~]# vim /etc/named.rfc1912.zones 

zone "0.0.10.in-addr.arpa" IN {
        type master;
        file "10.0.0.zone";
        allow-update { none; };
};

(2)创建反向区域解析文件

[root@master ~]# vim /var/named/10.0.0.zone 

$TTL 86400
@      IN    SOA    master.example.com. admin.example.com. (
                                    2017121001
                                    1D
                                    1H
                                    1W
                                    3H )

       IN    NS    master.example.com.
10     IN    PTR   master.example.com.
       IN    PTR   mx.example.com.
       IN    PTR   www.example.com.
11     IN    PTR   www.example.com.

Tips:反向解析不需要CNAME记录,MX记录不允许出现在反向解析里

(3)更改反向解析区域解析库文件的权限为640,属主为root,属组为named

[root@master ~]# chown :named /var/named/10.0.0.zone 
[root@master ~]# chmod 640 /var/named/10.0.0.zone 

(4)使用named-checkconf,named-checkzone命令检测配置文件及反向解析区域文件是否存在语法错误

[root@master ~]# named-checkconf 
[root@master ~]# named-checkzone "10.0.0.zone" /var/named/10.0.0.zone 
zone 10.0.0.zone/IN: loaded serial 2017121001
OK

(5)重启或者重载named服务

[root@master ~]# systemctl reload named.service

(6)检验反向解析结果
这里写图片描述
这样bind反向解析就配置好了

3. 配置辅助DNS服务器并实现主从复制

(1)在slave服务器上的添加解析配置文件

[root@slave ~]# vim /etc/named.rfc1912.zones

zone "example.com" IN {
        type slave;
        masters { 10.0.0.10; };
        file "slaves/example.com.zone";
};

zone "0.0.10.in-addr.arpa" IN {
        type slave;
        masters { 10.0.0.10; };
        file "slaves/10.0.0.zone";
};

检查slave服务器的配置文件是否有语法错误

[root@slave ~]# named-checkconf

重载slave服务器的named服务

[root@slave ~]# systemctl reload named.service

(2)编辑master服务器的区域文件,添加slave服务器的记录(正向解析文件添加NS和A记录,反向解析文件添加NS和PTR记录)

[root@master ~]# vim /var/named/example.com.zone 

这里写图片描述

[root@master ~]# vim /var/named/10.0.0.zone

这里写图片描述

检查master服务器上语法和区域文件是否有错误

[root@master ~]# named-checkconf 
[root@master ~]# named-checkzone "example.com" /var/named/example.com.zone 
zone example.com/IN: loaded serial 2017121001
OK
[root@master ~]# named-checkzone "10.0.0.zone" /var/named/10.0.0.zone 
zone 10.0.0.zone/IN: loaded serial 2017121001
OK

重载master服务器的named服务

[root@master ~]# systemctl reload named.service

查看master服务器的日志,检验主辅DNS之间的区域传送

这里写图片描述

slave服务器的/var/named/slaves/目录下多了example.com.zone和10.0.0.zone文件,正式从master服务器上自动复制而来的

[root@slave ~]# ll /var/named/slaves/
total 8
-rw-r--r-- 1 named named 417 Dec 10 16:31 10.0.0.zone
-rw-r--r-- 1 named named 485 Dec 10 16:31 example.com.zone

检验slave服务器的解析功能
这里写图片描述
Tips:

  1.主服务器的区域解析库文件中必须有一条NS记录是指向从服务器
  2.从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中
  3.主服务器得允许从服务器作区域传送
  4.主从服务器时间应该同步,可通过chrony进行
  5.bind程序的版本应该保持一致;否则,应该从高,主低

rndc命令

rndc(Remote Name Domain Controllerr)是一个远程管理bind的工具,通过这个工具可以在本地或者远程了解当前服务器的运行状况,也可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。安装bind时默认安装了rndc,rndc默认监听在953/tcp端口,只监听127.0.0.1这个地址,也就是默认只允许本机使用rndc

语法格式:rndc COMMAND

    COMMAND:
        reload: 重载主配置文件和区域解析库文件
        reload zone: 重载区域解析库文件
        retransfer zone: 手动启动区域传送过程,而不管序列号是否增加;
        notify zone: 重新对区域传送发通知;
        reconfig: 重载主配置文件
        querylog: 开启或关闭查询日志;
        trace: 递增debug级别;
        trace LEVEL: 指定使用的级别;
~]# rndc status
version: 9.9.4-RedHat-9.9.4-51.el7_4.1 
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
相关TAG标签
上一篇:nginx的日志设置解析
下一篇:oracle表空间的设置与管理(代码实例)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站