如何在RedHat6上使用Bind搭建DNS服务

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢

1.文档编写目的


搭建私有的DNS服务的方式有多种,如Window Server、Dnsmasq、BIND等,前面Fayson介绍了《如何利用Dnsmasq构建小型集群的本地DNS服务器》,《如何在Windows Server2008搭建DNS服务并配置泛域名解析》和《如何在Windows Server2012搭建DNS服务并配置泛域名解析》,在文章描述了如何搭建DNS服务及配置泛域名解析。本篇文章主要介绍如何在RedHat6上使用BIND搭建DNS服务及配置泛域名解析。

  • 内容概述

1.安装BIND服务

2.修改配置文件

3.配置DNS及测试

4.常见问题

  • 测试环境

1.RedHat6.5

2.采用root用户操作

2.测试环境描述


DNS服务器IP地址

DNS服务器HOSTNAME

172.31.9.33

cdh04.fayson.com

3.Bind服务安装


1.在命令执行如下命令安装bind服务

[root@cdh04 ~]# yum -y install bind bind-utils bind-chroot

(可左右滑动)

2.检查bind服务是否安装成功

[root@cdh04 ~]# rpm -qa |grep bind

(可左右滑动)

如上图显示则表示bind服务已安装成功

4.修改bind服务配置文件


1.编辑/etc/named.conf文件,内容如下

[root@cdh04 ~]# vim /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        listen-on port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

(可左右滑动)

标注部分说明

listen-on:修改为监听所有IP地址

allow-query:允许所有IP查询

dnssec-lookaside:设置为auto,named在启动时将被加载

2.在/etc/named.rfc1912.zones文件中配置区域信息,在文件的末尾增加如下配置

zone "fayson.com" IN {
        type master;
        file "fayson.com.zone";
        allow-update { none; };
};
zone "31.172.in-addr.arpa" IN {
        type master;
        file "32.172.zone";
        allow-update { none; };
};

(可左右滑动)

3.在/var/named目录下新增正向解析文件fayson.com.zone

