子域授权:
正向解析区域授权子域的方法:
ops.claude666.com. INNSns1.ops.claude666.com.
ops.claude666.com. INNSns2.ops.claude666.com.
ns1.ops.magedu.com. IN AIP.AD.DR.ESS
ns2.ops.magedu.com. IN AIP.AD.DR.ESS
实现原理:
在本域名服务器上正向解析库文件中定义子域对应的dns服务器的主机名和A记录即可;
定义转发:
注意:被转发的服务器必须允许为当前服务做递归;
1) 区域转发:仅转发对某特定区域的解析要求;
zone“zone_name” IN {
type forward;
forward {first|only};
forwards { server_ip; };
};
first:首先转发;转发器不响应时,自行去迭代查询;
only:只转发;
2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;
options{
……
forward {first|only};
forwards { server_ip; };
…
};
示例:子域授权;父域主机:192.168.19.128,子域主机:192.168.19.134
父域上:
1. 父域主配置文件配置;
注意:主配置文件中dnssec-enable后面需要改为no;dnssec-validation 后面也需要改为no;
2. 定义zone;
3. 创建区域解析库;
4. 属组及权限修改;
子域上:
1. 子域主配置文件;
2. 添加子域zone和定义区域解析库文件;
3. 属组及权限修改;
测试:
父域上:解析子域www.ops.claude.com的地址;
直接解析,出错了,出现以下情况,没有解析出来;
在命令之后加上+norecurse;则能成功解析;
子域上:
解析父域 www.claude.com;出错了,解析的不是父域地址,因此192.168.19.134也是可联网的,此解析的是网络上的地址;
定义转发服务器;
1. 配置子域的/etc/named.rfc1912.zones文件,添加一下信息;
2. 重启服务,子域解析父域,解析成功;
3. 也可定义全局转发;
DNS中基础的安全相关的配置:
acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有的主机实现统一调用;
格式:
aclacl_name {
ip;
net/prelen;
}
示例:
acl mynet {
172.16.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,允许动态更新区域数据库文件中的内容;
bindview:视图,将请求者根据其来源进行分类,分类后实现使用不同的区域解析库来解析对某区域主机的请求,目前主要应用CDN技术领域;
配置格式:
view VIEW_NAME {
match-clients{};
zone{};
zone{};
};
一个bind服务器可定义多个view,每个view中可定义一个或多个zone;
每个view用来匹配一组客户端;
每个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件;
Note:
1) 一旦启用了view,所有的zone都只能定义在view中;
2) 仅有必要在匹配到的允许递归请求的客户所在view中定义根区域;
3) 客户端请求到达时,时自上而下检查每个view所服务的客户端列表;
示例:
内网部署了一台web服务器,要求内网用户通过dns服务器解析,解析结果为web服务器的内网地址;外网用户解析,解析结果为web服务器发布到网关的ip地址。
1. DNS服务器主配置文件如下:/etc/named.conf
2. 主辅配置文件配置:/etc/named.rfc1912.zones;
1)内网解析视图;
2)外网解析视图;
3. 解析库文件配置:
1) 内网解析库文件
2) 外网解析库文件;
4. 验证:
在内网主机上解析;
在外网主机上解析:
解析地址会变成2.2.2.1和2.2.2.3;
手动编译bind9;
1. 准备全新的虚拟机,安装编译必备组件“development tools” “server platformdevelopment”
2. 下载bind9压缩文件,并解压缩;
3. 创建系统组和系统用户;
4. 编译安装;
--prefix :安装包放在统一的路径下
--sysconfdir :配置文件路径
5. Make && make install
Note:对于所有的编译安装来说,下面的都可能用到:
修改PATH变量,导出二进制程序的搜索路径;
导出库文件搜索路径;
导出头文件搜索路径;
导出帮助文件手册搜索路径;
6. 修改PATH变量,导出二进制程序搜索路径;
7. 导出库文件搜索路径;
8. 导出头文件搜索路径;
9. 导出帮助文件手册搜索路径
编辑文件/etc/man.config
保存之后可以man一下named测试;
10.准备配置文件;
1) 编辑/etc/named/named.conf
2) 编辑解析库库文件;
编辑/var/named/named.ca
创建localhost.zone文件,和named.local文件;
11.更改属主属组,并检查配置文件、区域文件语法错误;
1) 更改属主属组;
2) 检查配置文件语法错误;
12.启动;
查看服务是否开启;
13.测试;
14.Rndc的使用;
1) 配置文件的创建;
2) 复制/etc/named/rndc.conf中的文件至named.conf文件中;
3) 删除/etc/named/named.conf文件中的以下行前面的#号;
修改后的结果:
4) 测试使用;