DNS智能解析的搭建与配置

来源:千亿游戏平台 作者:千亿游戏网站

  9月份整整忙了一个月,都抽不出时间来写篇文章,这几天趁着10.1终于有时间来写些东西了,将9月份所做的一些东西来做下总结。

  今天先写个DNS智能解析的搭建与配置,后续几天还会有Mail服务器的搭建与配置、nagios搭建与配置、nagix搭建与配置、cacti监控交换机流量的搭建与配置(其中涉及交换机的配置)、puppet的搭建与配置等内容。每篇文章我都会提供pdf版本的下载。

  DNS智能解析简单的来说就是根据DNS服务器根据客户端请求IP的不同来给客户端返回不同的服务器地址,比如说电信用户访问的时候DNS服务器会返回给用户电信服务器,网通用户访问的时候DNS服务器会返回给用户网通服务器,这样就解决了南北用户访问过慢或电信用户访问网通服务器过慢的问题,国内著名的DNSpod实现的也是这样的一个功能,而BIND9自带的VIEW视图功能就可以完全实现这个功能。VIEW视图可以说是BIND9一个最强大的功能之一,他可以完全按照你要求来实现DNS服务器对不同IP、不同网段的智能解析工作。本文以centos5.6 i386系统及系统自带的BIND9和Webmin为例讲述BIND9的安装以及VIEW视图的配置功能。Webmin是一个图形化的服务器管理工具,由于DNS配置文件比较复杂,所以建议采用这款图形化配置工作来进行DNS配置。

  阅读本文你需要了解一些DNS基础,如知道为什么会有DNS,什么是A记录、CNAME记录、DNS的正向解析/逆向解析,本文不会涉及这些基础知识。

  本文采用VMware虚拟机来模拟DNS服务器,虚拟机须配置双网卡来模拟DNS对两个不同的网段做出不同的解析,其中一块网卡配置为Bridged模式,直接连接到局域网内网(192.168.0.0/24)上,另一块网卡配置为host-only,仅与本机进行通信(192.168.136.0/24)。

  测试方案:先禁用本地连接,使用nslookup工具查看,返回192.168.136.128则正确;再禁用虚拟网卡,使用nslookup工具查看,返回192.168.0.101则正确。

  bind的chroot功能是一个很有用的安全设置,使bind可以在一个chroot的模式下运行.也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已.这样做的目的是为了提高安全性.因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。

  webmin是一个可视化的linux服务器管理工具,可以帮助我们实现很多功能,从官方网站下载webmin的最新rpm包,目前最新的为1.560,下载后安装

  安装完成之后,默认的访问端口是10000,默认用户名位root,密码为系统root密码。访问时请确认系统防火墙已经开放10000端口。启动命令为

  打开Webmin界面,选择Servers下的BIND DNS Server,点击创建配置文件并启动dns服务器,这里只是内网测试,所以只选择第一个即可,如果你的DNS用与外网解析,请选择第二个,如图3。

  由于我们需要对两个不同的IP段来实现分别解析,因此我们这里需要创建两个不同的视图。需要注意的是,一旦创建了视图,所有的域名记录(创建的主区域)都必须属于某个视图,不允许没有视图的主区域存在。创建过程如图5/图6

  创建主区域就相当于创建每个域名在DNS上的配置文件,以为例,我们需要首先在DNS服务器上创建一个将linuxpad.cn解析到192.168.0.200的主记录(先不考虑192.168.136.0段,只介绍主区域的创建方法),这个记录我们称之为正向记录,即域名到IP;然后需要再创建一个将192.168.0.200解析到linuxpad.cn的主记录,这个记录我们称之为逆向记录,即IP到域名。这样一个域名的配置文件就成功了。

  对于属于同一段IP的服务器来说,每个域名必须创建一个正向主区域,但是所有域名可以共用一个逆向主区域。

  区域类型选择”正向”,域名/网络填写域名”,在视图创建选择此主区域所属的视图,这里选择”view_192.168.0.0”,E-mail地址须写上,否则会报错。

  点击创建如果没有错误即创建成功,会自动跳转到编辑主区域的界面,这里我们为”linuxpad.cn”这个区域来添加A记录。选择”地址”选项(地址选项就相当于A记录),如图8

  在名称中填写二级域名,在地址中填写域名所对应的服务器地址,这里名称填写”@”,即表示,没有二级域名,当然你也可以填写之类的,如图9

  值得一提的是这里可以配置泛域名解析,即在名称处填写”*”,这样所有在地址列表中没有的名称全部会匹配到名称”*”所对应的IP地址,如aaa.linuxpad.cn,aaa这个名称不存在于地址记录中,则aaa.linuxpad.cn就会匹配名称为”*”的这个地址记录,注意这条规则的位置,请确认”*”规则位于最末尾,否则位于”*”之后的地址记录将得不到解析。

  我们在上一步创建了正向解析,但是DNS解析只有正向是不行的,还必须有逆向解析,即将IP解析为域名,只有这样服务器才能将数据通过对应的域名返回给客户端。

  区域类型选择”逆向”,域名/网络填写”192.168.0.0”,在视图中创建选择”view_192.168.0.0”,同样填入E-mail,然后点击创建,创建成功后会自动跳转到编辑主区域的界面。

  到此刻为止的解析就完全创建成功了,我们的DNS服务器就能解析linuxpad.cn这个域名了。但是不要着急,我们来完成最后一步的配置。

  在上面的创建主区域的时候,”在视图中创建”这个选项,我们选择的是view_192.168.0.0,这样的话,我们所创建的linuxpad.cn这个域名解析只能对192.168.0.0/24这个段内的客户进行解析,如果我使用192.168.136.0段对linuxpad.cn进行访问的时候DNS就找不到服务器了,因为我们还没有在view_192.168.136.0这个视图中添加规则呢。

  按照上一步,我们再来创建两个规则,区域类型为”正向”,域名/网络为linuxpad.cn,视图属于”view_192.168.136.0”,在”linuxpad.cn”主区域添加地址,名称为”@”,地址为”192.168.136.200”,这里有人会疑惑主区域的名称linuxpad.cn不是与上一步的重复了,不冲突嘛,实际上是不冲突的,在不同的视图中可以存在同名的主区域,但是在相同的视图中不能存在同名的主区域。

  1、这个实验中我们完成了DNS服务器对不同网段的IP进行智能解析,这在内网和外网同时访问公司网站是很有效的,我们只需要在公司DNS服务器上配置双网卡,判断如果请求IP是外网则返回外网地址,如果请求IP是内网则返回内网地址,有效的解决了公司内部电脑访问公司网站速度过慢的问题(因为常规情况下,内部电脑访问网站需要先经过互联网DNS服务器进行解析,然后再将服务器返回的数据通过外网返回给内网用户,等于在外面绕了一大圈)。

  这个可以在DNS服务器上创建两个视图,一个电信视图一个网通视图,并且把电信和网通的IP分别写到两个视图内(电信和网通的IP列表以及南方和北方的IP列表这个网上都可以查到),然后再针对不同的客户端分别在两个视图内实现DNS智能解析。

上一篇:10万域名求自建DNS解决方案?
下一篇:DNS域名解析技术