前言和实验背景

智能DNS是一个很关键的应用,也是直观体现工资的一项技能。智能DNS现在的技术已经非常的成熟,而且可以进化成CDN(内容分发网络)。基本掌握了智能DNS和CDN的技术,就代表你已经成为一名合格的中高级网页服务器运维工程师了。


大陆的网络垄断情况在全球算得上前三名,中国联通和中国电信基本瓜分了大陆80%的网络宽带进线份额,而联通电信大概的分布情况也是南北分治,北方的使用联通的网比较多,南方的使用电信的情况比较常见,这种现象的网速落差比较直观的体现就是在网络游戏上。


回来说网页服务器,公司企业既然开门做生意,那么面对的客户自然来自大江南北。为了保证用户能够有好的网页视觉体验,自然要有很快的网页开启的速度,这一点在视频服务器上体现尤为重要。那么智能DNS就可以做到“根据来访用户的ip地址,然后把同一个域名解析成不同的ip地址,然后提供给用户最适合的ip地址”。举个例子,如图:

android 11 私人DNS模式_ip地址

这个例子里的DNS服务器只写了一个,实际生产应该会有多个。默认9.9.0.0网段的用户都是联通的用户,那么9.9.0.0网段的用户数据肯定会走DNS服务器的9.9.9.9网卡,同时DNS服务器会把lnsjb.com解析成9.9.9.1反馈给用户;5.5.0.0网段的用户同理,他们得到的网页ip地址是5.5.5.1,虽然网页是一样的,但是由于两个ip不同,两个用户都是就近访问,保证了访问速度。


这种例子是可以搭配nginx实现的,使用nginx的host语句,就能判断来访ip,然后根据不同的ip分配不同的网页,或繁体中文或简体中文或英文。这里主要说的是用bind软件实现解析同一域名的不同ip,其实现的主要部件就是view。


#man named.conf一下就能看到整个named.conf的功能,在view模块里的内容更是非常的丰富,可以毫不夸张的说,bind这个软件就足够写出一本书,所以bind软件非常值得挖掘。


每一个view对应一类用户,结合上面的例子,9.9.0.0/24就是一类用户、5.5.0.0/24也是一类用户。所以view要分别写两个,分别匹配好各自的客户端,然后就是声明zone。


实验操作的前期准备

首先安装bind软件主体,#yum install bind -y。然后安装一个扩展包,#yum install caching-nameserver。不过如果是centos 6以上的系统,就不用执行扩展包的安装,bind会直接自带caching-nameserver。安装完毕之后,在/etc下就会看见多了一个叫named.rfc1912.zones这个文件。

android 11 私人DNS模式_DNS_02

#vim /etc/named.rfc1912.zones一下,看看里面的内容。

android 11 私人DNS模式_android 11 私人DNS模式_03

可以看见这个文件跟named.conf的格式很相似,都是声明了最基础dns的三个解析域。但是这个文件里每个域都有一个“allow-update”,这个“自动更新”功能就是针对dhcp而来的,如果网页服务器使用的是动态地址,那么每更新一次动态地址,这个文件也会把Address更新成新的ip地址。


dhcp应用于网页服务器上是很危险的,因为这给了***可趁之机,他可能会把网页服务器里的付款界面ip地址更新成一个钓鱼网站的地址,这样对公司的声誉将会是巨大的破坏!所以一般这个allow-update后面都会跟着一个{ none; },即不准许动态更新。


实验的具体操作步骤

那么开始在/etc/下写named.conf。

android 11 私人DNS模式_android 11 私人DNS模式_04

:wq保存退出之后,#named-checkconf一下,检查这个named.conf文件语法问题。确认无误之后,就可以专心的写lnsjb.com.zone.unicom和lnsjb.com.zone.telecom这两个区域文件。


lnsjb.com.zone.unicom和lnsjb.com.zone.telecom这两个文件跟之前DNS主服务器文章里的区域文件写法一模一样,区别就是要对应加上不同的ip地址。


如何检验?

文件写完之后,在服务器上#ifconfig eth0:1 9.9.9.9/24#ifconfig eth0:2 5.5.5.5/24,然后别忘了#service named restart#netstat -tnlp |grep :53一下,看一下9.9.9.9和5.5.5.5的53端口是否被监听。


然后就可以在客户机上设定网卡是9.9.0.0/24网段,然后#dig -t lnsjb.com @ 9.9.9.9,看一下得到的answer应该是9.9.9.1。5.5.0.0/24的结果一样。






转载于:https://blog.51cto.com/chenx1242/1754070