最近有粉丝给我发私信。很多从事技术开发的工程师在开发某个程序时,经常需要测试DNS域名解析,或者测试人员做程序测试。所以今天我就给大家介绍一下如何搭建自己的DN
最近有粉丝给我发私信。很多从事技术开发的工程师在开发某个程序时,经常需要测试DNS域名解析,或者测试人员做程序测试。所以今天我就给大家介绍一下如何搭建自己的DNS域名解析服务器。
如果你对DNS域名解析的原理了解不够,建议你先看看我上一篇关于DNS基本概念的文章《你真的了解DNS域名解析的原理吗?》
现在,我们进入正题。在Linux上构建DNS服务的软件有bind9、NSD(域名服务器域)和unbound,其中bind9是市场占有率最高的软件。本文还介绍了该软件的DNS服务。通过bind实现DNS的最佳和最详细的文档是& # 34;DNS & BIND & # 34还有& # 34;Bind97手册& # 34;,网上有中文版的资源。我推荐你阅读它们。
一、BIND简介
现在使用最广泛的DNS服务器软件是BIND(伯克利互联网域名),最早是伯克利大学的一个学生写的。现在最新的版本是9,由ISC(互联网系统联盟)编写和维护。
BIND支持大多数操作系统(Linux、UNIX、Mac、Windows)。
绑定服务的名称是。
默认情况下,DNS使用UDP和TCP协议,其端口为53(域)和953(mdc)。
第二,绑定安装
本例使用的环境是CentOS 7.0的Linux操作系统(非CentOS 7.0系统,安装会有所不同),所以直接使用命令:
yum install -y bind bind-chroot bind-utils
其中bind-chroot和bind-utils是bind的相关包。
第二,绑定配置
1.绑定配置文件保存在两个位置:
/etc/named.conf - BIND服务主配置文件 /var/named/ - zone文件(域的dns信息)
如果安装了BIND-chroot(其中chroot是change root的缩写),BIND将被封装到一个伪根目录中,配置文件的位置将更改为:
/var/named/chroot/etc/named.conf - BIND服务主配置文件 /var/named/chroot/var/named/ - zone文件
Chroot通过相关文件封装在一个伪根目录下,达到了安全保护的目的。一旦程序被攻破,它将只能访问伪根目录中的内容,而不是真正的根目录。
2.BIND安装后,不会有预制的配置文件,但是在BIND的文档文件夹(/usr/share/doc/BIND-9.9.4)中,BIND为我们提供了一个配置文件模板,我们可以直接复制:
cp -r /usr/share/doc/bind-9.9.4/sample/etc/* /var/named/chroot/etc/ cp -r /usr/share/doc/bind-9.9.4/sample/var/* /var/named/chroot/var/
3.使用以下命令配置绑定服务的主配置文件(/var/named/ch root/etc/named . conf):
vim/var/named/chroot/etc/named.conf;
许多内容使用简单的配置,删除日志文件下面的所有内容,以及选项中的一些内容,得到如下配置:
/*Sample named.conf BIND DNS server 'named' configuration filefor the Red Hat BIND distribution.See the BIND Administrator's Reference Manual (ARM) for details about the configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html*/options{ // Put files that named is allowed to write in the data/ directory: directory "/var/named"; // "Working" directory //listen-on port 53 { any; }; listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { any; }; listen-on-v6 port 53 { ::1; }; };
4.在主配置文件(/var/named/ch root/etc/named . conf)中添加zone参数:
5.创建一个新的example.net.zone文件,即example.net的域名解析文件。区域文件放在/var/named/chroot/var/named/下,区域文件可以以/var/named/ch root/var/named/named . localhost为模板。命令:
cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/example.net.zone
example.net.zone文件包含以下内容:
6.禁用bind默认启动模式,而使用bind-chroot启动模式。该命令如下所示:
[root@iZ2806l73p6Z named]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on[root@iZ2806l73p6Z named]# systemctl stop named [root@iZ2806l73p6Z named]# systemctl disable named [root@iZ2806l73p6Z named]# systemctl start named-chroot [root@iZ2806l73p6Z named]# systemctl enable named-chroot[root@iZ2806l73p6Z named]#
图:
注意:如果是CentOS 6.5系统,这个步骤会有所不同。使用名为Start的默认服务直接启动服务,bind将直接在chroot包中运行,如下图所示:
7、检查是否启动,命令:
ps -ef|grep named
8.测试DNS服务。此示例可以在这台计算机或其他计算机上测试。只需修改DNS服务的ip地址(命令:vim /etc/resolv.conf),然后使用命令dig(命令:dig )进行测试。
内容如下:
测试结果:
注意:非本地测试需要修改名为. conf的主配置文件,允许任何ip访问,然后重新启动服务器。
第三,绑定从服务器
从服务器将从域example.net的配置信息添加到bind的主配置文件中:
1.配置文件的位置
/var/named/chroot/etc/named.conf
2.在主配置文件中添加一行区域定义:
zone "example.net" {type slave; masters { 120.27.99.64; }; file "slaves/example.net.zone";
3.因为bind是以命名用户的身份运行的,所以您应该授权存储区域文件的文件夹(/var/named/ch root/var/named/slaves)。授权前:
授权:
4.启动bind服务,名为Start的服务,并在存储该区域的文件夹中检查它(/var/named/ch root/var/named/slaves)。example.net.zone文件已下载。
5.修改dns服务器的ip地址并测试DIG
四。缓存服务器和转发服务器
DNS服务器既不能是域的主服务器,也不能是域的从服务器。服务器不能包含任务域的配置信息。它将接管递归解析的所有DNS查询,将解析结果返回给查询客户端,并缓存查询结果。这种DNS服务器被称为缓存名称服务器。
通常,缓存服务器配置在局域网中,以加快网络访问速度。
您还可以为缓存服务器配置上游DNS服务器地址,缓存服务器可以为客户提供上游DNS服务器地址。我们可以通过以下设置做到这一点:
将以下内容添加到主配置文件的选项中:
forwarders { 192.168.0.168;};
您还可以使用以下选项让服务器将所有DNS查询转发到转发器服务器:
将以下内容添加到主配置文件的选项中:
forward only;
到这DNS域名解析教程结束,你学会了吗?
如果你喜欢这篇文章,请帮忙关注,转发,喜欢。我会定期更新一些技术上的“干货”与大家分享,希望能帮助大家解决工作中的一些问题。谢谢大家!
下次通知:
如何开发自己的DNS服务系统
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/147685.html