linux下DNS配置及域名解析服务

∥☆過路亽.° 提交于 2019-12-02 03:31:43

一.DNS(Domain Name System,域名系统)

       因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

      DNS 服务器将域名解析出来,找到域名对应的ip地址的服务,可以高速缓存从其他 DNS 服务器收到的 DNS 记录。 也可以在 DNS 客户服务中使用高速缓存,将其作为 DNS 客户端保存在最近的查询过程中得到的信息高速缓存的方法。 可以提高解析速度。

 

二.配置实验环境

 

1.安装DNS服务;

  yum install bind.x86_64 -y   利用yum将DNS服务下载下来


2.firewall-config                     打开防火墙图形设置开启dns服务,将Configuration旁下拉勾选Permanent,然后勾选dns :

然后点击Options下的Reload Firewalld重新加载防火墙

3.firewall-cmd --list-all             查看是否修改成功,如图所示,dns服务已被防火墙允许:

 


4.systemctl restart named       重新启动dns服务
5.netstat -antlpe | grep named 查看53接口是否打开,下图表示53接口未对本机打开:

6.vim /etc/named.conf             编辑dns配置文件,将接口打开:

7.systemctl restart named        重启服务让修改生效
8.netstat -antlpe | grep named  再次查看53接口是否被打开,由下图可知,已经打开:

9.vim /etc/resolv.conf               将dns设置为本机ip

 

dns服务安装配置完成


 

三.下面简单介绍一下dns的域名解析服务:

 

DNS 总揽

权威名称服务器

存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。

权威名称服务器的类型包括 
Master : 包含原始区域数据。有时称作 “主要 ”名称服务器 
Slave : 备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “次要 ”名称服务器

非权威 / 递归名称服务器

– 客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括 
存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性

DNS 查找

客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端,否则 , 如果名称服务器在其缓存中有请求的信息 , 则会将非权威答案发送至客户端,如果缓存中没有信息 , 名称服务器将搜索权威名称服务器以查找信息 , 从根区域开始 , 按照DNS 层次结构向下搜索, 直至对于信息有具有权威性的名称服务器 , 以此为客户端获得答案。在此情况中,名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找。

DNS资源记录

DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型。 
– A : 名称至 IPv4 地址 
– AAAA : 名称至 IPv6 地址 
– CNAME : 名称至 ”规范名称 “ ( 包含 A/AAAA 记录的另一个名称 ) 
– PTR : IPv4/IPv6 地址至名称 
– MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 ) 
– NS : 域名的名称服务器 
– SOA :” 授权起始 “ , DNS 区域的信息 ( 管理信息 )

DNS排错

• 它显示来自 DNS 查找的详细信息 , 其中包括为什么查询失败 : 
– NOERROR : 查询成功 
– NXDOMAIN : DNS 服务器提示不存在这样的名称 
– SERVFAIL : DNS 服务器停机或 DNSSEC 响应验证失败 
– REFUSED : DNS 服务器拒绝回答 ( 也许是出于访问控制原因 )

dig输出的部分内容

• 标题指出关于查询和答案的信息 , 其中包括响应状态和设置的任何特殊标记 ( aa 表示权威答案 , 等等 ) 
– QUESTION : 提出实际的 DNS 查询 
– ANSWER : 响应 ( 如果有 ) 
– AUTHORITY : 负责域 / 区域的名称服务器 
– ADDITIONAL : 提供的其他信息 , 通常是关于名称服务器 
– 底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间

缓存 DNS 服务器

BIND 是最广泛使用的开源名称服务器,在 RHEL 中 , 通过 bind 软件包提供防火墙开启端口 53/TCP 和 53/UDP。BIND 的主配置文件是 /etc/named.conf 。/var/named 目录包含名称服务器所使用的其他数据文件

/etc/named.conf 的语法

• // 或 # 至行末尾是注释 ; /* 与 */ 之间的文本也是注释 ( 可以跨越多行 ) 
• 指令以分号结束 (;) 
• 许多指令认为地址匹配列表放在大括号中、以CIDR 表示法表示的 IP 地址或子网列表中 , 或者命名的 ACL 中 ( 例如 any; [ 所有主机 ] 和none; [ 无主机 ] )。 
• 文件以 options 块开始 , 其中包含控制 named如何运作的指令。 
• zone 块控制 named 如何查对于其具有权威性的根名称服务器和区域。

 


##(1)正向解析:通过域名,找到ip地址
1.cd /var/named/         切换到/var/named/目录下
2.cp -p named.localhost hk.com  将named.localhost里的内容复制生成新文件为hk.com (文件名自定义):
3.vim /hk.com   编辑文件如下图所示:

4.vim /etc/named.rfc1912.zones    编辑文件,将如下信息编辑到文件中:

