CentOS6.6DNS服务器的搭建

Linux下的DNS的软件包为bind,有如下几个软件包:

bind           #DNS服务的主程序

bind-utils # 工具,包含dig,nslookup等网络诊断工具。

bind-chroot      # 修改named 的root目录,这样named被***后,***也被限制在指定的目录下,不能切换到/,避免造成更大的破坏。【下面的演示中,为了简单起见就没安装该组件】

# 安装bind软件包

yuminstall bind bind-utils -y

# 查看bind 、bind-utils生成哪些文件(仅列出部分文件)

[root@Master ~]# rpm -ql bind  

/etc/named

/etc/named.conf                                  #主配置文件

/etc/named.rfc1912.zones               #事先定义好的区域文件

/etc/named.root.key                          # 实现事物签名的秘钥文件

/var/named                                           # 默认DNS解析记录的数据文件

/var/named/slaves                              # 从DNS的配置文件目录

[root@Master ~]# rpm -ql bind-utils

/usr/bin/dig      # 域信息搜索器

/usr/bin/host

/usr/bin/nslookup

说明:dig(DNS lookup utility)域信息搜索器命令。

dig的常用命令格式:

dig –t 资源记录类型名称@server-ip

dig –x IP @DNS_IP      反向解析

dig –t axfr zone            验证完全区域传送

dig –t ixfr zone     验证增量区域传输(通常需要指定序列号)

named-checkconf工具

格式:named-checkconf [主配置文件]

例如:named-checkconf /var/named/named.conf

named-checkzone工具

格式:named-checkzone <域名> <区域数据文件>

例如:named-checkzone /var/named/student.com

实验一:本地搭建DNS服务器,实现指定域名的解析

vi/etc/named,conf 内容如下:

options {listen-onport 53 { 192.168.2.7; };             # 在本机192.168.2.7的53端口监听
//      listen-on-v6 port 53 {::1; };directory          "/var/named";dump-file         "/var/named/data/cache_dump.db";
//        statistics-file"/var/named/data/named_stats.txt";
//        memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { 192.168.2.0/24; };#any表示允许所有,这样会导致网络结构泄露。一般不建议这样设置#192.168.2.0/24表示网段,192.168.2.112表示指定IPrecursion yes;                    #是否允许为客户机进行递归查询dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key*/bindkeys-file"/etc/named.iscdlv.key";managed-keys-directory"/var/named/dynamic";
};logging {channel default_debug{file"data/named.run";severitydynamic;};
};zone "." IN {type hint;file"named.ca";
};zone "stu13.com." IN {                    #区域名称为stu13.com,后面的配置中就是用@代替这个区域的typemaster;file"stu13.com.zone";
};zone "2.168.192.in-addr.arpa" IN {typemaster;file"2.168.192.arpa";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

# 编写名称解析数据文件

cd/var/named/

touch  stu13.com.zone 2.168.192.arpa

chownroot:named /var/named/2.168.192.arpa

chownroot:named /var/named/stu13.com.zone

chmod644 /var/named/2.168.192.arpa

chmod644 /var/named/stu13.com.zone

注意:

必须要修改解析库文件的属组为named

vistu13.com.zone ,正向解析的文件内容如下:

$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150920101M5M1H1D)IN NS                  ns1.stu13.com.IN MX  10       mail
ns1            IN A                    192.168.2.7
mail          IN A                    192.168.2.7
www         IN A                    192.168.2.7
www         IN A                    192.168.2.9
ftp             IN CNAME        192.168.2.8
www0      IN CNAME        www
www1      IN CNAME        www

# 说明:上面的www 有2条A记录,DNS解析到192.168.2.7和192.168.2.9,可以达到负载均衡的效果。

 

正向解析的文件格式如下:

$TTL 1D    ;定义TTL为1天

; 必须首先定义一个SOA记录,@代表相应的区域,每个区域数据文件只能有一个SOA。SOA后面跟的是这个区域的授权主机名称,和管理者的邮箱。

