码迷,mamicode.com
首页 > 其他好文 > 详细

DNS配置

时间:2017-10-14 21:51:47      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:linux

一、DNS配置

1、配置DNS服务

1)我们现在尝试着添加一个解析数据。

还记得刚才在配置文件的末尾有一个文件,用来存放区域信息

技术分享

我们就来编辑/etc/named.rfc1912.zones这个文件   

技术分享

添加3行关于magedu.com的信息

接下来我们要建立那个magedu.com.zone文件了,由于里面的内容较为复杂,我们可以复制模板然后修改一下。技术分享

我们将localhost文件当做模板复制一份起名就叫magedu.com.zone

但是我们发现这个权限太小了,named用户无法读技术分享

因此我们可以手动改一下权限,或者在刚才复制的时候加-p保留权限。技术分享

改好权限之后我们就可以编辑这个文件了,这里就要填写之前提到的各种资源记录了。

 

在填记录之前我们先在192.168.37.106上搭建一个web服务

技术分享

内容为centos6

技术分享

启动一下web服务技术分享

然后就可以编辑文件了,内容如下:

TTL可以在开头定义,全局继承。技术分享


配好之后保存然后可以使用named-checkzone进行数据库检查

技术分享

显示OK,然后我们重新加载一下服务。可以使用rndc reload,这个命令是专门管理DNS服务的,直接重新加载数据库。

技术分享

那么现在,客户端就可以通过这个DNS服务器访问websrv1.magedu.com网址了。

我们去客户端ping一下:技术分享

果然解析出地址为192.168.37.106.

我们可以使用links尝试打开网页:

技术分享

技术分享

打开成功!


2)别名

技术分享

我们再添一条www别名。然后rndc reload重新加载一下。

然后用客户端测试一下:

技术分享

设置成功。

于是我们现在可以使用links 打开www.magedu.com

技术分享

技术分享

别名设置成功!

 

3)设置两个服务器

为了避免一个服务器负载过大,我们可以使用以下方式,设两个服务器

技术分享

我们把106107上都放一样的东西,这样用户访问www.magedu.com的时候,会随机分配,有一部分人访问106上的内容,一部分人访问107上的内容,效率就更高一些了。


4)模糊访问——泛域名解析

·有的时候用户本来想访问www.magedu.com的网站,但是他不小心输错了输成wwww.magedu.com或其他乱七八糟的字母,但我们仍然希望只要是后面是magedu.com的就跳到我们www.magedu.com页面去。

技术分享

于是我们使用通配符*,代表任意字符。这样无论用户输入什么.magedu.com都会跳到我们正确的界面了。

 

·有的时候我们连www都不想打,想直接输入magedu.com访问,于是我们就加一条:

magedu.com. A 192.168.37.106

或者

@ A 192.168.37.106

或者

  A192.168.37.106

都可以实现。

 

2、反向地址解析

跟正向地址解析差不多,只是将IP地址解析成名字,一般用于邮件。

技术分享

还是编辑这个文件,添加如下4行内容

技术分享

然后再去/var/named/下创建192.168.37.zone文件技术分享

同样,用named.loopback做模板,复制一份文件出来,然后修改此文件

技术分享

一定记得要写.表示结束

技术分享

我们来测试一下100:技术分享

果然补充了后缀,所以一定要写点!技术分享

106就没有问题。

 

3、主从DNS服务器

1从的数据库不需要自己创建,会自动同步主DNS的数据。技术分享

从服务器的数据存放在slaves文件夹内。

 

下面我们来配置一下magedu.com的从服务器:

首先还是要先改named.conf文件技术分享

将这两行注释。

然后再修改 /etc/named.rfc1912.zones文件

技术分享

然后保存之后,可以先查看一下slaves文件夹下还没有备份

技术分享

当我们重新加载一下之后再看,就已经做好备份了。从数据库的内容就和主数据库一样。

技术分享

注意,有几个服务器,就应该有几条NS服务。

一个主可以有多个从,从也可以再有一个从。

 

2)安全隐患

但是这种主从机制有一些安全隐患,任何人使用dig-t axfr magedu.com @192.168.37.107命令,就能从192.168.37.107服务器上把magedu.com这个域的所有数据抓下来。为了防止这种数据泄露,我们在主配置文件加上一句allow-transfer,后面跟上从的地址。技术分享

这样就只允许从服务器能从主上面传输数据。

但是这样也有安全问题,我虽然不能从主DNS上传输数据,我仍然可以从从DNS上传输数据。因此,我们也应该在葱的配置文件中加上这句allow-transfer,并且不允许任何人传输。技术分享

这样,就解决了安全问题。

 

4、子域

比如我们开始的网址是www.magedu.com,但是我们现在做大了,magedu下面新增加了子域,比如开在河南的分公司叫www.henan.magedu.com。这样magedu就有新的子域叫henan,那么这个子域放在哪里呢?有两种方式。

1当访问量不大时,就可以与magedu放在一个服务器上。

技术分享

2当访问量大的时候,可以单独拿出来作为一个独立域,但是仍然放在同一个服务器上。

       先在named.rfc1912.zones中增加以下内容:

技术分享

然后仍然是复制一份模板改一改:技术分享

虽然是子域,但是还是放在同一个机器上,但是从实现上是通过独立域实现的。技术分享

  修改成功

技术分享

3不放在同一个服务器上(这个过程叫委派)

我们之前讲过,上级服务器知道下级子域的地址的,因此我们先在上级域中添加子域信息技术分享

然后再按照之前的方法,在106上把henan.magedu.com域建起来即可。    

添加配置文件内容:

技术分享

建立henan.magedu.com.zone文件:技术分享

这样就委派成功了。技术分享

glue record:粘合记录,父域授权子域的记录

 

5bind-chroot软件搬家

bind-chroot:/var/named/chroot/ DNS很多相关文件迁移到一个比较深的文件夹,这样可以使黑客攻击时无法找到DNS文件,更加安全。

 

首先安装包:

技术分享

装好之后,它有一个服务需要启动

技术分享

启动服务:

技术分享

搬家成功:技术分享

技术分享

可以看到,原来的文件也在,并且两个文件一模一样

技术分享

inode号相同但是硬连接数还是1,说明它既不是硬链接也不是软连接

技术分享

它是通过mount挂载实现的。目录挂目录。


二、允许动态更新

我们可以允许动态更新,通过命令,可以坐在别的机器上将这台机器的数据库的内容进行动态更新,而不是去本机的数据库里直接改。

 

1)首先得在本机上允许动态更新(就是将这个功能先开启)

修改named.rfc1912.zones文件:

指定的zone语句块中:添加Allow-update {any;};

技术分享

这样允许任何人动态更新。

使用rndc reload重新加载一下。

 

2)然后需要给named目录添加写权限,让named用户可以去里面修改henan.magedu.com.zone文件技术分享

(或者使用chmod 770 /var/named更改权限)

PS:如果selinux策略启用的话,记得把策略开关打开:setsebool -P named_write_master_zones on。如果selinux策略本身是关掉的就不用管它了。

 

3)最后就可以在另一台机器上开始改了,使用nsupdate命令,交互式修改,每次改完一句记得输入send发送,这样那边才会被修改。技术分享

要注意,它并不会马上修改原来的文件,而是新生成了一个.jnl文件。等过一段时间才会把.jnl里的内容写进源文件。技术分享

这个文件是一个二进制文件。技术分享

但只要生成了.jnl文件,就已经添加成功且生效了。

 

4)那我们可以来测试一下

技术分享

果然添加成功技术分享

可以查看一下,源文件当前确实是没有被改变的。

 

5)可以添加当然也可以删除,使用相同的方式,命令如下:

技术分享

这样就删掉了websrv那条记录技术分享

果然没有6.6.6.6了。

 

6)这种方式允许任何人修改数据库,很不安全,因此我们在.zones文件中不要设成any,你允许哪个机器改,就把后面写上机器地址即可。

技术分享

技术分享


三、转发服务器

1、概念

技术分享

正常情况下每个地方都有自己的服务器,现在先只看这三个,三个现在在三个地方都有自己的服务器,加入beijing有人想访问www.magedu.com但是它本机上没有,它就要跑到根上去问一圈然后返回结果,shanghai那边也有人想访问这个网址,它也要去根上跑一圈问,zhenghzou那边还有人想访问这个网址,它也要去根上跑一圈问,这样就很麻烦效率很低。

于是我们就设定,shanghaizhengzhou如果本机没有时先不去根上问,而是先去beijing上去问,如果beijing没有再去根上问,如果beijing上有就可以直接拿到结果了。这种方式就叫服务器转发。

 

2、代码

被转发的服务器需要能够为请求者做递归,否则转发请求不予进行

(1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器

Options {

forward  first|only;

forwarders { ip;};

};

(2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高

zone"ZONE_NAME" IN {

type forward;

forward  first|only;

forwarders { ip;};

};

注意:关闭dnssec功能:

dnssec-enableno;

dnssec-validationno;

 

3、实验

1我们现在来尝试一下转发。我们把107当做zhengzhou106当成beijing

有两种状态:

only】:用户在107上访问网址,107如果有直接返回结果,107如果没有就去106上问,106如果也没有就返回失败结果

first】:用户在107上访问网址,107如果有直接返回结果,107如果没有就去106上问,106如果也没有就107自己跑去根上问,然后成功返回结果

 

2现在开始在106上建立域:

技术分享

技术分享

将来如果访问www.qq.comIP就是6.6.6.6

记得service named reload重新加载一下。

 

3现在在107上设置转发:

设置转发也有两种效果。

一种是全局转发:无论问什么域我都转发给106

还有一种是特定区域转发:只问特定的域(比如这里的www.qq.com)我才转发给106,其他的还是自己去问根。

 

方法1)我们先设置简单的,全局转发,无论查谁,都转到106

修改/etc/named.conf(注意这就也分两种情况,我们之前提到过的onlyfirst

先设置[only]吧:

技术分享

记得rndc reload重新加载一下服务

然后测试一下

技术分享

成功。技术分享

可以看一下106上的日志,发现确实是107在问她。

 

如果访问的不是www.qq.com的网址,而是106上没有的网址,就会查询失败了。因为我们设置的是only。如果106上没有结果就返回查询失败的。(注意做这个实验时记得关掉106上的桥接模式,断网,不然106会去根上查询一圈找到结果的。)技术分享

可以看到查询失败。

 

刚才设置的是only,现在我们改成first试一下。

技术分享

rndc flush清一下缓存,rndc reload重新加载。

查询qq没问题技术分享

查询一下其他的网:

比如京东

技术分享

也成功。这个就是107自己去根上查到的了。

查看日志,106上说107来它这里查但是没有结果技术分享

说明确实是107自己查到的。

如果把107也断网的话,然后清空缓存,那么就无论如何也查不到了。技术分享

这也确实说明刚才是107自己查到的。

 

方法2)刚才实现的是全局转发,现在我们来实现一下特定区域转发。

修改/etc/named.rfc1912.zones文件

技术分享

改完记得rndc reload加载一下。

 

查询sohu,失败。技术分享

查询qq,本来应该成功的,但是还是失败

技术分享

因为我们还需要修改一个设置:

修改named.conf文件

技术分享

有两个设置DNS安全的开关,把yes改为no

技术分享

改完后保存然后rndc reload重新加载

再试一次:技术分享

特定域转发成功。


本文出自 “Ty_endless” 博客,请务必保留此出处http://tyendless.blog.51cto.com/12435756/1972382

DNS配置

标签:linux

原文地址:http://tyendless.blog.51cto.com/12435756/1972382

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!