DNS(二)之bind的视图功能
bind视图工作原理
在我国目前的网络环境下面,多个运营商并存,运营商之间的存在一定的网络互通问题,如果把来自不同的运营商或者地域的所有用户通过简单的A记录分配到一个机房,那么就存在部分网民访问延时大或者丢包的问题。那么bind里面就提供了视图(Dns view ) 技术来解决这个问题,DNS视图 就是对同一个资源记录根据的DNS请求来源IP地址不同,分配到解析器的解析结果也不同,也就是说它可以提供这样的功能。
- 对于山东省的中国电信的DNS请求,可以把用户引导到部署在山东省中国电信机房的服务器上。
- 对于无法匹配到某个具体运营商或者国外的用户,可以把用户引导到指定的一组默认服务器上。
所以以上的功能,都是为了实现用户的就近访问,也就是让用户访问到对他来说网络质量较好的服务器上。
关于视图的配置
我们在这里配置的是模拟环境,环境如下:

都是采用Centos6.6系统,yum安装的bind服务。
dns服务器的named配置如下:
[root@localhost etc]# cat /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
channel query_log { #开启请求日志
file "/var/log/dns/query.log" versions 5 size 30m;
severity info;
print-time yes;
print-category yes;
};
category queries {
query_log;
};
};
view "view_localnet_45" {
match-clients { # 使用match-clients指令,指定匹配来自这些用户的ip
localnet45; # 写的是acl配置文件定义的aclname
};
zone "ljf.com" {
type master;
file "ljf.com.zone45"; #不同的匹配规则我这里写的是用不同的域名文件,方便管理
};
};
view "view_localnet_141" {
match-clients {
localnet141;
};
zone "ljf.com" {
type master;
file "ljf.com.zone141";
};
};
#include "/etc/named.rfc1912.zones"; # 注释掉这条,因为开启view以后,所有的zone必须包含在view里面,不然启动报错。
include "/etc/named.root.key";
include "/etc/named/acl/localnet141.conf"; # 引入acl配置文件
include "/etc/named/acl/LocalNet45.conf"; # 引入acl配置文件
下面我们看看ACL的配置文件:
[root@localhost named]# cat /etc/named/acl/localnet141.conf
acl "localnet141" {
192.168.141.0/24; #针对192.168.141的网段
};
You have new mail in /var/spool/mail/root
[root@localhost named]# cat /etc/named/acl/LocalNet45.conf
acl "localnet45" { # 定义acl的名字,方便named.conf里面的match-clients 去调用
192.168.45.0/24; # 针对192.168.45的网段
};
再看下zone的file内容 :
[root@localhost named]# cat /var/named/ljf.com.zone141
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns
www IN A 192.168.141.3
ns IN A 102.168.141.3
[root@localhost named]# cat /var/named/ljf.com.zone45
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns
www IN A 192.168.45.128
test IN A 192.168.45.2
ns IN A 192.168.45.129
那么就开始去验证我们刚才的配置的DNS功能
在192.168.141.4上解析域名
[root@localhost ~]# dig @192.168.141.3 www.ljf.com +short
192.168.141.3
在192.168.45.128上解析域名
root@leo-virtual-machine:~# dig @192.168.45.129 www.ljf.com +short
192.168.45.128
由解析结果看得出来,在不同网段解析同一个域名,解析结果确实不同,展示了bind的view功能的强大之处
总结起来就是用acl指令去圈定一批来源IP,使用view的match-clients匹配该acl,为其分配zone文件用于解析用于解析。
视图优化的技巧
相信大家可以看到,view里面的核心内容就是匹配来源IP,那么问题来了,这些ip哪里来的?毫无疑问,肯定是自己通过dns请求日志去收集的
日志配置我在这里在贴下:
[root@localhost named]# cat /etc/named.conf
'''''
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
channel query_log { #开启请求日志
file "/var/log/dns/query.log" versions 5 size 30m;
severity info;
print-time yes;
print-category yes;
};
category queries {
query_log;
};
};
'''''
日志格式如下
[root@localhost named]# cat /var/log/dns/query.log
06-Nov-2016 11:56:43.045 queries: client 192.168.45.128#40987: view view_localnet_45: query: www.ljf.com IN A +E (192.168.45.129)
06-Nov-2016 11:56:43.518 queries: client 192.168.45.128#60098: view view_localnet_45: query: www.ljf.com IN A +E (192.168.45.129)
'''''''''
DNS(二)之bind的视图功能的更多相关文章
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- hitTest:withEvent:方法(此方法可实现点击穿透、点击下层视图功能)
此方法可实现点击穿透.点击下层视图功能 一. hitTest:withEvent:调用过程 iOS系统检测到手指触摸(Touch)操作时会将其放入当前活动Application的事件队列,UIAppl ...
- [DNS]ACL、also-notify、视图服务器及安全设置
1. ACL :访问控制列表放在named.conf的头部,如果acl的内容太多,可以另创建一个文件,将acl放在该文件中,再在主配置文件named.conf用include 将文件加载进来(记得放在 ...
- 使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一) - 视图&功能篇
Eclipse Memory Analyzer Tool(MAT)相关文章目录: 使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一) - 视图&功能篇 使 ...
- centos6.5环境DNS-本地DNS主从服务器bind的搭建
centos6.5环境DNS-本地DNS主从服务器bind的搭建 在上一篇博客中我已经搭建好了一个本地DNS服务器,能够实现正向反向解析,那么我们只需要加入一台从DNS服务器即可完成,我们来开始配置主 ...
- SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework
1.调用前组装参数 2.调用发送信息服务脚本 .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...
- BrnShop开源网上商城第六讲:扩展视图功能
在正式讲解扩展视图功能以前,我们有必要把视图的工作原理简单说明下.任何一个视图都会被翻译成一个c#类,并保存到指定的位置,然后被编译.这也就是为什么能在视图中包含c#代码片段的原因.下面我们通过一个项 ...
- 测试functional的bind以及相关功能
注:在VS2010 UPDATE1下测试通过 /*测试functional的bind以及相关功能*/ #include <iostream> #include <functional ...
- Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld
Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述———— 隐鹤 / HelloWorld 1. 引言 自本人第一篇博文“Excel阅读模式/单元格行列指示/聚光灯开发技术要 ...
随机推荐
- IIS安装与MVC程序部署
最近在做访客系统,虽然说不是什么多大的项目,但麻雀虽小五脏俱全,使用EF Code First+Mysql+Frozenui响应式布局,感觉通过这个项目学到好多东西,Mysql的使用.EF映射Mysq ...
- PHP中JSON的跨域调用
主调文件index.html <script type="text/javascript"> function getProfile(str) { var arr = ...
- JavaScript函数劫持
一.为什么我会写这篇文章 这篇文章其实是在一个偶然的机会下发现了居然有JavaScript劫持这种东西,虽然这种东西在平时用的比较少,而且一般实用价值不高,但是在一些特殊的情况下还是要使用到的,所以在 ...
- [BZOJ2257][Jsoi2009]瓶子和燃料(数学)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2257 分析: 1.先考虑确定的瓶子下的最小体积是多少 ①假设只有两个瓶子v1,v2,易 ...
- HTML问题集锦
[1]HTML5怎么设置滚动字幕 <marquee direction=up behavior=scroll loop=3 scrollamount=1 scrolldelay=10 align ...
- android之Activity回传数据
约定:当Activity发生跳转时将原来的Activity成为父Activity,将新出现的Activity成为子Activity. 情景设置 下面是个发短信的Activity 当我们点击图中的+按钮 ...
- 网页设计:Meta标签详解
很多人忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧! META标签是HTML语言HEAD区的一个辅 ...
- 桔子浏览器|1M安装包|hao123专属浏览器
桔子浏览器是百度为好123打造的首页导航浏览器,体积小.为老年机上网提供便利. 免费下载:http://yunpan.cn/cmKbYXamEVUiY 访问密码 d270
- chrome编辑DOM
来源于:https://developers.google.com/web/tools/chrome-devtools/inspect-styles/edit-dom The DOM tree vie ...
- fio 2种画图方法 fio_generate_plots 和 gfio
fio 安装fio apt-get install fio 可以把fio的输出数据自动画图的插件gnuplot apt-get install gnuplot 1.输出bw,lat和iops数据并画图 ...