@ IN  SOA  demo.com. Admin.demo.com. (  # 注意区域地址、管理员邮箱地址 的 点号不能忘掉

               20150914027  ; 序列号,该序号不更新的话,任何所做的更改都不会同步到其他DNS服务器上【不超过10位】

                1M  ; 定义辅助DNS每隔多久检查一次主DNS服务器的版本号

               5M  ; 同步失败后,再次重试需要的间隔时间

               1H  ; 过期时间(超过该时间主DNS还没有响应,辅助DNS也停止工作)

              1D) ; 否定答案的缓存时长

说明: M分钟、H小时、D天、W周。默认是秒

vi2.168.192.in-addr.arpa,反向解析的文件内容如下:

$TTL 1D
@     IN     SOA           stu13.com.       admin.stu13.com. (20150323121M5M1H1D)IN     NS           ns1.stu13.com.
7       IN     PTR           www.stu13.com.
9       IN     PTR           www.stu13.com.
7       IN     PTR           www0.stu13.com.
8       IN     PTR           ftp.stu13.com.
7       IN     PTR           mail.stu13.com.
7       IN     PTR           www1.stu13.com.

说明

反向区域文件基本结构和正向区域数据文件基本完全相同,只不过这里多出了一个PTR选项。

PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息。最后几行的第一列表示是主机的IP地址,只不过省略了网络地址部分,系统会自动补全,如13对应的是192.168.2.13

service named start        #启动dns服务器

# dig命令进行访问测试

1.正向解析:

dig -t a www1.stu13.com @192.168.2.7

dig -t a ftp.stu13.com @192.168.2.7

2.反向解析

DNS服务器本机上测试

windows7 上测试:

实验二:构建主从DNS服务器,实现指定域名的解析

在实验1的基础上,

修改Master服务器的/etc/named.conf文件,

