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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

 

在一台 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,如需转载请自行联系原作者
目录
相关文章
|
1天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
2天前
|
存储 缓存 固态存储
阿里云服务器2核8G、4核16G、8核32G配置租用收费标准与活动价格参考
2核8G、8核32G、4核16G配置的云服务器处理器与内存比为1:4,这种配比的云服务器一般适用于中小型数据库系统、缓存、搜索集群和企业办公类应用等通用型场景,因此,多为企业级用户选择。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
3天前
|
存储 编解码 安全
阿里云服务器2核4G、4核8G、8核16G配置租用收费标准与活动价格参考
通常情况下,个人和一般企业用户在购买阿里云服务器时比较喜欢购买2核4G、4核8G、8核16G等配置,这些配置既能满足各种图文类中小型网站和应用又能满足企业网站应用、批量计算、中小型数据库系统等场景,2核4G配置适合新手入门或初创企业,4核8G与8核16G兼具成本与性能优势,适合通用场景,本文介绍这些配置的最新购买价格,包含原价收费标准和最新活动价格。
|
8天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
13天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
50 3
|
14天前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
52 1
|
17天前
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
39 4
|
17天前
|
NoSQL Linux PHP
|
16天前
|
人工智能 关系型数据库 双11
2024年阿里双十一活动解析:助力大家优惠上云!云服务器79元1年起
2024年阿里云双十一活动已启动,提供云服务器79元1年起等特惠,涵盖云数据库、对象存储、无影云电脑等140余款产品免费试用,企业用户还可申请百万补贴金及5亿算力补贴,助力优惠上云。
|
7天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
39 9

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面