高速缓存区dns

时间:2020-11-28 07:41:56

一、DNS是什么

   DNS:(Domain Name System,域名系统),是互联网上存储域名和IP映射关系的一个分布式数据库,他负责把域名转换为IP地址,或IP转换为域名,工作于OSI应用层之上,DNS运行于UDP/TCP的53端口。其中,负责提供域名解析的为UDP协议的53端口,负责DNS服务器之间的区域传送采用TCP的53端口。

二、BIND是什么

     BIND(Berkeley Internet Name Domain)是DNS的开源实现,由两部分组成:
     a、域名服务器(Name Server):提供域名解析服务
     b、解析器(Resolver):负责发起查询和向调用他的应用返回IP地址或者别名等信息

三、DNS服务器的分类

1)权威名称服务器:存储并提供某区域的实际数据(类型包括:Master和Slave)
2)非权威/递归名称服务器:客户端通过其查找来自权威名称服务器的数据

三、DNS的安装

step1: 
cd /etc/yum.repo/                 ##配置yum源

step2:
vim /etc/yum.repo/
[rhel7.2]
name=rhel7.2
baseurl=file:///rhel7.2           ##/rhel7.2/为已经挂载好镜像的目录
gpgcheck=0 

step3:
yum clean all                     ##清除yum缓存数据

step4:
yum search dns                    ##先查找有关dns的安装包信息

step5:
yum install bind.x86_64 -y        ##开始安装

step6:
sysemctl start named              ##开启服务

step7:
firewall-config                   ##改变防火墙策略,使dns可以访问
或
systemctl stop firewalld          ##关闭火墙

五、DNS中常见的缩写

A

address,将域名解析到IPv4的地址

AAAA

将域名解析到IPv6的地址

PTR

pointer,将IP地址转换为主机的FQDN

CNAME

Canonical name,别名

NS

Name Server ,用来指定操作DNS服务器的名称,需注意的是,不可以用IP地址来表示

六、DNS解析

1)静态解析

a、正向解析:输入域名得到相应的ip
1> vim /etc/named.conf          
##改变配置文件,使dns可以接受访问(listen-on port 53)和回答(allow-query)以及询问他人(forwarders)

高速缓存区dns

2>  vim /etc/resolve.conf             ##指定dns服务器,本机即可

高速缓存区dns

3>:检查服务端和客户端的防火墙是否关闭,在防火墙开着的情况下,检查防火墙策略是否加载成功
4> vim /etc/named.rfc1912.zones     ##编辑域名文件

高速缓存区dns

5> cp -p /var/named/named.localhost /var/named/westos.com.zone           
   vim /var/named/westos.com.zone  ##使用模板,编辑正向解析文件

高速缓存区dns

6>:  systemctl restart named ##重启服务
7>:  dig +域名 ##进行解析

正向解析结果:
高速缓存区dns

第一次访问:

dig www.baidu.com           ##首次访问所需的时间长

高速缓存区dns

第二次访问:

dig www.baidu.com           ##载次访问所需的时间明显减短

高速缓存区dns

   上面dig操作得到的www.baidu.com的IP地址是通过forwarders:172.25.254.8进行的一次查询,如果,是本地解析的话,只需要,将www.baidu.com的IP地址自定义写在相应的文件中即可完成一次查询~
   下面的实验,我们就来操作操作~
step1:将/etc/named.conf下的forwarders这一行注释掉,或者直接删除

高速缓存区dns

step2: cd /var/named/         
       cp -p named.localhost westos.com.zone   ##注意此文件的权限十分特殊,所以,在复制的过程中,一定要加上参数p
step3: vim westos.com.zone        ##编辑本地解析文件

本地解析1>合法操作下:
高速缓存区dns

本地解析:dig www.westos.com
高速缓存区dns
解析的结果为:172.25.254.222,解析成功!
本地解析2>域名不合法时:
高速缓存区dns

systemctl restart named     ##重启服务

高速缓存区dns
CNAME:将不合法的名称(bbs.westos.com)转化为合法的名称(news.westos.com),从而进行查询,其结果为:172.25.254.111,解析成功!

本地解析3>IP轮叫机制

高速缓存区dns

systemctl restart named     ##重启服务
第一次解析:dig news.westos.com     ##解析结果为:172.25.254.111

高速缓存区dns

第二次解析:dig news.westos.com         ##解析结果为:172.25.254.123

高速缓存区dns

b、反向解析
1> vim /etc/named.rfc1912.zones   ##编辑域名文件

高速缓存区dns

2> cp -p /var/named/named.loopback /var/named/westos.com.ptr
    vim /var/named/westos.com.ptr

高速缓存区dns

systemctl restart named           ##重启服务

高速缓存区dns
dns将172.25.254.208解析为heihei.westos.com,与原文件相符,解析成功!

C、双向解析
    双向解析的插话:为了缓解外网的压力,实现多台服务器公共作业,分为内网和外网,以此类推,也可以扩展为多向解析
1> vim /etc/named.conf     

##编辑dns的主配置文件,实现不同的用户看到不同的文件,在这里,我们使用命令view,文件其他内容不变,在文末添加如下图所示代码,第一部分的localnet为内网,这里指定IP172.25.254.208(即本机),通过此IP访问的用户查看的是:/etc/named.rfc1912.zones这个文件;通过其他IP访问的用户查看的是:/etc/named.rfc1913.zones