options {listen-onport 53 { 192.168.2.7; };directory          "/var/named";dump-file         "/var/named/data/cache_dump.db";allow-query     { 192.168.2.0/24; };recursion yes;          ........zone "." IN {type hint;file"named.ca";
};zone "stu13.com" IN {typemaster;allow-transfer{ 192.168.2.12;};file"stu13.com.zone";
};zone "2.168.192.in-addr.arpa" IN {typemaster;allow-transfer{ 192.168.2.12;};file"2.168.192.arpa";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

vi /var/named/stu13.com.zone内容如下:

$TTL 1D
@  IN  SOA  stu13.com.  admin.stu13.com.  (20150920101M5M1H1D)IN   NS                ns1.stu13.com.IN   NS                ns2.stu13.com.     ;Slave也要在这里配置个NS记录IN   MX  10            mail
ns1       IN    A                192.168.2.7
ns2       IN    A                192.168.2.12        ; Slave也要在这里配个A记录
mail      IN    A                192.168.2.7
www       IN    A                192.168.2.7
www       IN    A                192.168.2.9
ftp       IN CNAME               192.168.2.8
www0      IN CNAME               www
www1      IN CNAME               www

编辑/var/named/2.168.192.arpa ,内容如下:

$TTL 1D
@   IN  SOA    stu13.com.  admin.stu13.com.  (20150323151M5M1H1D )IN  NS     ns1.stu13.com.IN  NS     ns2.stu13.com.
7   IN  PTR    www.stu13.com.
7   IN  PTR    ns1.stu13.com.
12  IN  PTR    ns2.stu13.com.
9   IN  PTR    www.stu13.com.
7   IN  PTR    www0.stu13.com.
7   IN  PTR    www1.stu13.com.
8   IN  PTR    ftp.stu13.com.
7   IN  PTR    mail.stu13.com.

# 配置SlaveDNS服务器

vi/etc/named.conf

options {listen-onport 53 { 192.168.2.12; };          # 本机地址directory          "/var/named";dump-file         "/var/named/data/cache_dump.db";allow-query     { 192.168.2.0/24; };recursion yes;dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key*/bindkeys-file"/etc/named.iscdlv.key";managed-keys-directory"/var/named/dynamic";
};logging {channel default_debug{file"data/named.run";severitydynamic;};
};zone "." IN {type hint;file"named.ca";
};zone "stu13.com." IN {typeslave;masters{ 192.168.2.7; };file"slaves/stu13.com.zone";
};zone "2.168.192.in-addr.arpa" IN {typeslave;masters{ 192.168.2.7; };file"slaves/2.168.192.arpa";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

servicenamed restart     # 重启named服务即可

ls/var/named/slaves       # 查看目录下是否同步到了dns数据库文件,正常同步后,目录下应该有类似下图的2个文件生成。

# 如果无法正常工作,请tail查看日志  :tail -n 50 /var/log/messages | grep named


补充:

Slave端DNS服务首次启动,可以先执行一次dig axfrstu13.com @192.168.2.7,完全区域传输一下解析文件。

# 然后在slave上执行dig命令测试


# 修改主配置,查看从能同步

修改下Master的解析库文件(修改主的解析条目的时候,必须一并将serial改大些,否则Slave检测到serial数值未变大,不会更新)

然后再在Slave上执行rndc reload,发现Slave的解析库文件内容也同步了,说明主从同步实验成功。

# 还可以将Master的服务暂时停掉,测试slave能否工作:

dig -t a www1.stu13.com @192.168.2.12

如下图,dig命令仍然返回结果,说明我们的slave在工作中:

实验三:缓存DNS服务器的搭建

缓存服务器的构建,比较简单,就是在最原始的配置文件中修改:

listen-onport 53 { ***.***.***.***; };

allow-query   { ** };

然后在options {};容器里面加入forwarders { IP(这是主域名服务器的ip地址);};

例如:

options {listen-on port 53 {***.***.***.***; };directory          "/var/named";dump-file         "/var/named/data/cache_dump.db";allow-query     { **; };recursion yes;forwarders{192.168.2.7;192.168.2.12; };                #格式: forwarders{ IP(这是主域名服务器的ip地址);};....下面都是最原始的文件named.conf ......
}

然后执行service named start即可。

实验四:单台DNS构建分离解析

# 配置过程中主从+分离解析一直出现问题。因此这里先以单台DNS构建分离解析。

Client_1:192.168.2.10/24

Client_2:192.168.2.11/24

DNS_Server:192.168.2.7/24

具体操作如下:

vi /etc/named.conf 编辑内容如下:

options {listen-on port 53 {192.168.2.7; };directory          "/var/named";dump-file         "/var/named/data/cache_dump.db";allow-query     { 192.168.2.0/24; };recursion yes;dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key*/bindkeys-file"/etc/named.iscdlv.key";managed-keys-directory"/var/named/dynamic";
};logging {channel default_debug{file"data/named.run";severitydynamic;};
};view "local" {
match-clients {192.168.2.10; };                 # 客户端地址是192.168.2.10的匹配local规则zone "." IN {type hint;file "named.ca";
};
zone "stu13.com." IN {type master;file"stu13.com.zone.local";
};
zone "2.168.192.in-addr.arpa" IN {type master;file"2.168.192.arpa.local";
};};view "others" {
match-clients { any; };                                  # 客户端地址非192.168.2.10的匹配others规则zone "." IN {type hint;file"named.ca";
};
zone "stu13.com." IN {type master;file"stu13.com.zone.others";
};
zone "2.168.192.in-addr.arpa" IN {
zone "2.168.192.in-addr.arpa" IN {type master;file"2.168.192.arpa.others";
};
};# include "/etc/named.rfc1912.zones";           # 注释掉这一行
include "/etc/named.root.key";

# 配置区域解析文件

cd/var/named/

# 简单起见,我先只配置了最基本的www解析

# 配置匹配local的解析文件:

vistu13.com.zone.local

$TTL 86400
@ IN SOA stu13.com. admin.stu13.com. (20150920191M5M1H1D)IN    NS                       ns1.stu13.com.
ns1                  IN     A                       192.168.2.7
www                  IN     A                       192.168.2.9

vi2.168.192.arpa.local

$TTL 1D
@     IN     SOA           stu13.com.       admin.stu13.com. (20150323151M5M1H1D)IN     NS           ns1.stu13.com.
7       IN     PTR           ns1.stu13.com.
9       IN     PTR           www.stu13.com.

# 配置匹配others的解析文件:

vistu13.com.zone.others

$TTL 86400
@ IN SOA stu13.com. admin.stu13.com. (20150920191M5M1H1D)IN      NS                       ns1.stu13.com.
ns1          IN      A                        192.168.2.7
www          IN      A                        192.168.2.3

vi2.168.192.arpa.others

$TTL 1D
@     IN     SOA           stu13.com.       admin.stu13.com. (20150323151M5M1H1D)IN     NS              ns1.stu13.com.
7       IN     PTR              ns1.stu13.com.
3       IN     PTR              www.stu13.com.

chownroot:named 2.168.192.arpa* stu13.com.zone*          #修改数据文件的属组

named-checkconf    # 检查下语法

rndcreload       # 重启named服务

# 在不同的客户端进行访问测试

在Client1和Client2上执行dig -t A www.stu13.com @192.168.2.7

结果如下图,可以看到不同IP访问相同的域名,会自动转到不同的IP上。

转载于:https://blog.51cto.com/lee90/1697346

Linux下搭建DNS 服务器相关推荐

  1. Linux ENSP 搭建DHCP服务器并实现中继和Linux 下搭建DNS服务器(2个实验可跟做)

    文章目录 DHCP服务 了解DHCP服务 使用DHCP的好处 Linux 下搭建DNS服务器 实验环境 实验过程 修改DHCP配置文件 更改dns服务器名称 更改win10的IP地址 Linux &a ...

  2. linux dns服务无效,Linux下搭建DNS服务器及踩坑

    DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...

  3. Linux下搭建DNS服务器

    1.安装服务 yum –y install bind #安装DNS 服务 yum install bind-utils –y #安装DNS 检测工具 2.编辑配置文件 vi /etc/named.co ...

  4. linux mysql dns_Linux下搭建DNS服务器及踩坑

    DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...

  5. Linux下的DNS服务器搭建

    Linux下的DNS服务器搭建 一.DNS介绍 1.dns域名系统 2.正向解析和反向解析 二.检查环境 三.搭建主DNS 1.安装dns相关包 2.设置服务开机自启 3.编辑DNS主配置文件 4.编 ...

  6. Linux下的DNS服务器的搭建实战

    Linux下的DNS服务器的搭建 DNS(Domain Name Server,域名服务器) 是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器. DNS ...

  7. linux 子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 for ...

  8. linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

  9. Linux下搭建Apache服务器

    Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权, ...

  10. linux做子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

最新文章

  1. 优化内核报错及解决方法
  2. [云炬python3玩转机器学习]4-3 训练数据集,测试数据集
  3. 无埋点数据收集和adb monkey测试屏蔽通知栏
  4. C# 系统应用之鼠标模拟技术及自动操作鼠标
  5. Spring 3 MVC异常处理程序
  6. 黑白极简设计行业企业官网模板
  7. 谷歌研究员发现新的 iOS 安全系统
  8. 卸载mysql的步骤_卸载MySQL数据库的完整步骤(图)
  9. linux pbs 用户时间,Linux/超算中PBS常用命令
  10. html图片、背景音乐、滚动文字
  11. 【Shell】Shell脚本中调用另一个脚本的三种方式(fork/exec/source)
  12. 我所理解的SOLID原则
  13. 东南西北十字图_怎么辨别东南西北的方向 分清东南西北口诀与窍门技巧(图)...
  14. python基本符号怎么打_Python入门篇基础语法
  15. Python3,WIFI 万(破) 能 (解) 钥 (神) 匙 (器)的 GUI版本来了,果断收藏。
  16. java Jxl 操作Excel
  17. 十六、MDT 2013 Update 1批量部署-应用程序导入及自动安装(含OFFICE 2007安装)
  18. 解析 cifar10 的压缩包到图片
  19. WuThreat身份安全云-TVD每日漏洞情报-2023-05-19
  20. 【寒假每日一题】十三号星期五(个人练习)详细题解+推导证明(第十三天)

热门文章

  1. Atitit.dart语言的特性  编译时js语言大总结
  2. Atitit.java 反编译 工具  attilax 总结
  3. atitit.提升兼容性最佳实践 p825.doc
  4. paip.hibernate list 返回位null的解决
  5. paip.python php的未来预测以及它们的比较优缺点
  6. paip.Java Annotation注解的作用and 使用
  7. paip.语义分析--单字词形容词表180个
  8. paip.slap工具与于64位win7与JDBC的性能对比
  9. paip.c++ 常用类库attilax总结
  10. paip.最土团购在SHOPEX下安装总结