DNS与BIND学习(三)

目录

建立反向DNS解析

第一步 修改配置文件

第二步 添加区域数据文件

重起服务并进行反向解析

从服务器搭建

搭建从服务器

检验从服务器是否可用

主从服务器的一致性

实现DNS服务器对管理区域cs.edu的正向解析后,我们继续来做反向解析,这次是有了IP,找到对应的域名。再一个是实现从DNS服务器的搭建,如果只有一个DNS服务器的话,他挂了以后整个区域都不能解析DNS了,因此我们需要冗余DNS区域数据。

建立反向DNS解析

同上一篇步骤相同DNS与BIND学习(二)-CSDN博客,要添加IP和域名对应关系数据,就应该修改区域数据文件和配置文件。bind9中两类文件都在/etc/bind 中,db.*代表区域数据文件,named.conf.* 代表配置文件。如下图所示。

下面解释一下各个文件作用:

  • db.* : 区域数据文件,包含着IP与域名的对应关系。其中db.0或db.127这种后面是数字的为IP向域名对应。以db.127为例,他解析127.0.0.0/8网段中所有IP变为相应域名。同理,上个实验刚建成的db.cs.edu,就负责把cs.edu网段里的域名对应成相应的IP。
  • named.conf.* : 区域配置文件,规定了区域数据文件运行机制。其中named.conf.default-zones可以往里添加这台DNS负责解析的区域,named.conf.options主要是权限控制,比如转发权限,访问权限,从服务器监听权限,端口绑定权限(最新版bind9没有了)。
  • bind.keys和rndc.key : 两个操作的配置文件,比如通过rndc reload来重启服务。
  • zones.rfs1918 : 在named.conf.local中有引用,是私有网络地址分配,将10.或127.或192.168.这些私有地址对应到localhost上去。

我们这次把192.168.125.0/24网段的IP转化成对应的域名,即 192.168.125.28 -> AI.cs.edu , 192.168.125.28 -> IOT.cs.edu。

第一步 修改配置文件

vim /etc/bind/named.conf.default-zones

当然可以模仿前面写的,只要像127.in-addr.arpa这种就是反向域名解析,在文件中添加下面内容。

zone "125.168.192.in-addr.arpa"{
        type master;
        file "/etc/bind/db.192.168.125";

};

再用named-checkzone检查一下配置文件格式,没有提示就是通过了。

第二步 添加区域数据文件

要重新建一个把IP对应到域名的文件,既然是区域数据文件,命名格式db.*,反向解析的区域数据文件,命名用它解析的域来命名,在这里我们的cs.edu域为192.168.128.0/24,所以命名为db.192.168.125。

vim /etc/bind/db.192.168.125

写入区域数据文件

检查区域数据文件

named-checkzone 125.168.192.in-addr.arpa db.192.168.125

重起服务并进行反向解析

重启服务

rndc reload

我们用192.168.125.8号客户机检测,因为他通过38号DNS服务器解析。

dig -x 192.168.125.28

可以看到成功把192.168.125.28解析为AI.cs.edu,完成反向解析。

从服务器搭建

只有一个DNS服务器存在单点失败问题,我们将192.168.125.28号虚拟机搭建为从DNS服务器,并且DNS解析数据与主服务器保持一致。

搭建从服务器

我们先在28号上下载bind9,可以改一下主机名,看起来更方便(学了也不亏)。

hostnamectl set-hostname slave

现在打开他的/etc/bind,往里加一个slave文件夹,保存从38号主节点拉取的IP域名对应表。

mkdir slave 

现在问题是如何把主服务器DNS解析文件拷贝到从服务器,这只需要改从DNS配置文件就行了。在28号虚拟机上,运行下面代码。

vim /etc/bind/named.conf.default-zones

添加一个从服务器区域

zone "cs.edu" {
        type slave;
        masters {192.168.125.38;}; 
        file "slaves/db.cs.edu.slave";
};        

用 named-checkconf 检查格式正确后,使用rndc重启服务。

检验从服务器是否可用

我们来检测一下,从服务器是否能用了,我就用192.168.125.8尝试了一下,运行下面代码。

dig AI.cs.edu @192.168.125.28

意思是通过192.168.125.28来解析 IOT.cs.edu 地址,可以看到解析成功。

我其实做的时候,我发现第一个奇怪的点是我的/etc/bind里面开始没有slaves文件夹,然后我运行了rndc reload以后,slaves还是空空如也,大概是最新版的bind9拉取文件存放位置变了,这也很正常。我把slaves文件删除后,毫无疑问还可以通过28号解析。我刚开始接触,我把这些实验整理完后,再研究一下官网上怎么说的,看进度喽。

其实slaves找不到是个很好的安全措施,老版本的bind9中,即使拉取了主服务器的IP和域名对应关系,也是进行过二进制加密的,只能在知道了IP或知道了域名以后一个一个查询。这样做的好处是,别人恶意拉取主服务器的DNS表后,没办法知道具体的网站名称,也不知道具体IP,预防对某个部门的特定IP进行监听或攻击。现在新版bind9更优秀,没有slaves了,至少我现在没找到他拉取的数据存了哪里了,找到再写出来。

主从服务器的一致性

先修改一下38号主DNS服务器的区域数据文件。

vim /etc/bind/db.cs.edu 

修改 IOT.cs.edu 为192.168.125.48,注意修改序列号,否则从服务区认为主服务器数据没变,不会拉取数据。

在8号测试机上先来测试一下主服务器获得的IOT.cs.edu信息。

dig IOT.cs.edu @192.168.125.38

可以看到是正确的192.168.125.48,说明主DNS服务器已经完成修改。

在8号测试机上先来测试一下从服务器获得的IOT.cs.edu信息。

dig IOT.cs.edu @192.168.125.28

可以看到还是原来的192.168.125.8,没有立刻更新。

当然,根据在主服务器SOA中配制的信息来看,从服务器更新时间是604800s,也就是一周(我没改这个数据,我下载bind9时候,他本来就这么写的)。那想来,从服务器一周后才会查查主服务器改了没,呃,感觉要出问题。

当然解决方法就是主服务器区域数据文件一旦修改,就告诉从服务器一声,也就是“推”的方式。有发现一个问题是,刚才我们只修改了从服务器的配置文件,主服务器根本没动。也就是说,主服务器都不知道自己有这么个slave,当然也无法向他推数据,所以要让主服务器知道他的slaves们。

修改38号虚拟机(主服务器)的区域数据文件。

vim /etc/bind/db.cs.edu

向内添加从服务器记录,把28号从服务器加进去,主要是加入NS记录,并把地址加入。

存在的一个风险,任何一个服务器都可以把自己当成从服务器,不需要主服务器知道。因此,任何服务器可以随意监听主服务器了,而且就算不当从服务器,任何一个主机,只要知道区域名和区域的DNS服务器,便可以得到DNS表。

在测试机192.168.125.8上运行

dig -t axfr cs.edu @192.168.125.38

就可以看到cs.edu域内所有信息,非常危险。因此我们需要在DNS服务器内添加对外来主机的访问权限控制,即修改/etc/netplan/named.conf.options内容。

vim /etc/netplan/named.conf.options

主服务器中添加所有他的从服务器名,这里是只有28号可以获取数据。

allow-transfer {192.168.125.28;};

从服务器谁也没有权限访问,添加下面代码。

allow-transfer { none; };

然后运行配置文件,在8号虚拟机上再检测,没有获取cs.edu的IP域名对应表。第三次实验就完成了,后面会有DNS子域建立和DNS选择实验。实验结束后会更新一些相关方面的论文以及协议等,持续更新中~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值