欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

003.DNS主从正反解析部署

程序员文章站 2022-11-21 22:07:28
一 实验环境 1.1 实验需求 配置正向解析bind 配置反向解析bind 配置辅助dns的bind 实现主辅dns之间的区域传送 1.2 环境规划 主dns:CentOS6.8-01 172.24.8.10 linuxmaster.aliyun.com 辅dns:CentOS6.8-02 172. ......

一 实验环境

1.1 实验需求

  • 配置正向解析bind
  • 配置反向解析bind
  • 配置辅助dns的bind
  • 实现主辅dns之间的区域传送

1.2 环境规划

主dns:centos6.8-01 172.24.8.10 linuxmaster.aliyun.com

辅dns:centos6.8-02 172.24.8.11 linuxslave.aliyun.com

yum+www服务器:centos7-03 172.24.8.30 mirrors.aliyun.com

client:centos6.8-03 172.24.8.20

domain name:aliyun.com

二 配置正向解析

  1. 第一步:使用yum安装dns所使用的软件包(bind)
  2. 第二步:创建或修改主配置文件(/etc/named.conf)
  3. 第三步:创建区域数据文件(/var/named/***.zone)
  4. 第四步:使用相关命令(named-checkconf、named-checkzone)测试配置文件及区域文件是否存在语法错误
  5. 第五步:确保主配置文件和各区域解析库文件的权限为640,属主为root,属组为named;
  6. 第六步:重启服务或重新加载配置文件
  7. 第七步:更改iptables和selinux的设置(如果不了解此两项可以暂时关闭它们)
  8. 第八步:分别使用(dig/nslookup)在linux/windows主机进行查询dns相关资源记录

2.1 安装bind

1 [root@linuxmaster ~]# yum -y install bind

2.2 配置主配置文件

  1 [root@linuxmaster ~]# cat /etc/named.conf
  2 ……
  3 options {
  4         listen-on port 53 { 127.0.0.1; };
  5         listen-on-v6 port 53 { ::1; };
  6         directory       "/var/named";	#存放区域文件根目录,下面给出的相对路径都是相对此目录
  7         dump-file       "/var/named/data/cache_dump.db";
  8         statistics-file "/var/named/data/named_stats.txt";
  9         memstatistics-file "/var/named/data/named_mem_stats.txt";
 10         allow-query     { localhost; };			#允许哪些主机查询
 11         recursion yes;					#是否允许递归查询
 12 
 13         dnssec-enable yes;
 14         dnssec-validation yes;
 15 
 16         /* path to isc dlv key */
 17         bindkeys-file "/etc/named.iscdlv.key";
 18 
 19         managed-keys-directory "/var/named/dynamic";
 20 };
 21 
 22 logging {						#定义日志
 23         channel default_debug {
 24                 file "data/named.run";
 25                 severity dynamic;
 26         };
 27 };
 28 
 29 zone "." in {					#定义根区域文件名称
 30         type hint;
 31         file "named.ca";				#相对路径,即可/var/named/named.ca
 32 };
 33 
 34 include "/etc/named.rfc1912.zones";                  #定义区域配置文件,若要新增也可以在此使用include
 35 include "/etc/named.root.key";		         #根区域的key文件,与事务签名相关
 36 注释以下三行——
 37 //listen-on port 53 { 127.0.0.1; };
 38 //listen-on-v6 port 53 { ::1; };
 39 //allow-query     { localhost; };
 40 [root@linuxmaster ~]# service named start		#启动named服务
 41 [root@linuxmaster ~]# ss -taunl | grep "53"
 42 [root@linuxmaster ~]# netstat -tlun			#验证服务正常启动

2.3· 区域配置文件中新增zone

  1 [root@linuxmaster ~]# vi /etc/named.conf 			#在zone文件中增加区域
  2 ……
  3 zone "aliyun.com" in {
  4 type master;
  5 file "aliyun.com.zone";
  6 };
  7 ……

