blob.png

libnss_files.so

libnss_dns

libnss_ldap

blob.png


展现的就是一个配置文件

/etc/nsswitch.conf

 

查看这个文件

blob.png

这个files就是通过libnss_files来找/etc/hosts

dns:指的就是DNS服务


stub resolver名称解析器

ping www.magedu.com

 

先通个这个解析器找files对应的/etc/hosts看看有没有这个名称对应的IP地址,没有就再给DNS

blob.png

blob.png

blob.png

blob.png

blob.png


DNS主从结构

片长挂了 副片长上

blob.png

版本号

检查时间(是否有改变)

重试时间(万一检查失败)

过期时间(万一重试也失败了)

否定答案的ttl

 

还有缓存服务器

转发器,没有缓存,只进行转发

blob.png

blob.png

@ 代表ZONE NAME


blob.png

Domain:逻辑

区域ZONE:物理

blob.png

一、

至少有三个区域:

    根、  自己解析不了的 找根

    Locahost 正向区域

127.0.0.1 反向区域  其实这两个都是别人要解析自己时的地址,一个正的,一个反的

 

区域数据文件:/var/named

named.ca    named.localhost   named.loopback    对应上面的根  本机正向,本机反向

 

directory : 固定工作路径 (相对路径)

type  { hint | master | slave | forward }       

                     转发

 

二、

查看主配置文件 /etc/named.conf

备份下原配置文件

 

自己弄一个手动的配置文件   简单

blob.png

这里建了正向区域,还得去/var/named/下建立对应的数据文件

blob.png

blob.png

检查语法


blob.png

blob.png

改属主属组和权限        跟原来文件权限一样


blob.png

区域数据文件属性也要改


blob.png

blob.png

查看tail  /var/log/messages 日志信息

 

然后 重读配置文件

killall  -1  named    不要重起服务,能够重读配置文件


blob.png

DNS指定自己IP

dig 测一下 如下图:

blob.png

其实因为已经修改了DNS指定,这里就不用@IP地址也行


blob.png

blob.png

host命令也行

blob.png


windows上面测试:

blob.png


然后还要添加反向区域

blob.png


添加反向数据文件

blob.png

这样快捷一些

然后修改:

blob.png

blob.png

blob.png

windows上检测下,没问题。


blob.png

泛域名解析

blob.png

有时,用户输错也能定向到指定位置

blob.png



题外话:

原本named.conf文件

blob.png

只监听在127.0.0.1  53端口上的  也就是只监听在本地回还接口上  不能和外界通信的

外面主机想通过它解析就不行,要把监听端口改掉,就能变成缓存服务器

 

recurion yes 是否允许递归  不定义的话 默认开启的  不过这样不好

 

自定义给谁进行递归

allow -recursion  { 192.168.21.0/24; };  只给来自这个网段的地址递归

 

allow-query 只允许谁来查询,一般用的不多

 

也可以写成any

例子:

blob.png

此主机DNS为有效 192.168.21.2   IP192.168.21.129

然后修改配置文件,将端口只监听为本机53端口

 

而此时,另一台主机将DNS指定为本机IP192.168.21.129

blob.png

解析不成功

 

一旦将配置文件中那行注释掉

再尝试有效

blob.png


blob.png

默认就是递归的,加了recurse一样的


blob.png

+norecurse 就不进行递归了

找根,根告诉你直接找com.

 

从上面找一个com.地址 自己再找

blob.png

找到sohu.com. 还没找到www.sohu.com

 

+trace 显示查找信息

 

所以,如果我们把配置文件设置为不允许递归,那么除了我们负责的区域,其他解析就都没用了

blob.png

表示不跟任何人递归


blob.png

这样要找baidu就没用了 因为我们首先不负责这个域,得找根,再找com.

但因为不递归了,所以没有

 

panqi.com不同,这个域本就是我们所负责的,所以解析有效。

blob.png

blob.png

blob.png

改为允许这个网段的递归,这样就行了。因为现在的DNS地址就在这个网段里。


blob.png

127.0.0.1来试,虽然也是本机地址,但不在这个网段里,所以不递归。


blob.png

把这个地址加上

blob.png

有效。


blob.png

完全区域传送

得到对方区域内的所有数据


如果我在区域数据文件再加一条A记录

同时,版本号加1

blob.png

这样就会显示新增一条记录

 

这是从2018010101之后,变化的

blob.png

区域传送:

有主、从结构

 

不是谁都能来的,只能允许自己的从服务器来

 

allow-transfer 允许谁来传送的

写在全局里,对下面的每个区域都生效

可以写在下面各个区域里,只对各区域生效

 

 

比如允许给这台主机传送两个区域,根,本机正向,反向都不允许

下图:

blob.png

blob.png

根里面不要加none,不允许。


