1.前言

DNS介绍原理功能巴拉巴拉的我这里就不介绍了,相必在看到我这篇博文前各位已经查阅了足够的资料。我在开始配置DNS服务器时也苦于网上的资料不全或者重复,或者我遇到的奇葩问题找不到案例。所以就想做一个一站式全套服务,尽量把大部分配置全介绍一遍,不需各位开n个网页来回切,真的晕。

2.前期准备

这里提供的方法是用包来安装,也就是需要将DNS所需的安装包和依赖包全部下载
下载地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/

需要下载如下包

[root@dns-1 packages]# ls
bind-9.11.4-16.P2.el7.x86_64.rpm         bind-libs-9.11.4-16.P2.el7.x86_64.rpm       bind-license-9.11.4-16.P2.el7.noarch.rpm
bind-chroot-9.11.4-16.P2.el7.x86_64.rpm  bind-libs-lite-9.11.4-16.P2.el7.x86_64.rpm  bind-utils-9.11.4-16.P2.el7.x86_64.rpm

我使用的是CentOS7,如果是6版本,把链接里的7改成6即可
DNS服务器地址192.168.1.1,从服务器地址192.168.1.2(不是必需,两种配置方法都会不详细的讲下)

3.安装

以上6个包安装时请按以下顺序安装,因为涉及到了包之间的依赖关系,所以不要修改安装顺序。

[root@dns-1 ~]# rpm -ivh bind-license-9.11.4-16.P2.el7.noarch.rpm
[root@dns-1 ~]# rpm -ivh bind-libs-lite-9.11.4-16.P2.el7.x86_64.rpm
[root@dns-1 ~]# rpm -ivh bind-libs-9.11.4-16.P2.el7.x86_64.rpm
[root@dns-1 ~]# rpm -ivh bind-9.11.4-16.P2.el7.x86_64.rpm
[root@dns-1 ~]# rpm -ivh bind-utils-9.11.4-16.P2.el7.x86_64.rpm
[root@dns-1 ~]# rpm -ivh bind-chroot-9.11.4-16.P2.el7.x86_64.rpm

安装完成后查看

[root@dns-1 ~]# rpm -qa  |grep bind
bind-9.11.4-16.P2.el7.x86_64
rpcbind-0.2.0-44.el7.x86_64
bind-libs-lite-9.9.4-61.el7.x86_64
bind-license-9.11.4-16.P2.el7.noarch
bind-libs-9.11.4-16.P2.el7.x86_64
bind-utils-9.11.4-16.P2.el7.x86_64
bind-license-9.9.4-61.el7.noarch
bind-libs-lite-9.11.4-16.P2.el7.x86_64
bind-chroot-9.11.4-16.P2.el7.x86_64

至此安装完成

4.配置

整个配置看起来比较麻烦,但绝大部分没有特殊要求,就是简单让DNS服务器正常运行,或者主备同步,那配置起来就很简单。分三步

4.1 /etc/named.conf

主配置文件是/etc/named.conf,这是我修改完成之后的,别急,就改了两个地方,我这里先详细介绍下里面究竟配的是啥东西,注释的东西就不贴上来了

options {listen-on port 53 { any; }; 这行的意思是监听DNS服务器上哪个IP地址的53端口来接受DNS请求。本来里面可能有127.0.0.1的地址,改成any意思是所有IP的上都监听。删了这行也行,也是所有端口都监听。这里我改成any。   listen-on-v6 port 53 { ::1; }; IPV6的配置,不用管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";巴拉巴拉相关目录,不用改recursing-file  "/var/named/data/named.recursing";巴拉巴拉相关目录,不用改secroots-file   "/var/named/data/named.secroots";巴拉巴拉相关目录,不用改allow-query     { any; }; 这个改成any,意思是相应任何地址发来的请求recursion yes; 是否允许递归查询,默认yes不用改dnssec-enable yes;  安全相关,不用改dnssec-validation yes; 安全相关,不用改/* Path to ISC DLV key */bindkeys-file "/etc/named.root.key";    巴拉巴拉,不用改managed-keys-directory "/var/named/dynamic"; 巴拉巴拉,不用改pid-file "/run/named/named.pid"; 巴拉巴拉,不用改session-keyfile "/run/named/session.key"; 巴拉巴拉,不用改
};
下面的都巴拉巴拉,不用改
logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};include "/etc/named.rfc1912.zones"; 这个文件可以编辑zone配置相关,其实zone配置写在named.conf里也行,我写在了/etc/named.rfc1912.zones这里
include "/etc/named.root.key";

也就是说这个配置文件只需要将listen-on port 53和allow-query 修改成any即可,第一步完成

4.2 /etc/named.rfc1912.zones

第一步最后我们说过zone配置写在 /etc/named.rfc1912.zones里,这里面本来就有很多东西,不用管,直接在最后加

