一.DNS服务器
(1)bind中的acl权限
含义:
1 bind中基础的安全相关的配置:
acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用
2 bind有四个内置的acl
none: 没有一个主机
any: 任意主机
localhost: 本机
localnet: 本机的IP同掩码运算后得到的网络地址
注意:只能先定义,后使用;因此一般定义在配置文件中, 处于options的前面
3 示例
vim /etc/named.conf
acl lan {
192.168.136.0/24;——允许访问的网段
172.18.0.0/16;——允许访问的网段
};
allow-query {localhost;lan;};——允许本机和lan范围的网段访问
(2)智能DNS
1 具图分析得知:在不同地区都会放置一个代理服务器,当用户访问某网站时,浏览器会将访问的IP地址发送到总的dns服务器上,该服务器会将IP地址发送到用户所在地区的区域代理服务器上。当区域代理服务器上有该地址的缓存数量会将数据发送给浏览器,让用户访问,如果没有则需要继续访问WEB服务器去获取地址。
也就是说,不同地区的用户访问同一网站但是返回的ip地址并不一样,这样大大提高了用户的访问速度,节省时间
2 view:
视图,一个bind服务器可定义多个view,每个view中可 定义一个或多个zone
每个view用来匹配一组客户端
多个view内可能需要对同一个区域进行解析,但使用不同的 区域解析库文件
"注意":
(1) 一旦启用了view,所有的zone都只能定义在view中
(2) 仅在允许递归请求的客户端所在view中定义根区域
(3) 客户端请求到达时,是自上而下检查每个view所服务 的客户端列表
3 基于实验加以说明:
步骤:
(1)准备两台虚拟机,一个当客户端,一个当服务器端
(2)在服务器端上设置,并定义view
vim /etc/named.conf
(3)将区域信息放在view中,vim /etc/named.rfc1912.zones
(4)分别设置beijing,henan的区域数据库信息
cd /etc/
cp -p named.rfc1912.zones named.rfc1912.zones.bj
cp -p named.rfc1912.zones named.rfc1912.zones.hn
vim named.rfc1912.zones.bj
vim named.rfc1912.zones.hn
(5) cd /var/named
vim lujing.com.zones.bj
vim lujing.com.zones.hn
(5)重启服务,进行连接
二. 编译安装bind
前期准备工作
配置yum源
vim base.repo
[base]
name=base
baseurl=file:////misc/cd
gpgcheck=0
挂载
mkdir /misc/cd
mount /dev/sr0 /misc/cd
安装包组
yum install groupinstall "development tools"
1 从官网上下载安装包 https://www.isc.org/
下载 bind-9.11.2
2 解压缩 tar xvf bind-9.11.0a3.tar.gz 进入bind-9.11.0a3这个目录
3 创建named这个用户,并且组也为named ,用户类型为系统用户
useradd -r(创建系统用户) -m(强制生成家目录) -d /var/named(创建家目录) -s /sbin/nologin(非交互登录) named
不必再创组,因为创建用户时已经自动生成了named组
4 在正式安装之前,查看README来进行初步了解
5 开始进行编译
.configure --prefix=/usr/bind9 --sysconfdir=/etc/bind9 确定后回车进行安装
6 进行make安装(在虚拟机中添加处理器数量,提高安装速度),在安装过程中,例如named.ca文件是不会编译下载,所以要通过其他虚拟机复制一份过来
dig -t ns . @172.18.0.1> /app/named.ca
scp /app/named.ca 192.168.136.180:/var/named/
7 make install
8 准备环境变量
vim /etc/profile.d/named.sh
export PATH=/app/bind9/bin:/app/bind9/sbin/:$PATH
. /etc/profile.d/named.sh
9 vim /etc/bind9/named.conf
options{
directory "/var/named/";
};
zone "."{
type hint;
file "named.ca";
};
zone "test.com" {
type master;
file "test.com.zone";
};
10 cd /var/name
vim test.com
$TTL 1d
@ IN SOA dns1 admin (1 1d 10m 1w 1h)
NS dns1
dns1 A 192.168.136.180
www A 192.168.136.122
www CNAME websrv
websrv A 192.168.136.121
11 导入man帮助
cd /app/bind9/share
vim /etc/man_db.conf
MANDATORY_MANPATH /app/bind9/share/man
12启动服务并进行测试
named -u named(以named运行) -f(前台显示信息) -g(显示错误日志信息) -d(显示级别) 3
13 dig www.test.com @192.168.136.170
观察日志信息
14 让rndc命令生效,该命令存在于/app/bind9/sbin中,重启或是souce一下让PATH变量生效
三.rndc命令
(1)rndc对应端口为953端口
一些基本命令使用
rndc reload——修改named配置文件后重启服务,顺便观察修改格式或内容是否正确
rndc status ——查看状态
rndc querylog——开启日志功能
再输入 rndc querylog——关闭日志功能
rndc trace ——递增debug
rndc notrace——调低debug功/etc/bind9/rnddc能
reload flush——清除DNS服务器的缓存
(2)在编译安装的bind中,rndc status等命令无法使用
所以要使用rndc-confgen -r /dev/urandom
生成rndc.conf文件并将重定向到 /etc/bind9/rndc.conf
将生成的共享秘钥导入到 /etc/bind9/named.conf
四.压力测试
1 进入/root/bind-9.11.2/contrib/queryperf/
通过./configure 生成压力压力测试小软件
2 make
生成queryperf文件
3 创建一个测试文件,通过queryperf -d该文件来查询测试性能 vim /app/test.txt
./queryperf -d /app/test.txt来实现测试查询