[root@cdh04 named]# vim /var/named/fayson.com.zone
$TTL 1D
@       IN SOA  cdh04.fayson.com. admin.fayson.com (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      cdh04.fayson.com.
cdh04        IN      A       172.31.9.33
cdsw    IN      CNAME cdh04
*.cdsw  IN      CNAME cdh04

(可左右滑动)

注意:第二行配置的为当前主机的hostname和邮箱地址。

4.在/var/named目录下新增反向解析文件31.172.zone

[root@cdh04 named]# vim /var/named/31.172.zone
$TTL 1D
@       IN SOA  cdh04.fayson.com. admin.fayson.com (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      cdh04.fayson.com.
33.9  IN      PTR     cdh04.fayson.com.

(可左右滑动)

注意:在配置反向解析是ip段需要反转。

5.完成以上配置后使用如下命令检查配置是否正确

[root@cdh04 named]# named-checkzone fayson.com fayson.com.zone
zone fayson.com/IN: loaded serial 1
OK
[root@cdh04 named]# named-checkconf 
[root@cdh04 named]# 

(可左右滑动)

6.启动named服务

[root@cdh04 named]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]
[root@cdh04 named]# 

(可左右滑动)

5.配置DNS服务及测试


1.修改/etc/sysconfig/network-scripts/ifcfg-eth0

这里需要根据自己的网卡名来修改相应的配置配置ifcfg-{网卡名}

2.使用如下命令重启network

[root@cdh04 named]# service network restart

(可左右滑动)

3.检查/etc/resolv.conf配置文件是否为最新的DNS地址

有如上截图表示DNS配置已生效。

4.使用nslookup命令测试域名是否能够正常解析

[root@cdh04 named]# nslookup cdh04.fayson.com

(可左右滑动)

以上为正向解析正常。

[root@cdh04 named]# nslookup 172.31.9.33

(可左右滑动)

反向解析正常。

[root@cdh04 named]# nslookup cdsw.fayson.com

(可左右滑动)

别名解析正常。

[root@cdh04 named]# nslookup qq.cdsw.fayson.com

(可左右滑动)

泛域名解析正常。

6.常见问题


在配置完成测试的过程中遇到无法正常解析异常,如下截图

异常原因:

1.确认DNS服务器的IP地址配置是否正确

2.有可能由于配置文件属主及权限原因导致,这里我们需要修改我们正向和反向配置文件的属组及权限。

文件所在目录,如下截图为没有修改前的属主及权限

[root@cdh04 ~]# chmod 640 /var/named/chroot/var/named/fayson.com.zone 
[root@cdh04 ~]# chmod 640 /var/named/chroot/var/named/31.172.zone 
[root@cdh04 ~]# chown root:named /var/named/chroot/var/named/fayson.com.zone 
[root@cdh04 ~]# chown root:named /var/named/chroot/var/named/31.172.zone

(可左右滑动)

修改完成后重启named服务。

7.总结


  • 在安装BIND服务时安装了bind-chroot包,该包提供了一个伪根目录,保证正真的根目录以增强安全性,安装后伪根目录为/var/named/chroot。
  • 在配置区域信息时未指定域数据文件文件的具体目录,是由于/etc/named.conf文件中options配置中directory参数已指定了named路径。
  • 可以使用named-checkzone和named-checkconf来检查配置文件是否正确。

常见配置说明:

SOA记录域权威记录说明此服务器为管理服务器

NS记录域名服务器记录

MX记录邮件记录,指定域内的邮件服务器需要指定优先级

A记录正向解析记录

CNAME记录别名记录添加别名

PTR记录反向解析记录

@代表zone所定义的域名称这里是SOA的域名

TTL值为其他域名服务器将数据放在缓存中的时间

IN 定义网络的地址类型,对于TCP/IP而言设置为IN(INERNET

root.example.com.代表了主域名服务器的主机名以.结束

shudaipiaoling.163.com代表了DNS邮件管理员的地址,用.代替@

serial:定义这个区域文件的版本号,为整数,每次更改加1,这样的话bind可以确定这个文件的更改时间

refresh:从服务器检查主服务器应等待的时间默认秒为单位

retry:重新尝试应等待的时间,发生在主服务器不能使用时

expire:主从无法通信,区域信息保存时间

minimum:上面第一行$TTL值没有设置时,默认最小值为3小时

注意:如果域数据文件中记录没有以“.”结尾,那么系统将自动加上域名城,如果某条记录名称为空或者制表符,那么BIND也会直接使用上一条记录的名称

提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-02-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python成长之路

学HTTP协议所要知道的基础知识(微总结)

30360
来自专栏重庆的技术分享区

Python安装与Eclipse环境配置(踩坑,看完这篇就够了)

12020
来自专栏耕耘实录

Linux(RHEL7及CentOS7)下DNS服务器的搭建与配置

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢。

55040
来自专栏Java工程师日常干货

对缓存击穿的一点思考前言什么是缓存击穿?避免缓存击穿的思路分析代码抽象

缓存(内存 or Memcached or Redis.....)在互联网项目中广泛应用,本篇博客将讨论下缓存击穿这一个话题,涵盖缓存击穿的现象、解决的思路、以...

25720
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Icinga监视主机和服务

Icinga是一个开源监控系统,用于监控网络主机和服务的运行状况。在本教程中,我们将使用Icinga设置两种不同类型的监视配置。第一种是基于对主机外部服务的简单...

18710
来自专栏酷玩时刻

Android依赖管理与私服搭建

*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 *本篇文章视频 慕课网之Android依赖管理与私服搭建

19350
来自专栏电光石火

Nexus3.x安装及配置

2K60
来自专栏后台全栈之路

在 C/C++ 异步 I/O 中使用 MariaDB 的非阻塞接口

对 C/C++,MySQL 提供的库传统上都是阻塞操作,因此适合多线程 / 进程服务器架构编程。但是如果用 C/C++ 编写服务器,往往对性能会有极致要求,此时...

75720
来自专栏肖洒的博客

GitHub Pages自定义域名

最早用GitHub Pages做个人博客,初始的二级域名就是https://x-nicolo.github.io/,之后用了一个免费顶级域名,在Freenom ...

53050
来自专栏Young Dreamer

webpack的Hot Module Replacement运行机制

使用webpack打包,难免会使用Hot Module Replacement功能,该功能能够实现修改、添加或删除前端页面中的模块代码,而且是在页面不刷新的前提...

34050

扫码关注云+社区

领取腾讯云代金券