安装配置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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
780 1
|
3月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
244 11
|
3月前
|
存储 弹性计算 网络协议
超详细的阿里云服务器购买流程,ECS自定义购买配置教程
本文详细图解阿里云ECS服务器自定义购买全流程,涵盖付费模式、地域选择、网络配置、实例规格、镜像、存储、安全组及登录设置等核心步骤,助您轻松掌握专业级云服务器搭建方法。
|
3月前
|
存储 弹性计算 监控
阿里云渠道商:如何挑选阿里云服务器配置?
本文详解通用型、计算型、内存型等实例适用场景,结合性能评估与成本优化策略,助力用户按需选择。以日均1万访问企业网站为例,2核4G+3M带宽月费约200元,性价比高。合理配置更省钱。
|
3月前
|
弹性计算
阿里云ECS云服务器8核16G配置收费价格,多种ECS实例CPU及费用清单
阿里云8核16G云服务器价格因实例类型而异。计算型c9i约743元/月,一年6450元(7折);通用算力型u1仅673元/月,一年4225元(5.1折)。实际价格享时长折扣,详情见ECS官网。
|
3月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
342 10
|
3月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
3月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
493 8

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS