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阅读模式/单元格行列指示/聚光灯开发技术要 ...
随机推荐
- 写一个 nodejs npm应用 - webhere
前言.没图不说话,先上图. What's webhere? 有没有遇到这样的场景:写程序的时候,需要访问一个文件,这个文件 需要是放到一台web服务器上,但是你不是开发的web应用. 所以呢,你不得不 ...
- [BZOJ1016][JSOI2008]最小生成树计数(结论题)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1016 分析: 首先有个性质:如果边集E.E'都可以表示一个图G的最小生成树(当然E和E ...
- 数据库MongoDB查询语句--持续更新
模糊查询: 包含字符串str : find({'name':/str/i}); {'name':/str/} 以str开头: {'name':/^str/} $in查询: 字段:{ field: ...
- 在Ubuntu 14.04中安装最新版Eclipse
1.下载eclipse从官网http://www.eclipse.org/downloads/下载Eclipse IDE for Java EE Developers的Linux版本eclipse-S ...
- URI 中特殊字符处理
一.问题阐述 今天写 url 请求时,不管是get 请求还是 post 请求,如果参数中带有 + % # 等特殊符号,就无法正常获得参数 具体现象就是 用URL传参数的时候,用&符号连接,如果 ...
- js-jquery-将table的td转化成可编辑的文本
1.使用插件mindmup-editabletable.js $('#table').editableTableWidget({editor: $('<textarea>')}); 2.j ...
- css li 不换行(布局,内容)
参考这里 ------ 不换行的策略: 不换行原理: ul 和 li 默认都是 display:block; 的标签, 可以通过2种方式实现 li 的 不换行显示: * 将 li 设为 display ...
- Js-动态控制table的tr、td增加及删除的具体实现
<table id='wifi_clients_table' style="color:#0099CC;font-size:12px;" class="table ...
- SPDY 是什么?如何部署 SPDY?
摘要:当老迈的 HTTP 协议逐渐不能满足人们需求的时候,Google 的 SPDY 协议出现在面前,那么这个长期以来一直被认为是 HTTP 2.0 唯一可行选择的 SPDY 是什么呢?当下我们如何能 ...
- ASP.NET MVC html help
public static class HtmlHelper { /// <summary> /// 返回没有边框的只读的TextBox标签 /// </summary> // ...