2.4 新建区域zone文件

  1 [root@linuxmaster ~]# cd /var/named/
  2 [root@linuxmaster named]# cp /var/named/named.localhost /var/named/aliyun.com.zone
  3 [root@linuxmaster named]# vi /var/named/aliyun.com.zone
  4 $ttl 300;
  5 @   in soa  linuxmaster.aliyun.com. admin.aliyun.com. (
  6                     2017051720
  7                     1h
  8                     5m
  9                     7d
 10                     3d )
 11     in  ns  linuxmaster
 12     in  mx 20 mx
 13 linuxmaster in  a   172.24.8.10
 14 www         in  a   172.24.8.30
 15 mirrors     in  a   172.24.8.30
 16 ftp         in  cname   www
 17 [root@linuxmaster ~]# named-checkconf			#检查配置文件
 18 [root@linuxmaster named]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone
 19 zone aliyun.com.zone/in: loaded serial 2017051720
 20 ok

2.5 修改权限

  1 [root@linuxmaster ~]# chmod 640 /var/named/aliyun.com.zone
  2 [root@linuxmaster ~]# chown root:named /var/named/aliyun.com.zone
  3 注意:确保主配置文件和各区域文件权限为640,属主为root,属组为named。
  4 [root@linuxmaster ~]# service named restart

2.6 关闭防火墙和selinux

  1 [root@linuxmaster ~]# service iptables stop
  2 [root@linuxmaster ~]# setenforce 0
  3 [root@linuxmaster ~]# service named restart

2.7 测试解析

将dns修改为主dns服务器地址,之后ping linuxmaster.aliyun.com测试。

三 反向解析bind配置

正向解析与反向解析各自采用不同的解析库,一台dns服务器可以只有正向解析库或只有反向解析库,也可以同时提供正向/反向解析。

反向区域的区域名称格式:

reverseip.in-addr.arpa.

例如:假设网络地址为172.16.100.1 那么规则命名为100.16.172.in-addr.arpa

3.1 区域配置文件中新增反向zone

  1 [root@linuxmaster ~]# vi /etc/named.conf
  2 ……
  3 zone "8.24.172.in-addr.arpa" in {
  4     type master;
  5     file "8.24.172.zone";
  6 };
  7 ……

3.2 新建反向区域zone文件

  1 [root@linuxmaster ~]# /var/named/8.24.172.zone
  2 $ttl 300;
  3 @   in soa  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720
  5                     1h
  6                     5m
  7                     7d
  8                     3d )
  9     in  ns  linuxmaster.aliyun.com.
 10 8.10        in  ptr linuxmaster.aliyun.com.
 11 8.30        in  ptr www.aliyun.com.
 12 8.30        in  ptr mirrors.aliyun.com.
 13 8.10        in  ptr mx.aliyun.com.

注意:

反向解析不需要cname记录,且mx记录决不允许出现在反向解析库里;

8.10 ip地址没写全会自动从主配置文件中定义的区域名“24.172.in-addr.arpa”,没写全最后面不需要加.

  1 [root@linuxmaster ~]# named-checkconf				#检查配置文件
  2 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone
  3 zone aliyun.com.zone/in: loaded serial 2017051720
  4 ok
  5 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/8.24.172.zone
  6 zone aliyun.com.zone/in: loaded serial 2017051720
  7 ok

3.3 修改权限

  1 [root@linuxmaster ~]# chmod 640 /var/named/24.172.zone
  2 [root@linuxmaster ~]# chown root:named /var/named/24.172.zone

注意:确保主配置文件和各区域文件权限为640,属主为root,属组为named。

  1 [root@linuxmaster ~]# service named restart

3.4 关闭防火墙和selinux

  1 [root@linuxmaster ~]# service iptables stop
  2 [root@linuxmaster ~]# setenforce 0
  3 [root@linuxmaster ~]# service named restart

3.5 测试解析

将dns修改为主dns服务器地址,之后在windows客户端使用nslookup测试。

四 辅助dns配置

辅助dns是针对区域来说的,如果有多台dns服务器,必须为每个dns服务器建立ns记录,否则主dns将不向其发送通知。

4.1 定义区域

  1 zone “区域名称” in {
  2    type slave; 				#区域类型为辅助
  3    file "slaves/zone_name.zone";	        #区域文件必须保存在slaves目录下,放在其他目录没有权限
  4    masters { 				#指出主服务器是谁,注意:花括号前后要有一个空格
  5      master_dns_ip;
  6      master_dns2_ip;
  7    };
  8 };