zone "aa.bb" IN {type master; 必须指定file "aa.bb.zone";  必须指定,在named.conf里指定的目录问/var/named,所以这个文件在/var/named/aa.bb.zone,这个名字随便取,但是这个aa.bb.zone需要手动创建,第三步再不详细的介绍下allow-transfer {192.168.1.2;}; 主从DNS配置需要,如果只配1个DNS服务器就不配这个,删了他,里面是从服务器的IPalso-notify {192.168.1.2;};主从DNS配置需要,如果只配1个DNS服务器就不配这个,删了他,里面是从服务器的IPallow-update {192.168.1.2;};主从DNS配置需要,如果只配1个DNS服务器就不配这个,删了他,里面是从服务器的IP
};

第二步完成

4.3 /var/named/aa.bb.zone

先创建这个文件,因为有模板文件,我们就复制一下就可以了。与第二步里指定的文件名要一模一样

cp /var/named/named.localhost /var/named/aa.bb.zone

然后修改属组

chown named:named /var/named/aa.bb.zone

里面的内容是这个样子的

[root@dns-1 named]# cat named.localhost
$TTL 1D     DNS有效解析数据保留在内存的时间,可以不改
@  IN SOA  @ rname.invalid. (0    ; serial 更新序列号,每修改一次这个文件,就需要+1,或者+随便几,只要比前一次大就行,方便从DNS服务器比较这个数,从服务器发现自己的这个数比主服务器小,才会同步1D ; refresh 从服务器同步数据的频率,可以不改1H ; retry 重试下载数据的间隔,不用改
,                    1W  ; expire 超时设置,不用改3H )    ; minimum 不改NS  @         不改A  127.0.0.1 不改AAAA    ::1   不改
[root@dns-1 named]# 

这个文件需要修改的地方其实有3处,第一处是第二行的第二个@,改成自己的后缀,这里是aa.bb. 注意bb后面有个.
第二处是那个更新序列号,随便写个比0大的数,比如1
第三处是在文件最后加上自己的需要解析的域名,比如:

[root@dns-1 named]# cat /var/named/aa.bb.zone
$TTL 1D
@  IN SOA  aa.bb. rname.invalid. (1    ; serial1D  ; refresh1H ; retry1W   ; expire3H )    ; minimumNS @  A   127.0.0.1AAAA   ::1
dnstest     IN  A   192.168.1.1    再添加其他的照这个格式写就行
4.4泛域名解析

有时候我们希望将所有以cc.aa.bb结尾的域名指定到一个地址上,这就需要使用泛域名解析,格式如下

dnstest      IN  A   192.168.1.1
*.cc        IN  A   192.168.1.6

这样就会将所有的以cc.aa.bb结尾的地址解析到192.168.1.6上,如dd.cc.aa.bb等。

5.测试

配完了,兄弟萌,测试下

systemctl start named  启动
systemctl status named 查看状态
systemctl enable named 开机自启
named -g查看相关日志
tail -f /var/log/messages 查看相关日志,包括解析记录[root@dns-1 ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)Active: active (running) since Tue 2020-07-21 21:53:23 CST; 12h agoProcess: 8411 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)Process: 8445 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Process: 8440 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)Main PID: 8446 (named)CGroup: /system.slice/named.service└─8446 /usr/sbin/named -u named -c /etc/named.conf -4Jul 22 10:41:27 dns-1 named[8446]: resolver priming query complete
Jul 22 10:42:54 dns-1 named[8446]: resolver priming query complete
Jul 22 10:43:33 dns-1 named[8446]: resolver priming query complete
Jul 22 10:43:51 dns-1 named[8446]: resolver priming query complete
Jul 22 10:44:20 dns-1 named[8446]: resolver priming query complete
Jul 22 10:44:49 dns-1 named[8446]: resolver priming query complete
Jul 22 10:45:50 dns-1 named[8446]: resolver priming query complete
Jul 22 10:46:01 dns-1 named[8446]: resolver priming query complete
Jul 22 10:46:46 dns-1 named[8446]: resolver priming query complete
Jul 22 10:48:14 dns-1 named[8446]: resolver priming query complete

然后找一台服务器,将dns设置成192.168.1.1,使用nslookup dnstest.aa.bb,测试解析

linux下面也可以用dig测试,dig dnstest.aa.bb @192.168.1.1

以上单台dns配置完成了,需要配置从服务器的继续往下

另:
named -g 也许会报一些错,如:

22-Jul-2020 10:51:50.929 loading configuration from '/etc/named.conf'
22-Jul-2020 10:51:50.929 /etc/named.conf:15: change directory to '/var/named' failed: permission denied
22-Jul-2020 10:51:50.929 /etc/named.conf:15: parsing failed: permission denied
22-Jul-2020 10:51:50.929 loading configuration: permission denied
22-Jul-2020 10:51:50.929 exiting (due to fatal error)

提示会有权限错误之类的,还有的提示啥

managed-keys-zone: Unable to fetch DNSKEY set '.': timed out

之类的,相信我,如果你的DNS解析有问题,跟以上报错是完全没关系的,只要服务能起来,以上报错均可忽略,真的。

6.从服务器配置

很简单,第一步也是将named.conf里面的两个改成any

listen-on port 53 { any; };
....
allow-query     { any; };

然后配置zone,之前讲过可以写在named.conf里面,也可以写在named.rfc1912.zones里面

