Linux配置与应用DNS服务

| 文章字数:2.1k | 阅读时长:8min
这是一篇更新于 565 天前的文章,其中的信息可能已经有所发展或是发生改变。

DNS(Domain Name System,域名系统)用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记以,但是机器之间只能互相认识IP地址,他们之间的转换工作称为域名解析,域名解析需要由专门的服务器来完成,DNS就是进行域名解析的服务器。

任务一

安装与配置基本的DNS服务器

背景

为公司配置一台DNS服务器,其IP地址为192.168.136.156,具体要求如下。

设置该区域的SOA记录,主域名服务器为ns.yhy.com。维护该域的管理员邮箱地址为admin@yhy.com,当前区域信息的版本号、刷新时间等为默认值。

该区域的ns记录:ns.yhy.com

该区域的A记录:主机名为ns,对应的解析IP为192.168.136.100

该区域的A记录:主机名为web1,对应的解析IP为192.168.136.100

该区域的A记录:主机名为web2,对应的解析IP为192.168.136.100

该区域的nx记录:对应的解析IP为mail.yhy.com,优先级为5

该区域的别名记录:别名为mail,对应的主机为ns

该区域的别名记录:别名为www,对应的主机为ns

该区域的别名记录:别名为ftp,对应的主机为ns

并对应作反向解析。

设置服务器IP地址

使用setup命令或者vim /etc/sysconfig/network-scripts/ifcfg-eth0配置完成后,service network restart重启网络

安装DNS软件

1
2
yum install bind -y
yum install bind-chroot -y

备份配置文件

1
2
cp -p /etc/named.conf /etc/named.conf.bak   #加参数p表示权限不变
vim /etc/named.conf

备份编辑区域文件

1
2
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
vim /etc/named.rfc1912.zones

建立正向查找域文件

1
2
3
cd /var/named/
cp -p named.localhost yhy.z
vim yhy.z

建立反向查找域文件

1
2
cp -p yhy.z yhy.f
vim yhy.f

重启服务

1
2
service named restart  #重启
chkconfig named on #开机启动

注意此处需要关闭防火墙service iptables stop

客户机验证

在客户机中配置DNS指向DNS服务器,配置客户机DNS。使用vim /etc/resolv.conf在文档尾部加入如下内容。

1
nameserver 192.168.136.156

正向查找域验证结果

反向查找域验证结果

至此,DNS服务器搭建测试完毕。

任务二

搭建辅助作用域DNS服务器

DNS辅助服务器(slave)是一种容错设计,考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求,辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来的,因此辅助服务器的数据都是只读的。当然,如果有必要,可以直接将辅助服务器升级为主服务器。

搭建辅助服务器的好处

(1)辅助DNS服务器提供区域冗余,能够在这个区域的主服务器停止响应的情况下为客户端解析这个区域的DNS名称。

(2)辅助DNS服务器可以减少DNS网络通信量,采用分布式结构,在低速广域网链路中添加辅助DNS服务器能有效地管理和减少网络通信量

(3)辅助DNS服务器可以用于减少区域的主服务器的负载。

要求搭建一台辅助DNS服务器,其具体的参数配置如下:域名为yhy.com;主区域服务器IP为192.168.30.128;辅助区域IP为192.168.30.129.

设置服务器IP地址

使用setup命令或者vim /etc/sysconfig/network-scripts/ifcfg-eth0配置完成后,service network restart重启网络

备份配置文件

1
2
cp -p /etc/named.conf /etc/named.conf.bak   #加参数p表示权限不变
vim /etc/named.conf

备份编辑区域文件

1
2
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
vim /etc/named.rfc1912.zones

建立正向查找域文件

1
2
3
cd /var/named/
cp -p named.localhost yhy.z
vim yhy.z

重启主服务器

1
service named restart

配置辅助服务器配置文件

辅助服务器与主服务器配置一样,区别就是不需要再options中加allow-transfer{}

备份编辑区域文件

1
2
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
vim /etc/named.rfc1912.zones

此处要将默认的allow-update{none;};删除文件的位置默认在slave下,也可在其他目录下。但是必须保证目录所有者和所属组是named,否则无法从主区域传输DNS信息。

查看辅助服务器的复制结果

1
2
3
4
service named restart
cd /var/named/slaves
ls -l
cat yhy.z

当重启服务器后,等待几分钟。

此时我们可以使用nslookup进行验证,这里我在Linux以及win7下均做了验证截图如下

Windows7

Linux

至此已经验证完成(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤,继续进行下一步操作。

修改主服务器配置文件

修改主服务器配置文件,以做更新测试。将SOA记录中的序列号增大,否则辅助服务器无法得知主区域记录发生了改变。

客户机测试

1
2
3
4
service named restart
cd /var/named/slaves
ls -l
cat yhy.z

当重启服务器后,等待几分钟。发现文件大小发生了变化,内容也发生了变化。

使用nslookup测试新增加的记录。

Windows7

Linux

任务三

搭建转发与委派DNS服务器

背景某公司总部在北京,主域名为yhy.com,北京的子域bj.yhy.com也建在主域的DNS服务器上,而要想远在上海的子域sh.yhy.com也能够正常解析主区域的域名,则需要通过转发来实现,而在北京的主机想通过主DNS查询到子域的域名则需要通过委派来实现,具体工程拓扑图如下所示。

备注:

(1)转发:可以分为完全转发和条件转发

①完全转发:将客户端所有DNS查询以递归的方式转发到指定的DNS服务器。

②条件转发:将指定的DNS拓展名的查询转发到指定的DNS服务器。

(2)委派:在Bind中可以将某个子域的查询工作委派给另一个DNS服务器完成。

修改主配置文件

这里如任务一中的一样,修改DNS配置文件/etc/named.conf,使其能够对外提供DNS查询服务。

定义正向查找区域文件

编辑/etc/named.rfc1912.zones文件,添加如下图所示内容

新建区域文件

使用如下命令创建北京主域yhy.com的正向查找区域文件,具体内容如图所示

1
vim /var/named/yhy.z

使用如下命令创建北京子域bj.yhy.com的正向查找区域文件,具体内容如图所示

1
vim /var/named/bj.yhy.z

重启服务

使用service named restart命令重启DNS服务,使修改的配置生效。

为子域名设置转发

修改主配置文件

为子域名设置转发,修改DNS配置文件/etc/named.conf

完全转发

定义正向查找区域文件

编辑/etc/named.rfc1912.zones文件,添加如下图所示内容

条件转发

新建区域文件

使用如下命令创建上海子域sh.yhy.com的正向查找区域文件,具体内容如图所示

1
vim /var/named/sh.yhy.z

重启服务

使用service named restart命令重启DNS服务,使修改的配置生效。

子域的测试配置

修改测试机的IP地址为192.168.30.130,DNS改为192.168.30.129,即子域名的DNS服务器的IP地址。

子域的查询测试

注意在测试之前关掉服务器上的防火墙以及selinux

1
2
serveice iptables stop
setenforce 0

委派设置

在主区域的正向查找域文件内添加如下图所示的内容,即对sh.yhy.com域的查询委派为上海子域192.168.30.129

在这里还需给主域以及子域的named.conf中的两行内容做如下配置

1
2
dnssec-enable no;
dnssec-validation no;

之前为yes,这里把它改为no。

然后service named restart重启DNS服务

委派测试设置

测试机测试

在cmd下用nslookup来进行测试,最终结果如下图所示。

扫码加我微信