第二十一节

bind

正向解析实验

在DNS域名解析服务中,正向解析是指根据域名(主机名)查找到对应的IP地址。也就是说,当用户输入了一个域名后,bind服务程序会自动进行查找,并将匹配到的IP地址返给用户,如图所示。这也是最常用的DNS工作模式。

正向解析技术示意图

第13章 使用Bind提供域名解析服务第13章 使用Bind提供域名解析服务

第1步:编辑区域配置文件。该文件中默认已经有了一些无关紧要的解析参数,旨在让用户有一个参考。可以将下面的参数添加到区域配置文件的最下面。当然,也可以将该文件中的原有信息全部清空,而只保留自己的域名解析信息。

[root@linuxprobe ~]# vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
        type master;
        file "linuxprobe.com.zone";
        allow-update {none;};
};

Tips

配置文件中的代码缩进仅是为了提升阅读体验,有无缩进对参数效果均没有任何影响。

第2步:编辑数据配置文件。可以从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让bind服务程序顺利读取文件内容。

[root@linuxprobe ~]# cd /var/named/
[root@linuxprobe named]# ls -al named.localhost
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
[root@linuxprobe named]# cp -a named.localhost linuxprobe.com.zone

在保存并退出后文件后记得重启named服务程序,让新的解析数据生效。考虑到正向解析文件中的参数较多,而且相对都比较重要,刘遄老师在每个参数后面都作了简要的说明。

[root@linuxprobe named]# vim linuxprobe.com.zone
[root@linuxprobe named]# systemctl restart named
[root@linuxprobe named]# systemctl enable named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
$TTL 1D #生存周期为1天        
@ IN SOA linuxprobe.com. root.linuxprobe.com. (  
  #授权信息开始: #DNS区域的地址 #域名管理员的邮箱(不要用@符号)  
        0;serial #更新序列号
        1D;refresh #更新时间
        1H;retry #重试延时
        1W;expire #失效时间
        3H );minimum #无效解析记录的缓存时间
  NS ns.linuxprobe.com. #域名服务器记录
ns IN A 192.168.10.10 #地址记录(ns.linuxprobe.com.)
www IN A 192.168.10.10 #地址记录(www.linuxprobe.com.)

 

在解析文件中,A记录类型表示将域名指向一个IPv4地址,而AAAA表示将域名指向一个IPv6地址。此外,还有8种记录类型,如表13-2所示,供各位读者日后备查:

表13-2                     域名解析记录类型

记录类型 作用
A 将域名指向一个IPV4地址
CNAME 将域名指向另外一个域名
AAAA 将域名指向一个IPV6地址
NS 将子域名指定其他DNS服务器解析
MX 将域名指向邮件服务器地址
SRV 记录提供特定的服务的服务器
TXT 文本内容一般为512字节,常作为反垃圾邮件的SPF记录
CAA CA证书办法机构授权校验
显性URL 将域名重定向到另外一个地址
隐性URL 与显性URL类型,但是会隐藏真实目标地址

 

第3步:检验解析结果。为了检验解析结果,一定要先把Linux系统网卡中的DNS地址参数修改成本机IP地址(见图13-6),这样就可以使用由本机提供的DNS查询服务了。nslookup命令用于检测能否从DNS服务器中查询到域名与IP地址的解析记录,进而更准确地检验DNS服务器是否已经能够为用户提供服务。

第13章 使用Bind提供域名解析服务第13章 使用Bind提供域名解析服务

图13-6 配置网卡DNS参数信息

[root@linuxprobe named]# nmcli connection up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@linuxprobe named]# nslookup
Name:	www.linuxprobe.com
Address: 192.168.10.10
> ns.linuxprobe.com
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	ns.linuxprobe.com
Address: 192.168.10.10

若解析出的结果不是192.168.10.10,则很有可能是虚拟机选择了联网模式,并由互联网DNS服务器进行了解析。此时应确认服务器信息是否为“Address: 192.168.10.10#53”,即由本地服务器192.168.10.10的53端口号进行解析;若不是,则重启网络后再试一下。

 反向解析实验

在DNS域名解析服务中,反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个IP地址进行反向解析,大致判断出有多少个网站运行在上面。当购买虚拟主机时,可以使用这一功能验证虚拟主机提供商是否有严重的超售问题。图所示为对IP地址所关联的域名信息进行反推。

反向解析技术示意图

第13章 使用Bind提供域名解析服务第13章 使用Bind提供域名解析服务

 

第1步:编辑区域配置文件。在编辑该文件时,除了不要写错格式之外,还需要记住此处定义的数据配置文件名称,因为一会儿还需要在/var/named目录中建立与其对应的同名文件。反向解析是把IP地址解析成域名格式,因此在定义zone(区域)时应该要把IP地址反写,比如原来是192.168.10.0,反写后应该就是10.168.192,而且只需写出IP地址的网络位即可。把下列参数添加至正向解析参数的后面。

[root@linuxprobe ~]# vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
        type master;
        file "linuxprobe.com.zone";
        allow-update {none;};
};
zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.10.arpa";
        allow-update {none;};
};

第2步:编辑数据配置文件。首先从/var/named目录中复制一份反向解析的模板文件(named.loopback),然后把下面的参数填写到文件中。其中,IP地址仅需要写主机位,如图13-8所示。

第13章 使用Bind提供域名解析服务第13章 使用Bind提供域名解析服务

图13-8  反向解析文件中IP地址参数规范

[root@linuxprobe ~]# cd /var/named
[root@linuxprobe named]# cp -a named.loopback 192.168.10.arpa
[root@linuxprobe named]# vim 192.168.10.arpa
[root@linuxprobe named]# systemctl restart named
$TTL 1D        
@ IN SOA linuxprobe.com. root.linuxprobe.com. (
        0;serial
        1D;refresh
        1H;retry
        1W;expire
        3H);minimum
  NS ns.linuxprobe.com.  
ns A 192.168.10.10  
10 PTR ns.linuxprobe.com. #PTR为指针记录,仅用于反向解析中。
10 PTR www.linuxprobe.com.  
20 PTR bbs.linuxprobe.com.  

 

第3步:检验解析结果。在前面的正向解析实验中,已经把系统网卡中的DNS地址参数修改成了本机IP地址,因此可以直接使用nslookup命令来检验解析结果,仅需输入IP地址即可查询到对应的域名信息。

[root@linuxprobe ~]# nslookup
> 192.168.10.10
10.10.168.192.in-addr.arpa	name = www.linuxprobe.com.
> 192.168.10.20
20.10.168.192.in-addr.arpa	name = bbs.linuxprobe.com.
posted @ 2022-03-05 16:09  小蟋帅  阅读(49)  评论(0编辑  收藏  举报