0231
DNS服务简介
为了便于记忆,计算机用户通常使用主机名访问网络中的主机,然而计算机系统不能直接识别主机名,因此需要一种将主机名转换为IP的机制。操作系统中可以使用hosts文件实现IP地址和主机名之间的翻译,如Linux系统中使用/etc/hosts文件、Windows Server系统中使用%SystemRoot%\system32\drivers\etc\hosts文件。当一台主机需要定位网络中的另一台主机时,就查看hosts文件
DNS工作原理
1.正向解析与反向解析
当DNS客户机向DNS服务器提交域名查询IP地址,或DNS服务器向另一台DNS服务器提交域名查询IP地址,DNS服务器作出响应的过程称为正向解析。反之,当DNS客户机向DNS服务器提交IP地址查询域名,DNS服务器作出响应的过程称为反向解析。
2.递归查询与迭代查询
(1)递归查询
收到客户机查询请求后,DNS服务器在自己的缓存或区域数据库中查找,如找到则返回结果;如找不到,DNS服务器指向转发器定义的其他DNS服务器进行查询,最终将查询结果返回给客户机
(2)迭代查询
DNS服务器收到客户机的请求后,若没有查到,则将请求发给根域DNS服务器,依序从根域查到顶级域,从顶级域查到二级域,再从二级域查到三级域,以此类推直至找到要解析的地址或域名,然后向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到信息后转发给客户机。如果最终都没有找到所需的信息,则向客户机返回错误信息
前期准备
创建虚拟机
首先创建两台虚拟机,一台作为DNS服务器,一台作为DNS客户端。
IP地址划分
DNS服务器 | 192.168.0.130 |
DNS客户端 | 192.168.0.131 |
服务器配置
安装DNS软件包,配置服务
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux
yum install -y bind #安装DNS软件包
systemctl start named #启动服务
systemctl enable named #开启服务开机自启动
修改主配置文件name.conf
主配置文件named.conf中,需要修改的参数有两个:
listen-on port 53:将大括号内监听IP地址修改为当前主机的IP地址:
listen-on port 53 { 192.168.0.130; };
allow-query:将大括号内的参数修改为any,即允许网络中所有的主机能够通过本DNS服务器查询:
allow-query { any; };
修改完毕,保存退出
[root@localhost ~]# vi /etc/named.conf
[root@localhost ~]# cat /etc/named.conf
listen-on port 53 { 192.168.0.130; };
allow-query { any; };
扩展配置文件named.rfc1912.zones
在文件末尾,增加一个正向区域、一个反向区域,然后保存退出:
[root@localhost ~]# vi /etc/named.rfc1912.zones
#文件末尾添加
zone "sdcet.cn" IN {
type master;
file "sdcet.cn.zone"; #sdcet可替换,sdcet为域名
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.zone";
allow-update { none; }; #0.168.192为当前主机网段
};
配置正向解析文件sdcet.cn.zone
[root@localhost ~]# cp -p /var/named/named.localhost /var/named/sdcet.cn.zone
[root@localhost ~]# vi /var/named/sdcet.cn.zone #修改该配置文件,如下
$TTL 1D
@ IN SOA dns.sdcet.cn. admin.sdcet.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.sdcet.cn.
IN MX 5 mail.sdcet.cn.
dns IN A 192.168.0.130
www IN A 192.168.0.130
mail IN A 192.168.0.130
ftp IN A 192.168.0.130
oa IN A 192.168.0.130
web IN CNAME www
配置反向解析文件0.168.192.zone
[root@localhost ~]# cp -p /var/named/named.loopback /var/named/0.168.192.zone
[root@localhost ~]# vi /var/named/0.168.192.zone #修改该配置文件,如下
$TTL 1D
@ IN SOA dns.sdcet.cn. admin.sdcet.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.sdcet.cn.
130 IN PTR dns.sdcet.cn.
130 IN PTR www.sdcet.cn.
130 IN PTR mail.sdcet.cn.
130 IN PTR ftp.sdcet.cn.
130 IN PTR oa.sdcet.cn.
重启服务
[root@localhost ~]# systemctl restart named
客户端配置
配置服务器地址
修改/etc/resolv.conf文件,配置客户机DNS服务器IP地址:
[root@localhost ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.130
domain sdcet.cn
search sdcet.cn
DNS服务测试
1、ping命令
直接使用ping命令测试某一域名,如果DNS服务器正常工作,将自动对其进行解析并返回测试结果。
[root@localhost ~]# ping www.sdcet.cn
PING www.sdcet.cn (192.168.0.130) 56(84) bytes of data.
64 bytes from www.sdcet.cn (192.168.0.130): icmp_seq=1 ttl=64 time=0.800 ms
2、host命令
使用host命令测试正向解析:
[root@localhost ~]# host www.sdcet.cn
www.sdcet.cn has address 192.168.0.130
使用host命令测试反向解析:
[root@localhost ~]# host 192.168.100.10
130.0.168.192.in-addr.arpa domain name pointer www.sdcet.cn.
130.0.168.192.in-addr.arpa domain name pointer dns.sdcet.cn.