DNS视图及压力测试(四)
Allow-transfer {}; #用于控制区域传送文件
Allow-query {}; #通常用于服务器是缓存名称服务器时,控制查询客户端
Allow-recursion {}; #用于定义递归白名单
Allow-update {}; #定义允许动态更新区域数据文件的主机白名单
ACL是BIND支持使用的访问控制列表,可以用在安全控制选项中也可以使用在View中,ACL定义语法如下:
acl ACL_NAME {
10.0.0.0/8
172.16.0.0/16
192.168.0.0/24
};
BIND中ACL访问控制列表只有定义后才能使用,通常ACL要定义在named.conf的最上方。另外BIND有四个内置的ACL,如:
any:任何主机 none:无一主机 local:本地主机 localnet:本机的所在的网络
Bind中的View是用来把同一个域通过多个View划分开,每一个View中可以使用不同的区域解析文件,然后通过match-clients指令匹配IP或者以及写好的ACL,就可以实现特定IP地址访问特定的区域解析文件,View语法如下:
View VIEW_NAME {
Match-clients { IP | ACL_NAME; };
Zone “ywnds.com” IN {
Type master;
File “ywnds.unicom”;
};
};
PS: 注意的是一旦开启View之后,DNS中所有的区域都需要应用到View中,另外也可以把安全控制选项应用到View中。
介于中国北网通南电信的大网络格局;联通和电信也是一分为二,然后在骨干区域相互连接。所以不同的ISP网络之间的访问会非常慢;这种现象直接影响到网站的访问量而智能DNS解析能够提高访问速度解决南北互联和不同ISP网络连接之间的问题提高用户体验。并且现在非常流行的CDN技术就是基于智能DNS加缓存技术来实现的。
智能DNS最好可以通过View和ACL实现的,首先把客户端IP地址规划到不同的ACL中。然后把ACL应用到不同的View中,这样就可以实现不同的IP地址解析的域名地址不同。那么就可以实现不同的IP地址访问不同的应用服务器。比如在一个双线机房中有联通和电信网络,在机房中放置两台服务器分别接入联通和电信同,同时这两台服务器的内容是相同的实时同步的,那么就可以通过部署智能DNS达到根据客户端地址走不同的线路访问服务器。下图大概给出了通过联通和电信客户端解析www.ywnds.com得到不同的服务器地址,继而联通和电信客户端分别走自己的网络进行访问www.ywnds.com服务器。提高用户体验,也让你明白了View的作用。
如下图模拟这么一个实验:
1)编辑主配置文件添加ACL和View
[root@bogon ~]# vim /etc/named.conf acl telecom { //配置电信的IP段
192.168.60.100/32
};
acl unicom { //配置联通的IP段
192.168.60.200/32
}; options {
directory "/var/named";
recursion no;
}; view dx { //引用电信的ACL解析时用本区域定义的区域文件
match-clients { telecom; };
zone“ywnds.com”IN {
type master;
file“ywnds.telecom”;
};
}; view wt { //引用联通的ACL解析时用本区域定义的区域文件
match-clients { unicom; };
zone“ywnds.com” IN {
type master;
file“ywnds.unicom”;
};
}; view default { //当有的IP无法判断是属于哪个ACL时默认就访问此区域的文件并允许递归
match-clients { any; };
recursion yes;
zone“ywnds.com” IN {
type master;
file“ywnds.default”;
}; zone “.” IN {
type master;
file “named.ca”;
};
};
2)编辑区域配置文件
$TTL 1D
@ IN SOA dns.ywnds.com. root.ywnds.com. (
336 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns
dns IN A 192.168.60.10
www IN A 172.16.60.100 $TTL 1D
@ IN SOA dns.ywnds.com. root.ywnds.com. (
336 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns
dns IN A 192.168.60.10
www IN A 172.16.60.200 [root@bogon ~]# chown root:named /var/named/ywnds.unicom
[root@bogon ~]# service named restart
192.168.60.100客户端解析www.ywnds.com的IP地址应该是172.16.60.100 192.168.60.200客户端解析www.ywnds.com的IP地址应该是172.16.60.200 192.168.60.30客户端解析www.ywnds.com的IP地址应该是172.16.60.200,并且192.168.60.30可以解析外网主机,前提是DNS服务器必须可以上网。
Rndc(remote name domain controller)远程管理BIND的工具,有很高的执行权限。在红帽系统上安装BIND的RPM包可直接使用rndc命令,其工作在TCP的953端口。
rndc --help #查看rndc帮助信息
rndc status #查看DNS的基本信息
rndc reload #重新载入区域配置文件
rndc reload ZONE #重新载入某个特定区域
rndc reconfig #重读配置文件并加载新增的区域(Bind一开机进程就会把所有的区域加载进内容中)
rndc querylog #关闭或开启查询日志,会记录查询信息到/var/log/messages文件中,开启此功能会有产生大量IO不建议开启,同时使用rndc status可以查看到状态信息
rndc stop #关闭DNS服务器
rndc flush #清空服务器端的缓存
rndc trace [0-3] #打开或关闭debug模式,0是关闭其余3个级别,级别越高信息越详细,使用rndc status可以查看debug级别。用来调试用的,会产生大量没有必要的IO操作,降低DNS服务器性能
Queryperf
Queryperf是DNS查询压力测试工具,在RedHat提供的RPM包bind没有带queryperf工具;去下载源码编译bind9.7以上的版本带有queryperf和DLZ(让bind存储时连接mysql使用的连接工具)
[root@localhost ~]# tar xf /root/bind-9.9.2.tar.gz
[root@localhost ~]# ls /root/bind-9.9.2/contrib/
dlz queryperf
[root@localhost ~]# cd /root/bind-9.9.2/contrib/queryperf
[root@localhost queryperf]# ./configure
[root@localhost queryperf]# make
[root@localhost queryperf]# cp queryperf /usr/bin/ //把编译好的命令复制到/bin下
[root@localhost queryperf]# cd
[root@localhost ~]# vim test //编辑要查询的文件查询条目越多越好可以重复
www.baidu.com A
baidu.com NS
[root@localhost ~]# queryperf -d test -s 192.168.60.10 //指定要查询的文件和要测试的DNS地址
statistics:
…………….
queries per second:
查看查询时间和统计信息;另外top看看CPU占用率100%;压力测试时打开查询日志和关闭查询日志分别看看两者速度的区别。另外dnstop软件可以监控当前DNS服务器正在有多少个查询和DNS当前状态;安装时依赖libpcap软件包。
DNS视图及压力测试(四)的更多相关文章
- 使用queryperf对DNS服务器作压力测试
一.querperf简介 当我们把DNS服务器配置好后,我们肯定会想测试一下DNS服务器的性能如何,上线后如果请求数够多服务器还能否响应?于是,我们可以使用软件模拟环境,对DNS服务器作评估性的测试. ...
- 总结1-JMeter压力测试
考虑到测试最需要逻辑能力,所以今天开始慢慢写些东西,希望能自我锻炼下. 第一个课题是压力测试,会把我了解到的和百度的东西按我的思路整合一下 一 什么是压力测试 二 压力测试所需要关注的参数 三 怎么做 ...
- DNS主从服务,子域授权,view视图,日志系统,压力测试
DNS主从服务,子域授权,view视图,日志系统,压力测试 DNS性能测试工具queryperfDNS查询过程: DNS主从建立: 环境: 主服务器:10.140.165.93 从服务器:10.140 ...
- DNS视图以及日志压力测试
1 访问控制列表 配置在/etc/named.conf文件的最顶端 acl innct { 192.168.1.0/24; 127.0.0.0/8; }; ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- DNS压力测试工具dnsperf简介
dnsperf是我最近写的一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试.dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件. dns ...
- Linux Linux程序练习十四(多进程压力测试)
/* * 题目: * 编程一个基本多进程测试框架,提示用户输入进程数.和每个进程数运行圈数.(fork) * 进行多进程压力测试.(execve) * 要求父进程能监控所有子进程的退出,避免僵尸进程. ...
- LoadRunner压力测试实例
1 LoadRunner 概要介绍... 2 .项目背景介绍... 5 .使用LoadRunner进行负载/ 实施测试... 16 6.1 Memory相关... 22 6.2 Processor相关 ...
- Web Capacity Analysis Tool 压力测试工具使用笔记
一.背景介绍 Web Capacity Analysis Tool是微软轻量级Web压力测试工具, 早先是IIS 6.0Resource Tool kit 工具包中的一个组件,现在独立出来有一个社区版 ...
随机推荐
- Twig---和vue或angular前端框架并存
<h1> {% verbatim %} {{message}} {% endverbatim %} </h1> 上面这种方式虽然能够解决,前台渲染的问题,但是还是会报错: 第二 ...
- 【vue】---项目接口管理---【巷子】
一.前言 在vue开发中,会涉及到很多接口的处理,当项目足够大时,就需要定义规范统一的接口 假设后端的文档分成了以下几个模块 1.发现模块 2.个人信息模块 3.商品模块 4.评论模块 ...... ...
- iOS UIScrollView 3种分页方法,间隔实现
基础知识参考 http://tech.glowing.com/cn/practice-in-uiscrollview/ https://stackoverflow.com/questions/9367 ...
- java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据
在开发的过程中,有时候我们需要设计一个数据接口.有时候呢,数据接口和Web服务器又不在一起,所以就有跨域访问的问题. 第一步:简单的设计一个数据接口. 数据接口,听起来高大上,其实呢就是一个简单的Se ...
- jQuery 常见开发使用技巧总结
1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...
- 完整的Jquery-easyUI显示分页数据例子
虽然说是入门的例子,但本人尽量做的详细点,以后会继续更新,部分功能 此外,为了后继easyui的学习,做了一个简单的框架:后台采用hibernate2.5+struts2开发:数据库用mysql.红色 ...
- POJ - 3026 Borg Maze bfs+最小生成树。
http://poj.org/problem?id=3026 题意:给你一个迷宫,里面有 ‘S’起点,‘A’标记,‘#’墙壁,‘ ’空地.求从S出发,经过所有A所需要的最短路.你有一个特殊能力,当走到 ...
- 系统之锹sysdig:Linux服务器监控和排障利器
当你需要追踪某个进程产生和接收的系统调用时,首先浮现在你脑海中的是什么?你可能会想到strace,那么你是对的.你会使用什么样的命令行工具来监控原始网络通信呢?如果你想到了tcpdump,你又作出了一 ...
- nginx处理问题笔记
1. 处理所有请求到单一入口 ( rewrite all requests to index.php with nginx ) 目前我们做开发一般都是单入口的,所以都会使用web服务器做重定向到入口 ...
- pyqt5 主界面打开新主界面、打开Dialog、打开提示框的实现模板
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ###### ...