【搭建要求】
搭建一个dns服务(dns解析域假设为demo.com)
功能要求如下:
DNS服务器,也称为域名解析服务器,是用来将互联网上的域名解析为IP地址的一类服务器,在世界上有成百上千台DNS服务器。对于有些公司来说,对于同一个域名可能有多个DNS服务器,这样可以降低主域名服务器的负载。例如www.baidu.com,可能会存在多个DNS服务器,因为在同一时刻可能有成百上千台主机同时请求www.baidu.com这个域名,如果只有一台DNS服务器,可能在某一时刻会拒绝服务。因此会建多个DNS服务器,分布于世界各地,这样也可以避免由于自然灾害而对域名服务器造成损坏。
本次实验需要三台Linux主机,一台作为主DNS服务器,一台作为从属DNS服务器,还要一台作为DNS客户端。并且三个Linux主机必须处于同一网段,可以互相ping通。主DNS服务器的IP地址为192.168.191.130,从属DNS服务器的IP地址为192.168.191.131,客户机的DNS服务器的IP地址为192.168.191.132。三个必须都是静态的。
(1):修改/etc/sysconfig/network-scripts/ifcfg-ens33
文件
修改内容如下
按照如上方法,将主DNS服务器的IP地址设为192.168.191.130,从属DNS服务器的IP地址设为192.168.191.131,客户机的DNS服务器的IP地址设为192.168.191.132。
(2)分别重启三个主机的网络服务
# systemctl restart network
(3)测试三台主机的连通性
三台主机互相ping另外两台主机,一定要ping通,否则做下去没有意义。
(1):安装bind包
# yum install bind -y
(2):修改主配置文件
# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
allow-query { any; };
recursion yes; //递归
forwarders {192.168.191.2; }; //向上级解析
};
zone "demo.com" IN {
type master;
file "demo.com.zone";
};
zone "191.168.192.in-addr.arpa" IN {
type master;
file "192.168.191.zone";
};
include "/etc/named.rfc1912.zones";
# include "/etc/named.root.key"; //这里要注释掉
(3):检测修改后的主配置文件是否正确
没有报错,说明修改后的配置文件并没有错误。
(4):新建一个正向区域配置文件demo.com.zone(注意改配置文件的名字与上面第二步指定的正向配置文件要一致)
[root@localhost ~]# vim /var/named/demo.com.zone
$TTL 1D
@ IN SOA demo.com. root.demo.com. (
0 ;serial #更新序列号
1D ;refresh #更新时间
1H ;retry #重试延时
1W ;expire #失效时间
3H) ;minimum #无效解析记录的缓存时间
@ IN NS ns1.demo.com.
IN MX 10 mail.demo.com.
ns1 IN A 192.168.191.130
www IN A 192.168.191.131
www IN A 192.168.191.132
www IN A 192.168.191.133
* IN A 192.168.191.131
ftp IN A 192.168.191.134
mail IN A 192.168.191.135
vod IN CNAME ftp.demo.com.
news IN CNAME www.demo.com.
$TTL——生存时间(1D=1天) SOA表明授权信息开始记录
(5):检测修改后的正向区域配置文件是否正确
[root@localhost named]# cd /var/named
[root@localhost named]# named-checkzone demo.com demo.com.zone
zone demo.com/IN: loaded serial 0
OK
OK表明正向区域配置文件没有错误
(6):新建反向区域配置文件191.168.192.in-addr-arpa 为了方便,可以将正向区域配置文件拷贝然后进行修改
[root@localhost named]# cd /var/named
[root@localhost named]# cp demo.com.zone 192.168.191.zone
[root@localhost named]# vim 192.168.191.zone
$TTL 1D
@ IN SOA demo.com. root.demo.com. (
0 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H) ;minimum
@ IN NS ns1.demo.com.
130 IN PTR ns1
131 IN PTR www.demo.com.
132 IN PTR www.demo.com.
133 IN PTR www.demo.com.
134 IN PTR ftp.demo.com.
135 IN PTR mail.demo.com.
134 IN PTR vod.demo.com.
131 IN PTR news.demo.com.
(7):检测修改后的反向配置文件是否正确
[root@localhost named]# named-checkzone 191.168.192.in-addr.arpa 192.168.191.zone
zone 191.168.192.in-addr.arpa/IN: loaded serial 0
OK
Ok表明文件并没有错误
(8)重启DNS服务,使刚才的配置文件生效
[root@localhost named]# systemctl restart named
(9)修改ens33配置文件(修改DNS1和DNS2的值)
修改后的文件内容如下
DNS1的IP地址为主域名服务器的IP地址(192.168.191.130)
DNS2的IP地址为从属域名服务器的IP地址(192.168.191.131)
(10):重启网络服务,使刚才的修改生效
[root@localhost named]# systemctl restart network
(11):查看DNS的IP地址
[root@localhost named]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.191.130
nameserver 192.168.191.131
可以看到此时的DNS服务器分别为192.168.191.130和192.168.191.131,说明刚才的配置已经生效。
做到这一步,先不要着急着往下做,先在客户机上查看DNS解析是否正确,如果正确,再配置从属DNS服务器,如果不成功,则检查之前的错误
(1):修改ens33配置文件(修改DNS1和DNS2的值)
DNS1的IP地址为主域名服务器的IP地址(192.168.191.130)
DNS2的IP地址为从属域名服务器的IP地址(192.168.191.131)
(2):重启网络服务,使刚才的修改生效
[root@localhost named]# systemctl restart network
(3):查看DNS的IP地址
[root@localhost named]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.191.130
nameserver 192.168.191.131
(4):在客户机上查看主DNS服务器的解析是否正确
[root@localhost ~]# nslookup www.demo.com
Server: 192.168.191.130
Address: 192.168.191.130#53
Name: www.demo.com
Address: 192.168.191.131
Name: www.demo.com
Address: 192.168.191.132
Name: www.demo.com
Address: 192.168.191.133
上图表明DNS服务器的解析是正确的
这里如果输入命令后,未找到命令,需要先安装工具包
[root@localhost ~]# yum install bind-utils -y
如果没有可用包,请尝试其他yum源,这里机器比较多,我直接做了一个http的yum源
接下来就可以进行从属DNS服务器的配置了
(1):安装bind
# yum install bind -y
(2)修改配置文件
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1;192.168.191.131; };
directory "/var/named";
allow-query { 0.0.0.0/0; };
recursion yes; //递归
forwarders {192.168.191.2; }; //向上级解析
};
zone "demo.com" IN {
type slave;
file "slaves/demo.com.zone";
masters { 192.168.191.130; };
};
zone "191.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.191.zone";
masters { 192.168.191.130; };
};
include "/etc/named.rfc1912.zones";
# include "/etc/named.root.key";
下面三张图片和上图一样,只是为了说明一些内容而已(图片中配置有问题,以上面内容为准)
上图是全局配置部分,53为默认端口,192.168.191.131为从属DNS域名服务器,allow-query { 0.0.0.0/0; };表明允许所有的IP查询
上图是正向区域配置部分,demo.com 为域名后缀,type slave表明这是从属服务器,file指定文件存储目录,masters{ 192.168.191.130 } 指明了主DNS服务器的IP地址。( file “slaves/demo.com.zone”;)
上图是反向区域配置部分,其含义与正向区域配置部分含义相同。(191.168.191192.in-addr.arpa; file “slaves/192.168.191.zone”
(3):检测配置文件是否正确
没有输出结果,说明配置文件没有错误
(4):查看主域名服务器同步传送过来的文件(经过实践证明不需要在住域名服务器中修改配置文件,可以自动同步传送)
(5):重启DNS服务
[root@localhost slaves]# systemctl restart named
(6)再次查看主域名服务器传送过来的数据
此时,已经有文件传送过来了,分别是正向区域解析的文件和反向区域解析的文件,但是文件加密无法查看。
5.验证
由于之前测试主域名服务器解析时已经配好了客户端,现在可以直接测试。
(1):正向解析(若不指定DNS域名服务器,则默认向主域名服务器发起解析)
(2):正向解析(指定DNS域名服务器)
(3):反向解析
通过IP地址解析出来域名,说明反向解析也配置成功了。
至此,DNS域名服务器的配置就成功了!
(4):外部中转
这里130 是本来不会解析到baidu.com ,所以想要解析外部域名,就需要上级dns求助,这里向192.168.191.2(网关)递归。