4.2 辅dns上安装bind

1 [root@linuxslave ~]# yum -y install bind

4.3 区域配置文件中新增辅助zone

  1 [root@linuxslave ~]# vi /etc/named.rfc1912.zones	#建议添加在named.rfc1912.zones里
  2 ……
  3 zone "aliyun.com" in {
  4     type slave;
  5     file "slaves/aliyun.com.zone";
  6     masters { 172.24.8.10; };				#主dns的地址
  7 };
  8 zone "8.24.172-addr.arpa" in {
  9     type slave;
 10     file "slaves/24.8.172.zone";
 11     masters { 172.24.8.10; };
 12 };
 13 [root@linuxslave ~]# named-checkconf			#检查配置

4.4 辅助dns关闭防火墙和selinux

  1 [root@linuxslave ~]# service iptables stop
  2 [root@linuxslave ~]# setenforce 0
  3 [root@linuxslave ~]# service named restart

4.5 主dns正向解析添加辅助dns记录

  1 [root@linuxmaster ~]# vi /var/named/aliyun.com.zone
  2 $ttl 300;
  3 @   in soa  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720
  5                     1h
  6                     5m
  7                     7d
  8                     3d )
  9     in  ns  linuxmaster
 10     in  ns  linuxslave
 11     in  mx 20 mx
 12 linuxmaster	in  a   172.24.8.10
 13 linuxslave	in  a   172.24.8.11
 14 www		in  a   172.24.8.30
 15 mirrors		in  a   172.24.8.30
 16 mx			in  a   172.24.8.10
 17 ftp			in  cname   www

4.6 主dns反向解析添加辅助dns记录

  1 [root@linuxmaster ~]# vi /var/named/8.24.172.zone
  2 $ttl 300;
  3 @   in soa  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720
  5                     1h
  6                     5m
  7                     7d
  8                     3d )
  9     in  ns  linuxmaster.aliyun.com.
 10     in  ns  linuxslave.aliyun.com.
 11 8.10        in  ptr linuxmaster.aliyun.com.
 12 8.11        in  ptr linuxslave.aliyun.com.
 13 8.30        in  ptr www.aliyun.com.
 14 8.30        in  ptr mirrors.aliyun.com.
 15 8.10        in  ptr mx.aliyun.com.

4.7 检查配置

  1 [root@linuxmaster ~]# named-checkconf				#检查配置文件
  2 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone
  3 zone aliyun.com.zone/in: loaded serial 2017051720
  4 ok
  5 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/8.24.172.zone
  6 zone aliyun.com.zone/in: loaded serial 2017051720
  7 ok
  8 [root@linuxmaster ~]# service named restart

查看主dns往辅助dns的数据同步情况

4.8 查看辅助dns

  1 [root@linuxslave ~]# yum -y install bind-utils			#安装客户端
  2 [root@linuxslave ~]# dig -t axfr aliyun.com @172.24.8.10	#查看辅助dns同步情况

1 [root@linuxslave ~]# cat /var/named/slaves/aliyun.com.zone

注意:辅助dns资源记录是从主dns同步过来的,不能手动更改。

windows客户端检测。

总结:

  • 1、每个dns服务器必须要有一个对应的ns资源记录;
  • 2、创建slave的时候,其配置文件类型必须是type slave; 必须指定主服务器的 ip地址 ;
  • 3、可以使用dig -t axfr test.com @server_ip 从主dns服务器拉取所有解析库资源记录;
  • 4、主辅同步完成后,将自动在slave服务器上的slaves/目录下生成zone文件,这些区域文件是从主dns同步过来的,一般为只读,不建议更改slave的zone文件;
  • 5、在主dns上修改区域文件时,必须将soa记录的serial加1 因为slave是通过serial值来进行判断更新的(windows系统上是自动完成的);
  • 6、dns的日志默认全部保存在/var/log/messege 文件中;
  • 7、dns的解析依赖于解析库,所以就算是所配置的内容是完全不存在的也可以解析(且正向解析和反向解析的解析库是各自独立的)。需要注意,正向解析里没有ptr记录,而反向解析库里不需要a记录、mx记录和cname记录