dns轮询工作的原理原理,tel轮询我有几个终端设备,有各自的IP

3022人阅读
1.关于本文档
2.Bind+Mysql+Mysql-bind环境搭建
3.Bind配置
4.Mysql数据库设置
5.常见问题解决
1. 关于本文档
& & & &本文档用于DNS和BIND结合配置域名解析和其他更深化的服务,如DNS轮询和squid反向加速结合做简单的流量动态均衡,泛解析和apache mod_rewrite结合做虚拟多级域名,应用IP视图做流量处理。偶尔涉及到源码修正是为更好提供服务和进行调试所用。如果有兴趣可以发邮件至文档头处的邮箱进行讨论。另外,,可以方便使用者使用。
文档分五个部分:
& & & &1.关于本文档,介绍文档内容和结构。
& & & &2.Bind+Mysql+Mysql-bind环境搭建,略为介绍Bind+Mysql+Mysql-bind的获取和安装。
& & & &3.Bind配置,初略介绍Bind用于DNS轮询,泛解析和IP视图的配置。
& & & &4.Mysql数据库设置,正确设置Mysql数据库取代Bind的文档格式的分布式IP库。
& & & &5.常见问题解决,在配置过程的一些常见问题解决和分析,这是文章的重点。
& & & &如果你是带着问题前来,前往第五和第六部分即可。如果需要了解Bind,还需要参看第二和第三部分。
2. Bind+Mysql+Mysql-bind环境搭建
& & & &1.安装Mysql
& & & & 安装mysql的文档很多,在这里不再赘述,无非是这么几个步骤:
& & & &wget mysql*.tar.gz
& & & &tar vxzf mysql*.tar.gz && cd mysql*
& & & &./configure --prefix=/usr/local/mysql --with-charset=gbk &configure.log 2&&1
& & & &make &make.log 2&&1 && make install &install.log 2&&1
& & & &然后运行mysql_install_db,注意/var/lib/mysql下的权限,然后便可以启动mysql了。需要注意的是,一定要确保mysql ?uroot能直接访问进mysql (这是最简便的方法)。
& & & &2.安装bind,使用bind的mysql sdb
&我使用的bind版本是9.3.4,在bind的官网ftp上可以下载到最新稳定的bind版本. Bind的mysql sdb在sf.net上可以下载到0.1版本,似乎mysql-bind(mysql sdb)已经停止更新了. 下载到bind-9.3.4.tar.gz和mysql-bind-0.1.tgz后便可以安装了.
&tar vxzf bind-9.3.4.tar.gz && tar vxzf mysql-bind-0.1.tgz
&cp mysql-bind/mysqldb.c bind-9.3.4/bin/named -f
&cp mysql-bind/mysqldb.h bind-9.3.4/bin/named/include -f
&同时,修改bind-9.3.4.tar.gz/bin/named/Makefile.in文件:
&DBDRIVER_OBJS =
&DBDRIVER_SRCS =
&DBDRIVER_INCLUDES =
&DBDRIVER_LIBS =
&DBDRIVER_OBJS=mysqldb.@O@
&DBDRIVER_SRCS = mysqldb.c
&DBDRIVER_INCLUDES = -I'/usr/local/mysql/include/mysql'
&DBDRIVER_LIBS = -L'/usr/local/mysql/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
&同时在bind-9.3.4/bin/named/main.c中,找到
&/* xxdb_init(); */
&在后面添加
&mysqldb_init();
&/* xxdb_clear(); */
&在后面添加
&mysqldb_clear();
&./configure ?prefix=/usr/local/named ?enable-threads &configure.log 2&&1
&make &make.log 2&&1 && make install &install.log 2&&1
&如此,如果没有出错,正常的bind mysql sdb就已经添加了.初步配置好bind和建立mysql的dns数据库后便可以做测试了.
& & & &3.启动并测试
&关于bind的配置和mysql的dns数据库建立在第三和第四部分介绍.你可以先查看后面两部分再回来看bind启动和测试.
&启动bind有几种模式,在调试的时候,建议采用 bind -u named -g 的方式运行,可以在终端看见详细的调试信息.也可以在mysqldb.c中加入query语句的输出和query.c中加入bind解析流程的输入,来查看bind的运行状态.
&而以daemon方式运行则可以采用 bind -u named -c /etc/named.conf .建议采用named用户setuid方式运行.
&如果named能够正常运作,这里的正常的运作是说named启动后没有任何fail或任何error,例如加载所有zone/db时都成功,而没有fail.那么便可以在随意一台能互相访问的机器上做测试了.设计client上的/etc/resolv.conf,在第一行添加nameserver named_server_ip. 然后便可以用安装bind时已经额外安装的工具dig/nslookup进行测试了.关于dig和nslookup命令,可以用man 1 dig和man 1 nslookup查看. 最常用的dig进行正向解析:
&dig -x **.**.**.**(IP)
&如果没有得到结果,却有授权信息的话,那么基本配置是正确的,问题可能在A记录或者视图是否正确上.如果连授权信息都不显示的话,那么基本配置出现了问题,如zone未能加载,db链接问题等等.可以查看调试信息分析原因.
3. Bind配置
& & & &,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain。它是目前世界上使用最为广泛的DNS服务器软件,也是大多数系统管理员最喜欢的DNS软件,支持各种unix平台和windows平台。
&bind的配置比较繁琐,在其官方网站上有为系统管理员编写的80多页的手册,对于9.0以上的版本早有汉化版本,xplore提供下载地址在此。或者,可以直接参考,基本上能满足所需的要求(
&这里简单介绍bind配置IP视图,DNS轮询和泛解析.(主要是两个方面: named.conf和zone文件)
&bind的IP视图是在bind9中才引用的强大功能,能实现根据ip来源定义不同域名系统的功能,解决多入口则多出口的问题. 在named.conf中,IP视图的关键字是view,其定义规则和zone基本一致,只是zone没有view的一个功能,那就是对于单独的view,可以拥有zone实现域名体系.
view &outside& {
& & & &match-clients { };
& & & &zone &.& IN {
& & & & & & & &
& & & & & & & &file &var/root.zone&;
& & & &zone &.cn& IN {
& & & & & & & &
& & & & & & & &database &mysqldb dns test_mydomain_com_cn_outside localhost root rootroot&;
# & & & & & & & file &var/.cn.outside&;
& & & &zone &10.in-addr.arpa& IN {
& & & & & & & &
& & & & & & & &database &mysqldb dns 10_outside localhost root rootroot&;
# & & & & & & & file &var/10.outside&;
& & & &zone &localhost& IN {
& & & & & & & &
& & & & & & & &file &var/localhost.zone&;
& & & & & & & &allow-update { };
& & & &zone &0.0.127.in-addr.arpa& IN {
& & & & & & & &
& & & & & & & &file &var/127.0.0.zone&;
& & & & & & & &allow-update { };
&当然,上面的view_name: “outside”是在前面acl中定义的.但是需要注意的是,多个视图的并集最好是一个ip全集,不要丢掉某些ip.而且,在view视图配置中,如果定义master/slaver模式做分布式的话,slaver接受的notify和数据只会匹配slaver自己ip所在视图的数据,也就是说,如果单个ip的slaver需要和master同步数据的话,永远只能同步一个view,而其他的则不能.解决办法可以考虑在slaver的机器上进行ip alias,设置多个别名分别位于master的不同view中,在master的allow-transfer和allow-notify中添加这些ip别名,便可以完成所有view的数据同步了.更详细的信息参看这篇文档(
&对于DNS轮询,主要是在zone里进行设置.zone的SOA,NS记录基本不变.例如需要将关联到192.168.0.[1-4],则可以这么写:
& & &IN &A &192.168.0.1
& & &IN &A &192.168.0.2
& & &IN &A &192.168.0.3
& & &IN &A &192.168.0.4
&在逆向zone里可以这么写:
&1.0.168.192.in-addr.arpa. IN PTR
&2.0.168.192.in-addr.arpa. IN PTR
&3.0.168.192.in-addr.arpa. IN PTR
&4.0.168.192.in-addr.arpa. IN PTR
&利用bind做DNS轮询(round rabin)可以将多个session分散到不同的ip上去减缓单台机器的链接压力.但是,它并不能真正做到负载均衡,因为一旦某个ip失效,那么在轮询到该ip的session将全部丢失,bind本身并不能多做些什么.但是,如果使用了bind的mysql sdb的话,这个问题能够得到一定缓解.因为,基于某个协程(一段时间间隔内监听bind做round-rabin的ip)可以动态剔除失效ip,并动态加入复效ip.然而,并不能保证,bind不会将某个session分配给负载最重的ip.
&泛解析在多级虚拟域名上有很好的利用.它可以将符合某个规则的域名解析到一个ip上,利用该ip上的其他应用结合(如apache的mod_rewrite),可以实现额外的功能(如多级虚拟域名). 在zone配置中,对于一条这样的记录:
&* &IN &A &192.168.0.111
&对于任意匹配到该zone的域名,首先都会查询和该域名完全匹配的记录,如果存在完全匹配的,则将这个域名关联到与之对应的ip上. 如果没有完全匹配的,则将之关联到192.168.0.111上. 而不论* IN A 192.168.0.111写在zone A记录的何处,都遵循该流程(bind9). 这点在named.conf中的view和zone的访问原则是不同的,view和zone只会在第一个匹配的里面进行解析.
&对于一般的bind配置,建议参看文章前面提到的鸟哥的linux私房菜关于dns部分.包括如何设置根zone和localhost zone等等,还有rndc控制bind等等.
&然而,在mysql的sdb中最初并不能支持泛解析.需要进行源码修改才能支持.这个问题在第五部分给出.
4. Mysql数据库配置
&需要注意的是,如果需要利用,那么需要在named.conf中的zone资源中用database关键字,而不是file关键字或者其他.规则如下:
&database &mysqldb dns 10_outside localhost root rootroot&;
&mysqldb是sdb驱动注册的名称, dns是mysql中bind使用的数据库名, 10_outside是表明,对应于一个zone(里面的内容也就是zone file中的内容), localhost是mysql的host, root是登陆mysql的用户, rootroot是登陆mysql用户的密码(需要明文显示,可以自己修改即可).
&看到上面的说明,那么,很显然,需要在mysql中做相应的配置.如创建一个dns的数据库;将root密码改成rootroot(就本例子而言,其实你可以不用root,同时grant权限便可以);创建一个表名10_往表10_outside中按bind的要求引入数据记录,SOA/NS/A/PTR/CNAME/MX/TXT/HINFO等等.但是,需要注意的是,在sdb中,没有设计$ORIGIN和$TTL这两个全局变量,因此,$TTL一般都在记录里写明,$ORIGIN则全部默认为.(根), 也就是说所有记录的第一项都必须以根作为$ORIGIN.
而IN字段是sdb默认的方式,一般省略,目前,非基于inet的DNS已经很少了.
&进行如下操作:
&mysqladmin -uroot password rootroot
&mysqladmin -uroot -prootroot create dns
&cat tmpfile &-- MySQL dump 9.11
-- Host: localhost & &Database: dns
-- ------------------------------------------------------
-- Server version & & & 4.0.27
-- Table structure for table `10_outside`
DROP TABLE IF EXISTS 10_
CREATE TABLE 10_outside (
&name varchar(255) default NULL,
&ttl int(11) default NULL,
&rdtype varchar(255) default NULL,
&rdata varchar(255) default NULL
) TYPE=MyISAM;
-- Dumping data for table `10_outside`
LOCK TABLES 10_outside WRITE;
INSERT INTO 10_outside VALUES ('25.71.210.10.in-addr.arpa',3600,'PTR','cas1..cn.');
INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'SOA','.cn. zhengyu..cn. 0 600 ');
INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS','cas1..cn.');
INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS','cas2..cn.');
INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS','cas3..cn.');
INSERT INTO 10_outside VALUES ('27.71.210.10.in-addr.arpa',3600,'PTR','cas2..cn.');
UNLOCK TABLES;
-- Table structure for table `test_mydomain_com_cn_outside`
DROP TABLE IF EXISTS test_mydomain_com_cn_
CREATE TABLE test_mydomain_com_cn_outside (
&name varchar(255) default NULL,
&ttl int(11) default NULL,
&rdtype varchar(255) default NULL,
&rdata varchar(255) default NULL
) TYPE=MyISAM;
-- Dumping data for table `test_mydomain_com_cn_outside`
LOCK TABLES test_mydomain_com_cn_outside WRITE;
INSERT INTO test_mydomain_com_cn_outside VALUES ('.cn',3600,'SOA','.cn. zhengyu..cn. 0 600 ');
INSERT INTO test_mydomain_com_cn_outside VALUES ('.cn',3600,'NS','cas1..cn.');
INSERT INTO test_mydomain_com_cn_outside VALUES ('.cn',3600,'NS','cas2..cn.');
INSERT INTO test_mydomain_com_cn_outside VALUES ('.cn',3600,'NS','cas3..cn.');
INSERT INTO test_mydomain_com_cn_outside VALUES ('cas1..cn',3600,'A','10.210.71.25');
INSERT INTO test_mydomain_com_cn_outside VALUES ('cas2..cn',3600,'A','10.210.71.27');
INSERT INTO test_mydomain_com_cn_outside VALUES ('cas3..cn',3600,'A','10.210.132.80');
INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh..cn',3600,'A','10.218.26.191');
INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh..cn',3600,'A','10.218.26.192');
INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh..cn',3600,'A','10.218.26.193');
INSERT INTO test_mydomain_com_cn_outside VALUES ('yhzh..cn',3600,'A','10.218.26.194');
INSERT INTO test_mydomain_com_cn_outside VALUES ('*',3600,'A','10.210.71.1');
INSERT INTO test_mydomain_com_cn_outside VALUES ('conf..cn',3600,'CNAME','cas2..cn.');
UNLOCK TABLES;
&mysql -uroot -prootroot dns &rm -rf tmpfile
&其中写进tmpfile中的各个ip和域名对可以自己定义便可.利用mysql sdb有个很显著的好处,那便是做了mysql数据库里的修改,不需要对bind服务进行重新启动.当然,排除新建表的操作,如果需要新建一张表的话,也就意味着要加入一个zone,是需要在named.conf里面进行添加的.(可以考虑采用cron.d/ld.conf.d/udev.rules.d的方式include进去,呵呵.)
&如果配置成功了mysql数据库后,尝试用dig/nslookup/host测试,是否能够获得解析.
5. 常见问题解决
& & & &1.让mysql sdb支持泛解析,DNS轮询和IP视图.
& & & & &对于IP视图,由于sdb是用数据库表取代zone file,那么意味着sdb无论如何是支持IP视图的,只需要在named.conf中配置好view便可.对于DNS轮询,同样在数据库中建立一个域名对应于多个ip的记录便可.而对应于泛解析,由于数据库本身并不能智能识别*的含义,因此需要在sdb程序段进行修改才能实现泛解析.因此在分析bind的sdb原理和处理流程后,很容易在mysqldb.c中加入泛解析的实现.可以取代最开始的mysql-bind-0.1.tgz,
解压后的mysqldb.c便已经实现泛解析功能. 或者使用patch打上补丁,. 然后在需要进行泛解析的数据库表(对应于相应的zone)中加入一条A记录:
&INSERT INTO your_table_name VALUES ('*',3600,'A','your_ip');
&这样便可以进行泛解析了.测试一下.
& & & &提供了,和增加了泛解析的.
& & & &2.打开bind处理流程的调试信息.
& &打开bind处理流程的调试信息对于以 named -u named -g 方式进行调试时有很大的作用.在bind-9.3.4/bin/named/query.c中,找到
#if 0(惟一一处)
&将下面的内容
#define CTRACE(m) & & & isc_log_write(ns_g_lctx, /
& & & & & & & & & & & & & & & & & & &NS_LOGCATEGORY_CLIENT, /
& & & & & & & & & & & & & & & & & & &NS_LOGMODULE_QUERY, /
& & & & & & & & & & & & & & & & & & &ISC_LOG_DEBUG(3), /
& & & & & & & & & & & & & & & & & & &&client %p: %s&, client, (m))
#define QTRACE(m) & & & isc_log_write(ns_g_lctx, /
& & & & & & & & & & & & & & & & & & &NS_LOGCATEGORY_GENERAL, /
& & & & & & & & & & & & & & & & & & &NS_LOGMODULE_QUERY, /
& & & & & & & & & & & & & & & & & & &ISC_LOG_DEBUG(3), /
& & & & & & & & & & & & & & & & & & &&query %p: %s&, query, (m))
#define CTRACE(m) ((void)m)
#define QTRACE(m) ((void)m)
#define CTRACE(m) & & & isc_log_write(ns_g_lctx, /
& & & & & & & & & & & & & & & & & & &NS_LOGCATEGORY_CLIENT, /
& & & & & & & & & & & & & & & & & & &NS_LOGMODULE_QUERY, /
& & & & & & & & & & & & & & & & & & &ISC_LOG_DEBUG(3), /
& & & & & & & & & & & & & & & & & & &&client %p: %s&, client, (m))
#define QTRACE(m) & & & isc_log_write(ns_g_lctx, /
& & & & & & & & & & & & & & & & & & &NS_LOGCATEGORY_GENERAL, /
& & & & & & & & & & & & & & & & & & &NS_LOGMODULE_QUERY, /
& & & & & & & & & & & & & & & & & & &ISC_LOG_DEBUG(3), /
& & & & & & & & & & & & & & & & & & &&query %p: %s&, query, (m))
#define CTRACE(m) & & & fprintf(stderr,&client %p: %s/n&,client,(m))
#define QTRACE(m) & & & fprintf(stderr,&query %p: %s/n&,query,(m));
#define CTRACE(m) ((void)m)
#define QTRACE(m) ((void)m)
&所有源码操作过之后都需要重新编译,重新运行才能生效.这样在-g运行named时会将一些解析信息显示出来.
3.loading zone: creating database: failure错误处理.
& &如果出现这个问题,那说明bind sdb驱动和mysql链接出现了问题,诸如密码错误,dns没有建立,引用/tmp/mysql.sock错误等等.这个问题出现之后,你需要在mysqldb.c中加入一些调试信息:
&在mysqldb.c的db_connect函数中修改:
if (mysql_real_connect ( &dbi-&conn, dbi-&host, dbi-&user, dbi-&passwd, dbi-&database, 0, NULL, 0 ))
&fprintf(stderr,&/nconnect successfully .............. /n&);
&return (ISC_R_SUCCESS);
&fprintf(stderr,&/nconnect fail:%s , host %s,user %s,passwd %s,db %s,port %d .................../n&,mysql_error(&dbi-&conn),dbi-&host,dbi-&user,dbi-&passwd,dbi-&database);
&return (ISC_R_FAILURE);
&这样方便得到出错信息.然后根据出错信息调试mysql,使bind sdb能成功链接mysql.
4.Dig结果分析处理.
& &如果在执行dig
出现以下几种情况:
;; QUESTION SECTION:
;. & & & & & & &IN & & &A
;; AUTHORITY SECTION:
*****************************************************************
;; Query time: 8 msec
&这说明在bind的基本配置都正确,但是数据库表项中没有添加该A记录或者添加的记录有问题,特别是那些对file方式配置bind用熟的管理员,他们已经能很好的使用$ORIGIN进行处理,但是需要明白那就是mysql是不识别$ORIGIN的,一定需要写全称. 同时第一项的最后一个点是不必要的. 如果上面的分析还不能解决问题,请在mysqldb.c中凡事出现mysql_query() API之前将query的str打印出来.便可以知道问题是否出在mysql查询中.
&而其他错误,如没有出现
;; AUTHORITY SECTION:
&这一选项,说明bind的基本配置出现问题,诸如在mysql的表中是否丢失SOA/NS记录,或者SOA/NS记录出现错误.特别是SOA/NS的第一项后面多了一个小黑点.
&具体原理分析请参看第四部分的第三段.自动脚本请参见下一篇文章:
本文参考了如下网络资源,谨向这些文章的作者致敬:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9845次
排名:千里之外
(1)(3)(3)(1)(1)用户名:菜花q
文章数:22
评论数:11
访问量:1750
注册日期:
阅读量:1297
阅读量:3317
阅读量:453922
阅读量:1138567
51CTO推荐博文
泛解析&&//NUM&是数字#&vim&named.conf&zone&""&{type&file&".zone";};&#&vim&.zone&&$GENERATE&&&&1-200&&&&stu$&&&&A&&&&192.168.1.$&反向$GENERATE&&&&10-50&&&&&$&&&&&&PTR&&stu$..&/etc/resolv.conf//客户端指定哪个DNS服务器来为我解析域名&============转发&caching============1、主服务器照常配置,能够解析正向、反向的区域配置文件2、另外一台服务器装bind*&在named.conf中添加两行forwarders&{&主服务器IP地址;&};forward&3、重启服务器&&&保证开机自动开启----------------------------&DNS轮询:[root@t1&etc]#&vim&named.confoptions&{&&&&directory&"/var/named";};&zone&"aa.com"&{&&&&type&&&&&file&"aa.com.zone";};&[root@t1&named]#&vim&.zone&www&&&&IN&&&&&A&&&&192.168.20.251www&&&&IN&&&&&A&&&&192.168.20.252www&&&&IN&&&&&A&&&&192.168.20.253&实验结果:一个FQDN对映多个IP,减轻只对一台服务器的访问压力。练习---------------------------IP地址:192.168.1.X1、搭建一个DHCP服务器&*&分配192.168.1.70&~~~~192.168.1.170*&所有DHCP客户端在获得IP地址的同时还能获取网关和DNS的信息*&网关:&192.168.1.X*DNS:&192.168.1.X&2、搭建一个DNS服务器*&能够解析下的几个域名*&www&---&&本机*&client&---&DHCP&client------------------------------------------------子域授权:在现实生活中我们世界互联网中的每个主机并不是在同一个域内,而是通过不同的依据将将其划分到不同的“小域”中,犹如一个倒立的树状结构,由一点出发,一层层的向下分成了多个分支,而这些分支就是其上级域的子域,其上级域就是相对的父域,子域是从父域中划出来的一个域,子域中的主DNS服务器负责这个子域中的地址解析,从而减轻了父域中DNS服务器的压力,这不仅提高了解析服务的效率,同样也提高了解析服务的稳定性。服务器&&&&8.8.8.8Vm2&&&&8.8.8.8Vm1&&&&192.168.10.1打开路由转发&/etc/sysctl.confnet.ipv4.ip_forward&=&1#&sysctl&-p#&pwd/var/named/chroot/etc#&vim&named.conf------------------------------------------------options&{&&&&directory"/var/named";};&zone&""&IN&{&&&&&&&&type&&&&&&&&&file&".zone";};---------------------------------------#pwd/var/named/chroot/var/named#&cp&Cp&.zone#&vim&.zone-------------------------------$TTL&&&&86400@&&&&IN&SOA&&&&.&&&&.&(42;&serial3H;&refresh&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&15M;&retry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1W;&expiry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1D&);&minimum&&&&&&&&&&&&&&&&&&&&&&&&&&&IN&NS&&&&&&&&..&&&&&&&&IN&A&&&&&&&&&8.8.8.8.&&&&&&IN&NS&&&&&&&&dns..dns..&&IN&A&&&&&&&&&192.168.10.10---------------------------------------------------------------------#service&named&start&---------------------------------------------------------------------子域&&&&192.168.10.10vm1#&yum&install&bind&bind-chroot&caching-nameserver&-y#pwd/var/named/chroot/etc/#vim&named.conf-----------------------------------------------options&{&&&&directory&&&&"/var/named";};&zone&""&IN&{&&&&&&&&type&&&&&&&&&file&".zone";};-------------------------------------------#&cd&/var/named/chroot/var/named/#&cp&-p&localhost.zone&.zone#&vim&.zone------------------------------------------------------$TTL&&&&&&&&86400@&&&&&&&&&&&&&&&&IN&SOA&&&&.&&&&.&(42;&serial3H;&refresh15M;&retry1W;&expiry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1D&);&minimum&&&&&&&&&&&&&&&&&IN&NS&&&&&&&&dns..dns&&&&&&&&&&&&&IN&A&&&&&&&&&192.168.10.10www&&&&&&&&&&&&&IN&A&&&&&&&&&192.168.10.20-----------------------------------------------------------#service&named&start测试再开一台虚拟机&修改&/etc/resolv.conf添加nameserver8.8.8.8nslookupwww.DNS视图用途:把不同来源的用户请求转向合适的地方,以提高整体访问速度。比如让网通线路的用户访问网通机房的服务器,电信用户访问电信机房的服务器。Dns服务器端有三块网卡,打开路由转发&/etc/sysctl.confnet.ipv4.ip_forward&=&1#&sysctl&-p&Vm.1Vm.1Vm28.8.8.8#&yum&install&bind&bind-chroot&caching-nameserver#&cd&/var/named/chroot/etc#&cp&-p&named.caching-nameserver.confnamed.conf#&vim&named.conf//注意:acl的名字和view的名字不要用数字!----------------------------------------------------------------------------options&{&&&&directory"/var/named";&};acl&"unicom"&{&172.16.10.0/24;&};acl&"telcom"&{&192.168.10.0/24;&};view&"unicom"&{&&&&match-clients&{&&};&&&&recursion&zone&""&IN&{&&&&&&&&type&&&&&&&&&file&"";};};&&view&"telcom"&{&&&&match-clients&{&&};&&&&recursion&zone&""&IN&{&&&&&&&&type&&&&&&&&&file&"";};};-------------------------------------------------------------------------#vim /var/named/chroot/var/named/# chown :named # chmod 640 --------------------------------------------------------$TTL&&&&&&&&86400@&&&&&&&&&&&&IN&SOA&&&&&&&&.&&&&.&(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&42;&serial&(d.&adams)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3H;&refresh&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&15M;&retry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1W;&expiry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1D&);&minimum&&&&&&&&&&&&&&&IN&NS&&&&&&&&.dns&&&&&&&&&&&&IN&A&&&&&&&&8.8.8.8www&&&&&&&&&&&&IN&A&&&&&&&&172.16.10.2#&cd&/var/named/chroot/var/named#&cp&-p&&#&vim&&--------------------------------------------------------$TTL&&&&&&&&&&&&86400@&&&&&&&&&&&&&&&&IN&SOA&&&&&&&&.&&&&&&&&.&(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&42;&serial&(d.&adams)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3H;&refresh&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&15M;&retry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1W;&expiry&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1D&);&minimum&&&&&&&&&&&&&&&&&IN&NS&&&&&&&&.dns&&&&&&&&&&&&&IN&A&&&&&&&&&8.8.8.8www&&&&&&&&&&&&&IN&A&&&&&&&&&192.168.10.2----------------------------------------------------------------------------&测试:准备两台虚拟机第一台网卡&vm1&ip地址&192.168.10.10&网关192.168.10.1&第二台网卡vm8&ip地址&172.16.10.10&网关172.16.10.1在两台机器上&nslookup看一下解析度IP地址是哪个网段的。&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)

我要回帖

更多关于 dns轮询原理 的文章

 

随机推荐