当前位置:首页 > 科研论文

详细教程:如何搭建自己的DNS域名剖析服务器?
本文摘要:最近有粉丝私信我,许多做技术开发的工程师在开发某个法式时,或者测试人员在做法式测试时,经常需要测试DNS域名剖析,那么今天就为大家先容一下如何搭建自己的DNS域名剖析服务器。

最近有粉丝私信我,许多做技术开发的工程师在开发某个法式时,或者测试人员在做法式测试时,经常需要测试DNS域名剖析,那么今天就为大家先容一下如何搭建自己的DNS域名剖析服务器。如果你对DNS域名剖析原理还不够相识,建议你首先去阅读一下我上篇关于DNS基本观点的解说文章《DNS域名解决原理你真的相识吗?》现在我们进入主题,Linux上搭建DNS服务的软件有bind9、NSD(Name server domain)和unbound,其中bind9是市场占有率最高的软件。本文也以此软件来先容DNS服务。

bind实现DNS的最佳最详细说明文档是"DNS & BIND"和"Bind97 Manual",网上都有中文版本的资源,推荐大家可以去读一读。一、BIND简介现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet Systems Consortium)编写和维护。

BIND支持先今绝大多数的操作系统(Linux,UNIX,Mac,Windows)。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中的部门内容,获得如下设置:/*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/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为模板。

下令: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的系统,这个步骤回有所区别,直接使用默认的service named start 启动服务,bind就直接运行在chroot包中,如下图:7、检察是否启动,下令:ps -ef|grep named 8、测试DNS服务,本例在本机上测试,也可在其他电脑上测试,修改DNS服务的ip地址即可(下令:vim /etc/resolv.conf ),然后使用下令dig(下令:dig www.example.net)测试。

澳门新浦京8455com

内容如下:测试效果:注:非本机测试需要修改主设置文件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 www.example.net。四、缓存服务器及转发服务器一个DNS服务器可以即不是某个域的master服务器,也不是某个域的slave服务器,一个服务器可以不包罗任务域的设置信息,它将接手到所有DNS查询举行递归剖析,将剖析效果返回给查询客户端,而且将查询效果缓存下来,这样的DNS服务器称之为caching name server。

通常一个局域网中设置缓存服务器是为了加速网络会见。也可以为缓存服务器设置一个上游DNS服务器地址,缓存服务器可以给客户提供一个上游DNS服务器的地址,我们可以通过 以下设置完成:    在主设置文件中的option中加入:forwarders { 192.168.0.168;};还可以通过一下选项让服务器转发所有DNS查询到forwarders服务器:在主设置文件中的option中加入:forward only;到此DNS域名剖析搭建教程竣事,你学会了吗?如果你喜欢本文章,请帮助关注、转发、点赞,本人将定期更新一些技术“干货”分享给大家,希望能资助大家解决事情中的一些问题,谢谢!下期预告:《如何开发自己的DNS服务系统》。


本文关键词:澳门新浦京8455,澳门新浦京8455com

本文来源:澳门新浦京8455-www.294070.com