开发者社区> 余二五> 正文

安装配置DNS服务器主服务器(1)

简介:
+关注继续查看

 

在一台linux服务器上安装配置DNS服务器
第一部分:了解DNS
1.BIND软件介绍
    BIND最新的版本我们可通过官方站点(https://www.isc.org/)中下载到。在RHEL5系统中,与BIND域名服务相关的几个主要软件包和作用如下:
Bind——提供了域名服务的主要程序及相关文件
Bind-utils——提供了对DNS服务器的测试工具程序(如nslookup、dig等)
Bind-chroot——为bind提供一个伪装的根目录以增强安全性
Caching-nameserver——为配置BIND作为缓存域名服务器提供必要的默认配置文件
2.BIND服务控制
BIND软件包安装完毕以后,提供的主程序默认位于“/usr/sbin/named”,系统中会自动增加一个名为named的系统服务,通过脚本文件“/etc/init.d/named”或service命令都可以控制域名服务的运行。下面是常用的关于DNS服务的命令:

  1. 启动服务:/etc/init.d/named start或service named start  
  2. 重新加载:service named reload  
  3. 停止服务:service named restart  
  4. 查看状态:service named status  
3.BIND的主配置文件
Named服务的主配置文件为named.conf,一般位于“/etc/”目录中,如果使用了bind-chroot功能,则可能位“/var/named/chroot/etc/”目录中
下面是全局配置部分最常见的配置项及其注解:

  1. options {  
  2. listen-on port 53 { 1.1.1.1; }; //设置named服务监听的端口及IP地址  
  3. directory "/var/named"; //设置区域数据库文件的默认存放位置  
  4. allow-query { 192.168.1.0/24; 172.16.16.0/24; }; //允许DNS查询的客户端  
  5. recursion yes; //设置允许递归查询  
  6. dump-file "/var/named/data/cache_dump.db"; //设置缓存数据库文件位置  
  7. statistics-file "/var/named/data/named_stats.txt"; //设置状态统计文件位置  
  8. };  
在以上配置内容中,除了directory项通常保留以外,其他的配置项都可以省略,若不指定listen-on配置项,named默认在所有可用的IP地址上监听服务。服务器处理客户端的DNS解析请求时,如果在named.conf文件中找不到相匹配的区域,将会向根域服务器或者由forwarders项指定的其他DNS服务器提交查询。
 
以下是区域配置部分常见的配置项:

  1. zone "." IN { //设置根区域  
  2. type hint; //设置区域类型(hint表示根域、masters表示主域、slave表示从域)  
  3. file "named.ca"; //设置对应的根域地址数据库文件  
  4. };  
  5.    
  6. zone "doubao.com" IN { //设置正向DNS区域  
  7. type master;   
  8. file "doubao.zone"; //设置对应的正向区域地址数据库文件  
  9. allow-transfer { 200.200.200.1; }; //设置允许下载区域数据库信息的从名服务器  
  10. allow-update { none; }; //设置允许动态更新的客户端地址(none为禁止)  
  11. };  
  12. zone "1.168.192.in-addr.arpa" IN { //设置反向DNS区域名称  
  13. type master;  
  14. file "192.168.1.arpa"; //设置对应的反向区域地址数据库文件  
  15. };  
在以上配置中,需要注意的地方如下:
每个zone区域都是可选的,具体根据实际需要而定;
zone配置部分的“IN”关键字可以省略;
反向区域的名称由倒序的网络地址和“.in-addr.arpa”组合而成,例如对于192.168.1.0/24网段,其反向域名为“1.168.192.in-addr.arpa”;
区域设置中的一部分配置内容(如allow-transfer、allow-update等)也可发放在全局配置中。
4.区域数据库配置文件
区域数据库配置文件位于“/var/named/”目录中,如果使用了bind-chroot功能,则可能位于“/var/named/chroot/var/named”目录中。
全局TTL配置项及SOA记录

  1. $TTL 600  
  2. @ IN SOA doubao.com. admin.doubao.com. ( //设置SOA标记、域名、域管理邮箱  
  3. 1997022700 ; Serial //更新序列号,用于标记地址数据库的变化  
  4. 28800 ; Refresh //刷新时间,从域名服务器更新该地址数据库文件的间隔时间  
  5. 14400 ; Retry //重试延时,是刷新时间的补充  
  6. 3600000 ; Expire //失效时间,超过此时间仍无法更新,则放弃  
  7. 86400 ) ; Minimum //设置无效地址解析记录的默认缓存时间  
  8. @    IN NS   ns1.doubao.com.  
  9. IN   MX 10   mail.zpp.com.  
  10. ns1 IN A   172.16.16.1  
  11. mail IN A   172.16.16.1  
  12. www IN A   172.16.16.1  
  13. ftp IN      CNAME www  
在上述配置项中,时间参数的默认单位为秒,也可以使用以下单位:M(分)、H(时)、W(周)、D(天);从域名服务器根据更新序列号决定是否需要重新下载地址数据库,如果发现序列号与上一次的相同,则不会下载地址数据库,文件中的@表示当前的DNS区域名,相当于“zpp.com”,“admin.zpp.com.”表示管理员的电子邮件地址(由于“@”符号已有其他含义,因此将邮件地址中的“@”用“.”代替。
从上面可以看到在区域数据配置文件中有以下几种常用的地址解析记录:
NS域名服务器(name server)记录,用于设置当前域的DNS服务器的域名地址。
MX邮件交换(Mail Exchange)记录,用于设置当前域的邮件服务器域名地址。
CNAME别名(Canonical Name)记录,用于设置别名
5.地址数据库文件的特殊应用
1>.基于DNS解析的负载均衡
当同一个域名对应有多个不同IP地址的服务器时,可以通过DNS区域数据库文件实现简单的轮询负载均衡,只需要在地址数据库中添加相应的多条A记录即可。
2>.泛域名解析
当同一个IP地址的服务器对应有相同域内大量不同的域名时(如:51cto的博客域名解析服务),可以通过DNS区域数据文件使用泛域名解析,只需要添加一条主机地址为“*”的A地址记录即可(作用类似于通配符)。
例如51cto博客使用同一台Web服务器提供虚拟主机服务,IP地址为173.16.16.173,对应的各虚拟主机名均属于51cto.com域,如2009.blog.51cto、xxx..blog.51cto等,在DNS区域“51cto.com”的地址数据库最后一行可添加如下图的泛域名解析记录。

* IN A 192.168.1.1

 
3>.子域授权(或委派)
DNS区域内层次较多,域名数量巨大时,就可以使用子域授权,将某个子域内各域名的解析工作交给另外一台服务器来完成。
例如:DNS区域“.doubao.com”的地址数据库文件中设置子域授权,将“abc.doubao.com”子域授权给abc公司的DNS服务器(IP地址为192.168.1.1)如下面的设置即可.
 
好了,在进行了上述的了解后,我们来进行下列的实验:
实验部分:
1、         规划
我们假设在互联网上创建了主机为doubao.com;IP地址网段为172.16.111.0/24这个网段;

  1. ns    172.16.111.1   //ns服务器的地址  
  2. www   172.16.111.1,172.16.111.3  
  3. mail 172.16.111.2   //邮件服务器  
  4. ftp   www           //ftp为www的别名  
1、BIND的安装:
首先要注意的是当用yum list all | grep “^bind”时,要注意安装的bind版本需要一致
 

由于我的bind已经安装好,我大致说下需要的步骤(涉及到卸载以前的版本这里不再去进行安装)rpm –e bin-libs bin-utils //卸载以前的旧版本
yum install bind97-libs bind97-utils //安装libs和utils 其中的libs文件是bind需要依赖的库文件,安装时要一同安装:

  1. yum install bin97 –y //安装bind97  
  2.  
  3.  
  4. rpm –ql bin97-utils //可以查看一下utils包给我们提供的工具,其中的前四个是客户端非常重要的命令行工具,  
      

dig //到域名服务器中查找其相关信息
           -t 指定资源记录类型并指明通过哪个服务器来查询能得到很多
2、配置相关的文件
 配置named.conf文件

  1. mv /etc/named.conf /etc/named.conf.org //备份下原来的文件,  
  2. vim /etc/named.conf //配置自己的named.conf  
  3.  options {              //注意花括号前要有空格  
  4.            directory “/var/named”; //每个语句后边都要有分号  
  5.  };  
  6.  zone “.” IN {          //定义根  
  7.               type hint;  
  8.               file “named.ca”  
  9.  };  
  10.  zone “localhost” IN {       //定义正向DNS区域  
  11.                   type hint;  
  12.                   file “named.localhost”;  
  13.  };  
  14.  zone “0.0.127.in-addr.arpa” IN { //定义反向DNS区域  
  15.                      type master;  
  16.                      file “named.loopbak;  
  17.  };   
  18.     :wq  //保存退出
  注意:基本上这样一个文件就定义好缓存服务器的配置了!
接下来我们来改变其属组属主和其文件权限

  1. chown root:named /etc/named.conf  
  2. chmod 640 /etc/named.conf  
  3. named-checkconf   //检查语法错误  
  4. named-checkzone ‘.’ /var/named/named.ca //检查zone配置  
  5. named-checkzone ‘localhost’ /var/named/named. localhost  
  6. named-checkzone ‘0.0.127.in-addr.arpa’ /var/named/named.loopback  
这个时候,先确定下SELnux是否在启动中,如启动了得现将其关闭:
getenforce
Enforcing //开启状态 Permissive//关闭状态
setenforce 0 //关闭 //临时关闭
setenforce 1 //开启
“久生效
# vim /etc/selinux/config
将其中的SELINUX=enforcing替换为SELINUX=permissive,替换后不会立即生效”
service network restart   //重启网络服务
 

然后用netstat来查看DNS服务是否真的启动起来了:
下图可以看到其53号端口已经打开
 

然后编辑/etc/resolv.conf文件,将其ip地址改为172.16.111.1
这个时候,一个DNS的缓存服务器已经创建好了!

3、创建互联网服务器
 2步骤中,我们已经创建好了一个DNS缓存服务器,根据我们刚准备创建的doubao.com。我们来进行下面的操作
 我们来编辑/etc/named.conf追加新的区域:

  1. zone "doubao.com" IN { //正向解析  
  2.         type master;  
  3.         file "doubao.com.zone";  
  4. };  
  5. zone "111.16.172.in-addr.arpa" IN { //反向解析  
  6.         type master;  
  7.         file "172.16.111.zone";  
  8. };  
因为两个zone的文件还没有创建,所以我们要到var/named/下创建两个文件
cd /var/named
vim doubao.com.zone
 

  1. $TTL 600 /定义TTL值,以便后边简写  
  2.          
  3. doubao.com.    IN               SOA      ns1.doubao.com.        admin.doubao.com.  
  4.                                                         20120401  
  5.                                                         1H  
  6.                                                         5M  
  7.                                                         2D  
  8.                                                         6H)  
  9. doubao.com.    IN    NS     ns1.doubao.com  
  10. MX                      IN          MX 10 mail.doubao.com.  
  11. ns1                       IN          A           172.16.111.1  
  12. mail                    IN          A           172.16.111.2  
  13. www                   IN          A           172.16.111.1  
  14. www                   IN          A           172.16.111.3  
  15. ftp                       IN          CNAME      www  
 
出来改其权限属组

  1. chmod 640 doubao.com.zone  
  2. chown root:named doubao.com.zone  
  3. named-checkzone “doubao.com” /var/named/doubao.com.zone  
  4.    
  5. vim 172.16.111.zone  
  6.    
  7. $TTL 600  
  8. @ IN   SOA     ns1.doubao.com.        admin.doubao.com. (  
  9.                             2013040101  
  10.                             1H  
  11.                             5M  
  12.                             2D  
  13.                             6H )  
  14.    
  15. @   IN   NS ns1.doubao.com.          
  16. 1     IN   PTR       ns1.doubao.com.  
  17. 1     IN   PTR       www.doubao.com.  
  18. 2     IN   PTR       mail.doubao.com.  
  19. 3     IN   PTR       www.doubao.com.  
  20.    
  21. 出来改其权限属组  
  22. chmod 640 172.16.111.zone  
  23. chown root:named 172.16.111.zone  
  24. named-checkzone “doubao.com” /var/named/172.16.111.zone  
 
到这里,我们已经创建好了。所以此刻我们可以重启网络服务了!
 
sercive network restart
 
然后可以dig查看或者nslookup查看
 

 

 

 

 










本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1170978,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
云服务器安装配置各种软件(下)
云服务器安装配置各种软件
30 0
Redhat安装配置telnet服务
Redhat安装配置telnet服务 2008年07月17日 星期四 09:18 Telnet服务的配置步骤如下:一、安装telnet软件包(通常要两个)1、 telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序;2、 telne...
674 0
linux上安装配置samba服务器
linux上安装配置samba服务器 在linux上安装配置samba服务器 在这给大家介绍一个不错的家伙,samba服务。如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这篇详解,希望能帮您解决困扰。
1898 0
CentOS-7.2部署DNS域名解析服务器并进行相关配置测试
CentOS-7.2部署DNS域名解析服务器并进行相关配置测试
60 0
《VMware vSphere企业运维实战》——第2章 从物理机到虚拟机 2.1 在闲置或新购服务器安装配置虚拟化主机
在你准备在服务器上安装VMware ESXi之前,你需要明白,在安装VMware ESXi的时候,需要对硬盘重新分区,此时服务器上原来的数据将会被清除。如果你的服务器上有重要的数据,需要将其备份到这台服务器以外的位置,例如另外一个服务器、活动硬盘、网络存储。
2366 0
+关注
20380
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载