5.systemctl restart named              重启服务让修改生效
6.测试
dig news.hk.com                           输入域名让dns解析出ip:

dig www.hk.com                            解析第二个域名:



###(2)反向解析:解析ip找到与之对应的域名
1.cd /var/named/                              切换到/var/named/目录下
2.cp -p named.loopback hk.com.ptr   复制named.loopback生成hk.com.ptr文件

 

3.vim /hk.com.ptr                              编辑文件如图所示:


4.vim /etc/named.rfc1912.zones  编辑文件如图所示:

5.systemctl restart named                 重启服务让修改生效
6.测试

 

 

dig -x 172.25.254.121                       解析第一个ip :

 

 

dig -x 172.25.254.122             接着解析第二个ip,解析出来的域名与之前编辑的文件内容一致:

 

 


###(3)解析反馈设置(给予不同ip用户不同答案)
1.cd /var/named/                      切换到/var/named/目录下
2.cp -p hk.com hk.com.net       复制生成hk.com.net文件

 

 

3.vim /hk.com.net                     编辑文件如图所示:


4.cp -p /etc/named.rfc1912.zones /etc/named.rfc1916.zones   复制产生一个新的文件/etc/named.rfc1916.zones
5.vim /etc/named.rfc1916.zones  编辑文件如图所示:

6.vim /etc/named.conf           编辑文件如图所示,给予不同ip用户不同答案,将文件中51到58行注释掉:

 

 

 

然后编辑内容59到80行,如图所示,只有172.25.254.21能够看到/etc/named.rfc1912.zones文件中解析出来的ip,其他ip用户可以看到

/etc/named.rfc1916.zones文件中解析出来的ip地址:

7.systemctl restart named       重启服务,让修改生效

 

8.测试 

 

在ip为172.25.254.21的主机上编辑文件vim /etc/resolv.conf,将本机ip作为172.25.254.21的主机的dns:

 

 

在ip为172.25.254.21的主机上访问 www.hk.com,成功解析出来ip,与之前文件中一致:

 


本机自己访问 www.hk.com  和ip为172.25.254.21所看到解析出来的ip不同,说明配置成功:



###(4)dns集群:增加一个或多个主机一起解析,缓解主机压力(这次添加一台主机)

 

1.在ip为172.25.254.221的主机上下载dns服务,并在防火墙设置中允许运行服务:

firewall-config                         打开防火墙配置服务

firewall-cmd --list-all                查看修改后被允许的服务信息:

2.vim /etc/named.rfc1912.conf   编辑文件,将如图所示内容编辑到文件中:

 

3.vim /etc/named.conf               修改文件,如图所示:

4.将/var/named/slaves/目录下的文件删除
5.systemctl restart named       重启服务,让修改生效

 

6.查看/var/named/slaves/中是否有新的内容,可以看到本机的hk.com.net文件在目录下,说明配置没有问题:

 


###(5)同步:让两台或多台主机在进行域名解析时,所给出的答案一致
1.vim /var/named/hk.con.net  修改文件中的参数,将之前www对应的122改为124,看ip为172.25.254.221主机是否能够同步:

3.systemctl restart named            重启本机dns服务,让修改生效

 

 

4.dig www.hk.com                       本机查看信息是否修改,如图已经修改:


3.在ip为172.25.254.221主机,dig www.hk.com   查看信息是否与本机同步:

解析一致,同步成功

(6)加密key更新:(为了提升dns解析服务的安全性,需要进行加密更新配置,拥有密钥的的ip主机才能够对本机进行更新)
1.dnssec-keygen -a HMAC-MD5 -b 128 -n HOST hongk     生成密钥
2.cat Khongk.+157+06432.key                                  查看密钥密码:

3.cp /etc/rndc.key /etc/hongk.key -p             生成dns的加密文件

 

 

4.vim /etc/hongk.key                          编辑加密文件,如图所示:


5.vim /etc/named.conf          指定dns服务读取的key文件:

 

 

6.vim /etc/named.rfc1912.zones      编辑文件,指定更新域为hongk,如图所示:


7.scp Khongk.+157+06432./* root@172.25.254.221:/mnt 将密钥发送给ip为i172.25.254.221的主机:
8.在本机配置DHCP服务:
vim /etc/dhcp/dhcpd.conf                编辑文件,如图所示:

 

 

继续编辑,将加密信息编辑到dhcp配置文件中:

 

9.systemctl restart dhcpd 重启dhcp服务

   systemctl restart named 重启dns服务

10.给本机/var/named/目录修改权限:chmod g+w /var/named/

11.测试:

将一台主机的主机名改为music.hk.com,设置为dhcp模式获取ip,获取到的ip为172.25.254.55,为上面dhcp配置文件中的地址池ip:

然后在本机 dig music.hk.com  可以解析到陌生主机名的ip:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!