blob.png

不让传了

 

把这台DNS指向(上图的IP地址配的DNS

blob.png

blob.png

定义中的这台192.168.21.129IP就可以传

如何配置DNS的从服务器

就以这台129IP的主机为例

 

只要建立主配置文件,数据文件传送过来就行

已经装好bind bind-utils

 

 

/var/named目录 属组权限无写

blob.png

那么我们区域传送时,是以named进行的,其没有对这个目录的写权限,所以,同步也不行。

 

于是,很贴心的帮我们建好了一个目录,把同步过来的文件放这里就行了。

blob.png

slaves 属主属组均为named


blob.png

blob.png

blob.png

blob.png

主服务器上看日志:显示129过来同步数据了

blob.png

从上面看,也有了


传送过来的写得更标准:

blob.png

blob.png


下面来看看增量区域传送会不会发生

主服务器里加一条A记录试试:

blob.png

blob.png

blob.png

日志显显重载成功

 

但传送没有发生

原因:当主服务器发生增量,应该会通知从服务器的,但我们没有定义从,它找不到

我们只是在从里面定义了主

修改数据文件:

blob.png

blob.png

blob.png

blob.png

两边都有日志记录

 

rndc命令

子命令:

reload 通知某个服务器,让它重读配置文件和区域数据文件

reload zone 只重读区域数据文件,而且可以指定哪个

notify zone 手动让某个区域向外发通知

reconfig 只重读配置文件及新建的区域数据文件

flush 清空缓存


blob.png

blob.png

当前行到倒数第二行追加重定向到named.conf

 

修改下格式

blob.png

blob.png

blob.png

blob.png

-c可以不用指

默认读这个配置文件

如果要控制远程主机

blob.png

修改监听的端口和允许的主机IP


blob.png

blob.png

必须将本机的这个key给另一台主机

blob.png

blob.png


blob.png

这边关掉,另一台named服务就没了

blob.png


blob.png

正向区域里

要有:

子域区域名称SUB_ZONE_NAME       IN     NS    NSSERVER_SUB_ZONE_NAME

还要有相应的A记录

NSSERVER_SUB_ZONE_NAME          IN     A   子域里作DNS服务器的那台IP

 

panqi.com.

192.168.21.131

192.168.21.129

 

1vv.panqi.com.

vv.panqi.com.          IN             NS                   ns1.vv.panqi.com.

vv.panqi.com.          IN             NS                   ns2.vv.panqi.com.

ns1.vv.panqi.com.          IN             A               192.168.21.117

ns2.vv.panqi.com.          IN             A               192.168.21.118

 

2mm.panqi.com.

mm.panqi.com.             IN             NS                   ns.mm.panqi.com.

ns.mm.panqi.com.           IN             A               192.168.21.141

blob.png

blob.png

增量区域传送


blob.png

从服务器上就有了

blob.png

修改vv上的配置文件


blob.png

blob.png

blob.png

配置文件和区域数据文件权限别忘了


blob.png

这个因为用的DNS192.168.21.2 解析的是外网上的信息

blob.png

这个是以本机DNS解析  就能看到我们配置的作息


blob.png

blob.png

在从服务器上配置文件修改下

blob.png


blob.png


blob.png

主的日志上显示从的过来同步数据了


blob.png

从服务器上数据文件有了


blob.png

blob.png

效果一样的 一主一从两个DNS


blob.png

配置mm这台机的named服务


blob.png

blob.png

blob.png

这个是解析外网的


blob.png

这个就是解析的自己配置的

 

但子域是找不到父域的

怎么才能让子域不能联外网还能找到父域,并且可以让父域出去找

 

定义转发  父域要能给子域进行递归

forward

only 只给父域  不给找就算了

first 先给父域   找不到,再自己找根去了

 

先看first

blob.png

blob.png

虽然本机不负责panqi.com这个区 但因为有first,所以先找父域,而父域就是负责这个域的

其实如果自己能上网,将不是父域负责的区域转发父域也没啥意义(因为自己找或是父域找,都是非权威答案)

所以,我们最好将父域自己负责的区域转给它,其他不用转,比较合适。

blob.png

这样写,先建个区域,将请求这个区域的,转发给父域,也就是它自己负责的区域

其他区域的就不再转发了

 

但测试结果,看的不明显。也看不出怎么转发的。

blob.png

我在主机里定义了一个访问.com的这个区域都转发给.comns13个)而不是根来解析

 

试验结果:

blob.png

跟以前不一样了,变大写了,我也不知道成不成功。??????


aa:权威答案


也可以定义acl列表:

blob.png

blob.png

blob.png

blob.png

dig -t axfr panqi.com @192.168.21.131

blob.png

一般来说 查询 安全相关的不开启日志

更新相关开启

 

queryperf 使用