安装配置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,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
18 1
|
7天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
21 1
|
28天前
|
缓存 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
38 0
|
29天前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
25 3
|
18天前
|
域名解析 网络协议 Linux
使用 Webmin+bind9快速搭建私有DNS服务器
使用 Webmin+bind9快速搭建私有DNS服务器
54 1
|
22天前
|
弹性计算
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
2024年阿里云服务器的优惠价格新鲜出炉,有特惠云服务器也有普通优惠价格,本文为大家整理汇总了2024年阿里云服务器的优惠价格,包含特惠云服务器和其他配置云服务器的优惠价格。以便大家了解自己想购买的云服务器选择不同实例规格和带宽情况下的价格,仅供参考。
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
|
30天前
|
域名解析 存储 网络协议
Linux中搭建主从DNS服务器
搭建主从DNS架构以提升DNS服务的高可用性、负载均衡和数据冗余。主服务器配置涉及编辑`/etc/named.conf`,设置监听IP和允许查询的范围,并定义主区域及允许的数据传输。从服务器配置需指定为奴隶类型,并指明主服务器的IP。测试表明正反向查询解析均正常。注意配置文件的语法正确性和权限设置。
|
2天前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
4天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
7天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务

相关产品

  • 云解析DNS
  • 推荐镜像

    更多