zone "aa.bb" IN {type slave;masters {192.168.1.1;}; 写主服务器地址file "aa.bb.zone"; allow-notify {192.168.1.1;};写主服务器地址
};

aa.bb.zone这个文件还是需要手动创建并需改权限,参照主服务器即可,只需要创建这个文件就行,不需要编辑,数据从主服务器上过来

然后主从服务器重启进程,测试从服务器即可

另:从服务器上cat aa.bb.zone的时候可能是乱码,需要在named.conf里面加上masterfile-format text ;
即可,就在options的大括号里随便找个地方加就行

另另:主服务器上每次修改aa.bb.zone之类的文件之后,切记修改里面的序列号

最后,解析不到地址,先检查53端口的udp是否放开

CentOS7 DNS配置一条龙全套服务相关推荐

  1. centos7 systemctl配置开机自启动服务

    centos7 systemctl配置开机自启动服务 centos7使用systemctl替代原来/etc/init.d,按官方的说法是提高系统服务的运行效率.服务配置更加简单易用,对于一些自定义的服 ...

  2. CentOS7下配置snmp v3服务

    1.CentOS7下配置snmpd服务 #安装snmp服务 yum install net-snmp net-snmp-utils #设置开机自启动 systemctl enable snmpd.se ...

  3. centos7 dns配置_Linux Sever简单笔记(第十三堂课)之linux下的网络管理及DHCP配置的相关操作 - 我杨晓东太难了...

    第13章linux下的网络管理 Linux下的网络管理 查看及测试网络 设置网络地址参数 使用DHCP动态配置主机地址 查看网络接口信息 ifconfig  查看所有活动网络接口的信息 ⚫ 执行 if ...

  4. centos7 dns配置_Centos7.7 安装FreeIPA (三)

    FreeIPA是一个集成了Linux(Fedora).389目录服务器.MIT Kerberos.NTP.DNS和Dogtag(证书系统)的安全信息管理解决方案.它由web界面和命令行管理工具组成. ...

  5. linux下DNS配置及域名解析服务,linux DNS域名解析服务

    DNS域名解析服务 (一)Dns软件包安装 Bind:提供域名服务的主要程序及相关文件 Bind-utils:测试dns工具(nslookup.host) Yum仓库安装软件 Yum install ...

  6. linux下DNS配置及域名解析服务

    一.DNS(Domain Name System,域名系统) 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名, ...

  7. Linux centos7 DNS服务器基于bind正反解析服务的搭建

                                                 Linux centos7 DNS服务器基于bind正反解析服务的搭建 DNS的相关基础知识: 一.DNS-- ...

  8. CentOS7安装配置DNS服务器

    准备工作(假设名称为bigcloud.local) #更改主机名称 #vi /etc/sysconfig/network # Created by anaconda NETWORKING=yes HO ...

  9. centos7 关闭防火墙的指令_CentOS7 怎么安装配置chrony时间同步服务?

    CentOS7 怎么安装配置chrony时间同步服务? CentOS7 怎么安装配置chrony时间同步服务 介绍 hrony是一个开源软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服 ...

最新文章

  1. SQL Server Extended Events 进阶 3:使用Extended Events UI
  2. calabash-android教程,自动化测试工具_Calabash-android调研
  3. nor flash启动与nand flash启动的区别
  4. php_DBHelper
  5. Intel(R)Turbo Boost Technology Driver上面显示为感叹号
  6. 如何解决分布式系统中的“幽灵复现”?-转载自 阿里技术 微信公众号
  7. 寄存器和pin_16x2 LCD的PIN图和寄存器
  8. Bloomfilter 的应用场景
  9. java list 元素排序_对arraylist中元素进行排序实例代码
  10. C++ 函数参数中和区别
  11. 工行软开和中行软开_工行软开怎么样啊待遇如何,知道的说下啊
  12. [Kaldi] MFCC特征提取源码详解
  13. 怎么注销百度云服务器账号,百度网盘怎么注销账号?账号注销方法一览
  14. 关于ddos你了解多少?
  15. 微信小程序 购物车简单实例
  16. 腾讯云服务器到期未续费,CVM实例被释放还能找回文件吗?
  17. 【图解】连狗子都能看懂的Python基础总结(二)什么是库、包、模块?
  18. SystemUI流程
  19. LCA——JD 3055 Nearest Common Ancestors
  20. php找不到localhost下的文件夹,我在localhost里找不到shopImooc下的文件,每次都要手动输入地址,还有就是index.php每次打开都是这样的页面,是数据库没连吗...

热门文章

  1. linux升级失败无法启动应用程序,Ubuntu升级后无法启动 kernel panic - not syncing
  2. Python 外星人入侵(一):武装飞船
  3. end kernel panic not syncing
  4. python3 关键字,内建函数
  5. 计算机视觉最全专栏教程总结
  6. 慧荣SM2246主控固态硬盘开卡一直pretest解决方法
  7. 九宫图-图片轮播-兼容IE8和Chrome浏览器
  8. java 双列集合Map 万字详解
  9. Matplotlib二维箭头图
  10. 扩展easyUI样式,全新的easyUI体验样式