Linux DNS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux DNS相关的知识,希望对你有一定的参考价值。

技术分享图片

libnss_files.so

libnss_dns

libnss_ldap

技术分享图片


展现的就是一个配置文件

/etc/nsswitch.conf

 

查看这个文件

技术分享图片

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

dns:指的就是DNS服务


stub resolver名称解析器

ping www.magedu.com

 

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

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片


DNS主从结构

片长挂了 副片长上

技术分享图片

版本号

检查时间(是否有改变)

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

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

否定答案的ttl

 

还有缓存服务器

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

技术分享图片

技术分享图片

@ 代表ZONE NAME


技术分享图片

Domain:逻辑

区域ZONE:物理

技术分享图片

一、

至少有三个区域:

    根、  自己解析不了的 找根

    Locahost 正向区域

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

 

区域数据文件:/var/named

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

 

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

type  { hint | master | slave | forward }       

                     转发

 

二、

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

备份下原配置文件

 

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

技术分享图片

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

技术分享图片

技术分享图片

检查语法


技术分享图片

技术分享图片

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


技术分享图片

区域数据文件属性也要改


技术分享图片

技术分享图片

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

 

然后 重读配置文件

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


技术分享图片

DNS指定自己IP

dig 测一下 如下图:

技术分享图片

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


技术分享图片

技术分享图片

host命令也行

技术分享图片


windows上面测试:

技术分享图片


然后还要添加反向区域

技术分享图片


添加反向数据文件

技术分享图片

这样快捷一些

然后修改:

技术分享图片

技术分享图片

技术分享图片

windows上检测下,没问题。


技术分享图片

泛域名解析

技术分享图片

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

技术分享图片



题外话:

原本named.conf文件

技术分享图片

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

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

 

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

 

自定义给谁进行递归

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

 

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

 

也可以写成any

例子:

技术分享图片

此主机DNS为有效 192.168.21.2   IP192.168.21.129

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

 

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

技术分享图片

解析不成功

 

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

再尝试有效

技术分享图片


技术分享图片

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


技术分享图片

+norecurse 就不进行递归了

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

 

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

技术分享图片

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

 

+trace 显示查找信息

 

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

技术分享图片

表示不跟任何人递归


技术分享图片

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

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

 

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

技术分享图片

技术分享图片

技术分享图片

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


技术分享图片

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


技术分享图片

把这个地址加上

技术分享图片

有效。


技术分享图片

完全区域传送

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


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

同时,版本号加1

技术分享图片

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

 

这是从2018010101之后,变化的

技术分享图片

区域传送:

有主、从结构

 

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

 

allow-transfer 允许谁来传送的

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

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

 

 

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

下图:

技术分享图片

技术分享图片

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


技术分享图片

不让传了

 

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

技术分享图片

技术分享图片

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

如何配置DNS的从服务器

就以这台129IP的主机为例

 

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

已经装好bind bind-utils

 

 

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

技术分享图片

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

 

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

技术分享图片

slaves 属主属组均为named


技术分享图片

技术分享图片

技术分享图片

技术分享图片

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

技术分享图片

从上面看,也有了


传送过来的写得更标准:

技术分享图片

技术分享图片


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

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

技术分享图片

技术分享图片

技术分享图片

日志显显重载成功

 

但传送没有发生

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

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

修改数据文件:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

两边都有日志记录

 

rndc命令

子命令:

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

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

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

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

flush 清空缓存


技术分享图片

技术分享图片

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

 

修改下格式

技术分享图片

技术分享图片

技术分享图片

技术分享图片

-c可以不用指

默认读这个配置文件

如果要控制远程主机

技术分享图片

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


技术分享图片

技术分享图片

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

技术分享图片

技术分享图片


技术分享图片

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

技术分享图片


技术分享图片

正向区域里

要有:

子域区域名称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

技术分享图片

技术分享图片

增量区域传送


技术分享图片

从服务器上就有了

技术分享图片

修改vv上的配置文件


技术分享图片

技术分享图片

技术分享图片

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


技术分享图片

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

技术分享图片

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


技术分享图片

技术分享图片

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

技术分享图片


技术分享图片


技术分享图片

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


技术分享图片

从服务器上数据文件有了


技术分享图片

技术分享图片

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


技术分享图片

配置mm这台机的named服务


技术分享图片

技术分享图片

技术分享图片

这个是解析外网的


技术分享图片

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

 

但子域是找不到父域的

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

 

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

forward

only 只给父域  不给找就算了

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

 

先看first

技术分享图片

技术分享图片

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

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

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

技术分享图片

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

其他区域的就不再转发了

 

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

技术分享图片

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

 

试验结果:

技术分享图片

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


aa:权威答案


也可以定义acl列表:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

dig -t axfr panqi.com @192.168.21.131

技术分享图片

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

更新相关开启

 

queryperf 使用




以上是关于Linux DNS的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习导航

Linux 文件/目录管理(初级)

Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

嵌入式linux怎么学

Linux一步一步学Linux——Linux发展史(01)

linux查看进程id命令(linux查看进程id)