1、配置解析一个正向区域:web
以bucktan.com域为例:数据库
1.1 定义区域安全
在主配置文件中(/etc/named.conf)或主配置文件辅助配置文件(/etc/named.rfc1912.zones)中实现;服务器
zone "ZONE_NAME" IN {网络
type {master|slave|hint(根服务器)|forward(转发)};ide
file "ZONE_NAME.zone"; 学习
};spa
注意:区域名字即为域名;日志
eg:zone "bucktan.com" IN {递归
type master;
file "bucktan.com.zone";
};
1.2创建区域数据文件(主要记录为A或AAAA记录)
在/var/named目录下创建区域数据文件;
文件为:/var/named/bucktan.com.zone
eg:$TTL 3600
$ORIGIN bucktan.com.
@ IN SOA ns1.bucktan.com. nsadmin.bucktan.com. (
2018010109
1H
10M
1W
1D )
@ IN NS ns1
ns1 IN A 172.18.26.7
www IN A 172.18.26.7
web IN CNAME www
权限及属组修改:
# chgrp named /var/named/bucktan.com.zone
# chmod o= /var/named/bucktan.com.zone
eg:-rw-r-----. 1 root named 362 Apr 16 18:11 bucktan.com.zone
检查语法错误:
# named-checkzone ZONE_NAME ZONE_FILE
# named-checkconf
1.3让服务器重载配置文件和区域数据文件
# rndc reload 或
# systemctl reload named.service
注:一、在解析时注意修改区域数据文件的权限,由于在解析时是由named用户去解析的且权限最好为640
二、在上述操做彻底正常的状况下若是不能正常解析,能够查看配置文件(/etc/named.conf)中监听是否正确,在这里注意若是只监听(通讯)某一个主机,则可添加它的ip地址,若是要监听全部的(即与全部的主机通讯),则能够将其注释掉。
三、在学习中,建议关闭dnssec
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
与别的主机通讯时,注意要注释掉//allow-query { localhost; };
四、若是自身是不能解析,就检查dns配置文件(/etc/resolv.conf)设置为本身的主机,在实际中设置为可用的dns服务便可
2、配置解析一个反向区域
2.1定义区域
在主配置文件中或主配置文件辅助配置文件中实现;
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};
eg:zone "26.18.172.in-addr.arpa" IN {
type master;
file "172.18.26.7.zone";
};
注意:反向区域的名字
反写的网段地址.in-addr.arpa
如:100.16.172.in-addr.arpa
2.2定义区域解析库文件(主要记录为PTR)
示例,区域名称为26.18.172.in-addr.arpa;
eg:$TTL 3600
$ORIGIN 26.18.172.in-addr.arpa.
@ IN SOA ns1.bucktan.com nsadmin.bucktan.com. (
2018010203
1H
10M
1W
12H )
IN NS ns1.bucktan.com.
7 IN PTR ns1.bucktan.com.
8 IN PTR ns2.bucktan.com.
9 IN PTR new.bucktan.com.
10 IN PTR bbs.bucktan.com.
权限及属组修改:
# chgrp named /var/named/172.16.100.zone
# chmod o= /var/named/172.16.100.zone
eg:-rw-r-----. 1 root named 408 Apr 16 18:38 172.18.26.7.zone
检查语法错误:
# named-checkzone ZONE_NAME ZONE_FILE
# named-checkconf
2.3让服务器重载配置文件和区域数据文件
# rndc reload 或
# systemctl reload named.service
注:反向区域解析跟正向的同样要注意
3、主从服务器:
注意:从服务器是区域级别的概念;主从结构当中,它只是区域级别的概念,若是一台主服务器上面有三个区域,
他们都是主的,若是配置一台服务器作他的从服务器时,是相对于它的某个区域配置的,而不是相对于整台服务器配置的,因此,它若是是第一个区域的从,那么在从服务器上它只有第一个区域的副本,若是想成为三个区域的从,那么三台都要配置。
若是一台服务器它既是正向的主,又是反向的主,它既提供了正向区域的解析又提供了反向区域的解析,那么这个时候从服务器若是只配置了正向区域的从,那么反向区域跟他是没有关系的,就不能解析反向区域,因此,若是要让一台服务器既是正向的也是反向的解析,那么它们就要分别配置。
复制还能够级联,就是第二台服务器能够去主服务器复制,第三台也可做为第二台的从服务器,从而复制
配置一个从区域:(换一台主机)
On Slave
(1) 定义区域
定义一个从区域;
zone "ZONE_NAME" IN {
type slave;
file "slaves/ZONE_NAME.zone";
masters { MASTER_IP; };
};
配置文件语法检查:named-checkconf
eg:zone "bucktan.com" IN {
type slave;
file "slaves/bucktan.com.zone";
masters { 172.18.26.7; };
};
(2) 重载配置
rndc reload
systemctl reload named.service
注:/var/named/slaves:此目录专用于从服务器从主服务器那里同步的文件,须要自动的建立文件时使用的。
On Master
(1) 确保区域数据文件中为每一个从服务器配置NS记录,而且在正向区域文件须要每一个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址;
注意:时间要同步;
ntpdate命令;
eg:$TTL 3600
$ORIGIN bucktan.com.
@ IN SOA ns1.bucktan.com. nsadmin.bucktan.com. (
2018010109
1H
10M
1W
1D )
@ IN NS ns1
@ IN NS ns2##此处添加了一个NS记录
ns1 IN A 172.18.26.7
ns2 IN A 172.18.26.8##此处添加了一个A记录
www IN A 172.18.26.7
web IN CNAME www
只要有主从,那么每更改一次都要改序列号
主从服务中应该注意的事项,和遇到问题时的解决办法:
1.只要有主从,那么每更改一次都要改序列号
二、在学习中,若是不能传送文件时,能够检查防火墙是否关闭,同时也能够经过日志文件(/var/log/messages)查看情况
三、其它的注意的就跟正向区域解析中注意的事项同样
四、在通讯链接成功以后要注意时间要同步,可用ntpdate命令。
4、子域受权:
正向解析区域受权子域的方法:定义一个子域
ops.bucktan.com. IN NS ns1.ops.bucktan.com.
ops.bucktan.com. IN NS ns2.ops.bucktan.com.
ns1.ops.magedu.com. IN A IP.AD.DR.ESS
ns2.ops.magedu.com. IN A IP.AD.DR.ESS
eg:@ IN NS ns2
ops IN NS ns3.ops.bucktan.com. ##此为添加的三级域域名
ns1 IN A 172.18.26.7
ns2 IN A 172.18.26.8 ###此为三级域ip
ns3.ops IN A 172.18.26.20
注:一、在父域里添加一个NS记录以及A记录,如上
二、子域要用另外一个主机(ip),定义一个子域方法跟定义一个正向解析区域同样,
eg:定义区域
zone "ops.bucktan.com" IN {
type master;
file "ops.bucktan.com.zone";
};
定义区域解析库文件(文件在/var/named/目录下且名字为ops.bucktan.com.zone)
$TTL 3600
$ORIGIN ops.bucktan.com.
@ IN SOA ns.ops.bucktan.com. nsadmin.ops.bucktan.com. (
2018010301
1H
10M
1W
10H )
IN NS ns1
ns1 IN A 172.18.26.20
www IN A 172.18.26.20
web IN CNAME www
5、定义转发:
注意:被转发的服务器必须容许为当前服务作递归;
5.1 区域转发:仅转发对某特定区域的解析请求;
定义方式:
zone "ZONE_NAME" IN {
type forward;
forward {first|only};
forwarders { SERVER_IP(转发器); };
};
first:本身解析不了就首先转发;转发器不响应时,自行去迭代查询;
only:只转发;
对于子域而言,它不知道父域在哪里就能够定义一个区域转发
eg:zone "bucktan.com" IN {
type forward;
forward only;
forwarders { 172.18.26.7; 172.18.26.8; };
};(注:这是在子域的主机172.18.26.20中配置文件定义的)
注:一、父域能解析子域,子域也能解析父域。
子域不能上网的状况下要解析外网就不行,但若是父域主机能上网,这时子域的请求就会转发给父域达到能解析的要求
5.2全局转发:针对凡本地没有经过zone定义的区域查询请求,统统转给某转发器;
在配置文件中编辑/etc/named.conf
在options中加以下内容:
options {
... ...
forward {only|first};
forwarders { SERVER_IP; };
.. ...
};
6、bind中的安全相关的配置:
acl(访问控制列表);把一个或多个地址归并一个命名的集合,随后经过此名称便可对此集合内的全部主机实现统一调用;
acl acl_name {
ip;
net/prelen(掩码);
};
注:也是将此加在配置文件/etc/named.conf中
示例:
acl mynet {
172.18.0.0/16;
127.0.0.0/8;
};
bind有四个内置的acl
none:没有一个主机;
any:任意主机;
local:本机;
localnet:本机所在的IP所属的网络;
访问控制指令:
allow-query {}; 容许查询的主机;白名单;
注:这是容许那些主机能够来查询本身
allow-transfer {}; 容许向哪些主机作区域传送;默认为向全部主机;应该配置为仅容许从服务器(为了安全)
注:以上两个能够写在全局和区域中,只是做用范围不一样而已
allow-recursion {}; 容许哪些主机向当前DNS服务器发起递归查询请求;
通常只容许本地的作递归查询
allow-update {}; DDNS,容许动态更新区域数据库文件中内容;
通常为none
eg:allow-recursion { mynet }