高速缓存区dns

2> cp -p /etc/named.rfc1912.zones /etc/named.rfc1913.zones

   vim /etc/named.rfc1913.zones    ##将file中的westos.com.zone改成westos.com.inter

高速缓存区dns

3> cp -p /var/named/westos.com.zone /var/named/westos.com.inter
   vim /var/named/westos.com.inter   ##为了实验效果更加明显,将所有的172.25.254转换为1.1.1%s/172.25.254/1.1.1/g 

高速缓存区dns

4> 在另一台主机,设定其dns172.25.254.208,然后进行dig解析

高速缓存区dns
高速缓存区dns

5> IP172.25.254.208的机子上进行解析:dig www.westos.com

高速缓存区dns
通过实验对比可以看出:172.25.254.208看的是/var/named/westos.com.zone这个文件,而其他的外网用户则看的是/var/named/westos.com.inter这个文件

D、解析集群

1)主服务器为:Master
辅助服务器为:Slave

step1: 在辅助服务器端将DNS改为自己的主机IP,安装DNS,关闭防火墙,或者在防火墙开启的状态下,写防火墙策略
step2: vim /etc/named.rfc1913.westos.zones  ##编写dns的主从复合关系

高速缓存区dns

step3: dig www.westos.com   ##辅助服务器端

主服务器/var/named/westos.com.inter:
高速缓存区dns

辅助服务器解析www.westos.com:
高速缓存区dns
解析完全正确,说明辅助dns搭建成功!

   更改的问题:在主服务器如果更新了数据,辅助服务器不能及时的更新数据,从而,会出现相同的问题两个答案的现象,为了避免这个问题的出现,必须在主服务器数据更新后,及时地告知辅助服务器,这样的DNS集群才称的上是合法的!下面,我们就来介绍这一套操作~
1> vim /etc/named.rfc1913.zones     ##主服务器端

高速缓存区dns

2> vim /var/named/westos.com.inter     ##主服务器端

高速缓存区dns
将news.westos.com的IP改为1.1.1.123,并且,要改变serial的值,最多为10位
高速缓存区dns

3> dig news.westos.com     ##辅助服务器端

高速缓存区dns

4> systemctl restart named    ##主服务器端
5> dig news.westos.com     ##辅助服务器端

高速缓存区dns
实时同步完成~

2)动态解析DDNS

    在这里先给大家介绍一款收费软件:花生壳(Oray)

高速缓存区dns
高速缓存区dns
高速缓存区dns

   花生壳的工作机理其实就是DDNS(Dynamic Domain Name Server:动态域名服务),让dhcp去分配IP给开启DHCP服务的机子,然后,便可以通过DNS来找到这台机子的域名(或IP),下面,我们就来操作一下,看看如何自己动手搭建一款"花生壳"
    首先,要有两台虚拟机,其中一台为服务端,另一台为客户端:

 1) 服务端需要搭建DHCP和DNS服务:
  yum intall dhcp bind -y           ##yum源配好的前提下,进行下载
  systemctl start named             ##开启dns服务
  systemctl enable named            ##设置开机启动

  systemctl start dhcpd             ##开启dhcp服务
  systemctl enable dhcpd            ##设置开机启动

 2)客户端只需要将获取IP的方式设置为DHCP即可:
  vim /etc/sysconfig/network-script/ifcfg-westos
  NAME=westos
  BOOTPROTO=dhcp
  ONBOOT=yes
  DEVICE=eth0
  :wq
  systemctl stop NetworkManager.service
  systemctl restart network

 3)关闭两台虚拟机的防火墙 
    systemctl stop firewalld  

step1:

在服务端修改以下内容:

  vim /etc/named.conf

高速缓存区dns

vim /etc/named.rfc1912.zones

高速缓存区dns

   cd /var/named
   ls
   cp -p named.localhost westos.com.zone
   vim westos.com.zone

高速缓存区dns

dig dns.westos.com    ##先检测本机dns解析是否正确

高速缓存区dns

本机解析成功后,再建立加密实现dns解析:

chmod g+w /var/named       
setsebool -P named_write_master_zones on
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
cp -p /etc/rndc.key /etc/westos.key
cat /etc/westos.key

高速缓存区dns

vim /etc/westos.key 

高速缓存区dns

vim /etc/named.conf

高速缓存区dns

step2:

nsupdate:测试key是否更新成功

nsupdate -k Kwestos.+157+57326.private
>server 172.25.254.108
>update add haha.westos.com 86400 A 172.25.254.111
>send
>quit

高速缓存区dns

  dns加密解析成功后,再继续设置dhcp服务,到这里,才有可能真正意义上实现"花生壳"的作用~

编辑dhcp的配置文件:
高速缓存区dns
高速缓存区dns

step3:

dhcp自动分配查看是否成功:
客户端成功获取到了来自dhcp的IP:172.25.254.201
高速缓存区dns

在服务端dig客户端的域名可以正确解析到他的IP
高速缓存区dns

至此,DDNS服务搭建成功~