最近有粉丝私信我很多做技术开发的工程师在开发某个程序时或者测试人员在做程序测试时SEO排名服务或者测试人员在做程序测试时经常需要测试DNS域名解析那么今天就为大家介绍一下如何搭建自己的DNS域名解析服务器。
如果你对DNS域名解析原理还不够了解建议你首先去阅读一下我上篇关于DNS基本概念的讲解文章《DNS域名解决原理你真的了解吗?》
一、BIND简介
现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain)最早有伯克利大学的一名学生编写现在最新的版本是9有ISC(Internet Systems Consortium)编写和维护。
BIND服务的名称称之为named。
DNS默认使用UDP、TCP协议使用端口为53(domain)953(mdc远程控制使用)。
二、BIND安装
本例使用的环境是CentOS 7.0的Linux操作系统(非CentOS 7.0系统安装会有所区别)所以直接采用命令:
yum install -y bind bind-chroot bind-utils其中bind-chroot和bind-utils是bind的相关包。
二、BIND配置
1、BIND配置文件保存在两个位置:
/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、配置BIND服务的主配置文件(/var/named/chroot/etc/named.conf)命令:
vim /var/named/chroot/etc/named.conf;内容很多使用简单配置删除文件中logging以下的全部内容以及option中的部分内容得到如下配置:
options{ // Put files that named is allowed to write in the data/ directory: di好文分享
rectory "/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/chroot/etc/named.conf )中加入zone参数:
5、新建example.net.zone文件example.net的域名解析文件zone文件放在/var/named/chroot/var/named/下zone文件可以以/var/named/chroot/var/named/named.localhost为模板。
命令:
文件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的系统这个步骤回有所区别直接使用默认的service named start 启动服务bind就直接运行在chroot包中如下图:
7、查看是否启动命令:
ps -ef|grep named8、测试DNS服务本例在本机上测试也可在其他电脑上测试修改DNS服务的ip地址即可(命令:vim /etc/resolv.conf )然后使用命令dig(命令:dig )测试。
内容如下:
测试结果:
注:非本机测试需要修改主配置文件named.conf允许任何ip访问然后重启服务器。
三、BIND从服务器
从服务器就是在bind的主配置文件中添加从域example.net的配置信息即可:
1、配置文件位置
/var/named/chroot/etc/named.conf2、在主配置文件中添加一行域的zone定义:
zone "example.net" {type slave; masters { 120.27.99.64; }; file "slaves/example.net.zone"; 3、由于bind是以named用户来运行的所以要给存放zone文件的文件夹(/var/named/chroot/var/named/slaves)授权。
未授权前:
授权:
4、启动bind服务service named start在存放zone文件夹(/var/named/chroot/var/named/slaves)中查看已经把example.net.zone文件下下来了。
5、修改dns服务器ip地址测试dig 。