RedHat Linux 8 中DNS服务器部署

关于dns的名词解释
dns:domain name service(域名解析服务)

关于客户端:
/etc/resolv.conf ,dns指向文件
在这里插入图片描述
host www.baidu.com ,地址解析命令
在这里插入图片描述
dig www.baidu.com,地址详细解析信息命令
RedHat Linux 8 中DNS服务器部署_第1张图片
A记录 ,ip地址叫做域名的Address 记录
在这里插入图片描述
SOA ,授权起始主机
dns顶级的种类是:“ . ”,点的个数最多是13个
次级:.com、 .net、 .edu、 .org …


DNS服务端安装

安装包的名称是bind
RedHat Linux 8 中DNS服务器部署_第2张图片
RedHat Linux 8 中DNS服务器部署_第3张图片
服务名称是:named.service
在这里插入图片描述
DNS服务主配置文件:/etc/named.conf

数据目录:/var/named

端口 :53
RedHat Linux 8 中DNS服务器部署_第4张图片
关于报错信息:
1.no servers could be reached ,服务无法访问,出现这个问题需要关注的是(服务是否开启?火墙是否添加服务?网络通畅?端口是否添加?)
2.服务启动失败,配置文件写错 journalctl -xe查询错误
3.dig 查询状态

状态 说明
NOERROR 查询成功
REFUSED 服务拒绝访问
SERVFAIL 查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN 此域名A记录在dns中不存在

DNS服务的启用设定

systemctl enable --now named,启动服务并设置开机自启
firewall-cmd --permanent --add-service=dns,在火墙里添加dns服务
在这里插入图片描述
firewall-cmd --permanent --add-port=53/tcp,在火墙里添加53端口
在这里插入图片描述
编辑服务的配置文件:vim /etc/named.conf
listen-on port 53 { any; }; 在本地所有网络接口上开启53端口
allow-query { any; }; 允许查询A记录的客户端列表
dnssec-validation no; 禁用dns检测,使dns能够缓存外部信息到本机
RedHat Linux 8 中DNS服务器部署_第5张图片
RedHat Linux 8 中DNS服务器部署_第6张图片
设置完后重启服务:systemctl restart named

完成上述操作后可以使用另一台主机来测试,更改测试主机的/etc/resolv.conf 文件里的 nameserver 后面的IP改为开启DNS服务主机的IP
在这里插入图片描述
然后 dig www.baidu.com 来测试,就可以正常显示了
RedHat Linux 8 中DNS服务器部署_第7张图片


高速缓存dns

我们使用自己架设的dns服务器去查看网站时
RedHat Linux 8 中DNS服务器部署_第8张图片
可以看到用了3272毫秒才看到,为了降低这种问题的出现,我们在开启dns服务的主机里添加配置
编辑:vim /etc/named.conf
写入配置:forwarders { 114.114.114.114; };,表示在服务主机里如果没有这个信息时直接去114查询答案
RedHat Linux 8 中DNS服务器部署_第9张图片
然后重启服务,去测试主机里访问网站,可以看到速度就变的很快
RedHat Linux 8 中DNS服务器部署_第10张图片


dns的正向解析

正向解析就是我们可以自己去设置一个域名的解析方式,在别人来访问我们的域名时可以去做A记录的解析,如我们去dig www.baidu.com 一样
正常我们写解析时应该直接在主配置文件里去写,但是为了规范管理,系统将zone文件单独放到了 /etc/named.rfc1912.zones 里
RedHat Linux 8 中DNS服务器部署_第11张图片
所以编辑 /etc/named.rfc1912.zones去写我们的正向解析,在这个文件里也是有系统给我们的模板的,我们复制模板直接去改就行
RedHat Linux 8 中DNS服务器部署_第12张图片
写入的内容如下:

zone "test.com" IN {
         #维护的域名,一般就是公司的域名
        type master;	#当前的服务器主dns
        file "test.com.zone";	#域名A记录文件
        allow-update {
      none; };		#允许更新主机列表
 };

在目录cd /var/named/ 里有 “named.localhost” 这个文件,就是我们zone文件的模板,因为涉及权限和拥有组等不同的设定,直接去复制这个文件及它本身的属性并且命名为test.com.zone: cp -p named.localhost test.com.zone
RedHat Linux 8 中DNS服务器部署_第13张图片
然后编辑文件在里面写入我们需要的配置

$TTL 1D		#Time To Live域名解析记录在DNS服务器中的存留时间
@       IN SOA  dns.test.com. root.westos.com (
                                        0       ; serial	#这个值在每次修改此配置文件后都需要修改,并且数字只能增加,最大支持10位数,可以直接设置为2020031401这样的格式
                                       1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.test.com.
dns             A       192.168.43.10	
www             CNAME   test.a.test.com.	#规范域名
test.a          A       192.168.43.110		#正向解析记录
test.a          A       192.168.43.111		
test.com.       MX 1    192.168.0.10.		#邮件解析记录

写完后重启服务 systemctl restart named
我们还需要安装邮件服务去查看邮件解析记录

dnf install postfix -y
systemctl enable --now postfix
dnf install mailx -y
netstat -antlupe | grep 25

查询正向解析:dig www.test.com
RedHat Linux 8 中DNS服务器部署_第14张图片
邮件解析记录查询:dig -t mx westos.com
先用其他主机去给test.com台主机发一个邮件,就可以看到
在这里插入图片描述
我们设定的A记录也可以直接去访问,就像baidu里的 news.baidu.com、wenku.baidu.com 一样
RedHat Linux 8 中DNS服务器部署_第15张图片


dns的反向解析

正向解析是在访问域名时会解析到我们的主机IP
反向解析是通过访问IP去解析我们的域名:dig -x 192.168.43.111,没有做反向解析之前查询的PTR值是空的
RedHat Linux 8 中DNS服务器部署_第16张图片
首先编辑文件vim /etc/named.rfc1912.zones 写入配置

zone "43.168.192.in-addr.arpa" IN {
     
type master;
file "192.168.43.ptr";
allow-update {
      none; };
};

切换路径 cd /var/named/ ,复制named.loopback文件
cp -p named.loopback 192.168.43.ptr
编辑:vim 192.168.0.ptr

$TTL 1D
@       IN SOA  dns.test.com. root.test.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.test.com.
dns     A       192.168.43.20
110     PTR     test.a.test.com.  #反向解析记录
111     PTR     test.a.test.com.

重启服务,使用另一台主机测试 :dig -x 192.168.43.110
RedHat Linux 8 中DNS服务器部署_第17张图片
可以看到反向解析的A记录就出现了


dns的双向解析

在日常使用中如办公环境下,我们对于dns的设定可能会出现两种不同的需求,对外和对内的区别,我们谁当一个网段可以让其他外界客户来访问我们的服务,对于内部设定另一个网段来使用,那就需要保证两个网段查看到的内容都是各自的不会发生冲突
这种设定,我们测试时需要布置3台主机,
实验环境:
客户端2台:
一台IP是192.168.43.20
RedHat Linux 8 中DNS服务器部署_第18张图片
一台IP是172.25.254.30
RedHat Linux 8 中DNS服务器部署_第19张图片

服务端1台2个网段的ip:
192.168.43.10
172.25.254.10
RedHat Linux 8 中DNS服务器部署_第20张图片
在192.168.43网段的客户主机中:vim /etc/resolv.conf
写入 nameserver 192.168.43.10

在172.25.254网段的客户主机中:vim /etc/resolv.conf
写入 nameserver 172.25.254.10

配置方式:
cd /var/named/
cp -p test.com.zone test.com.inter
编辑文件: vim test.com.inter 配置方式和正向解析一样,配置为172.25.254网段的

$TTL 1D
@       IN SOA  dns.test.com. root.westos.com (
                                        2020031401      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.test.com.
dns             A       172.25.254.10
www             CNAME   test.a.test.com.
test.a          A       172.25.254.110
test.a          A       172.25.254.111
test.com.       MX 1    172.25.254.20.

然后在去复制:cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
编辑 /etc/named.rfc1912.inters ,更改配置
RedHat Linux 8 中DNS服务器部署_第21张图片
编辑:vim /etc/named.conf ,注释掉之前的配置,再写信的配置

#zone "." IN {
     
#       type hint;
#       file "named.ca";
#};
#
#include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";

view localnet {
     
        match-clients {
      172.25.254.0/24; };
        zone "." IN {
     
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.inters";
        include "/etc/named.root.key";
};

view internet {
     
        match-clients {
      any; };
        zone "." IN {
     
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";
};

配置完后重启服务 systemctl restart named

测试:
在172.25.254网段的主机里dig www.test.com
RedHat Linux 8 中DNS服务器部署_第22张图片

在192.168.43网段主机里dig www.test.com
RedHat Linux 8 中DNS服务器部署_第23张图片
这样设定后,172.25.254网段就是我们的内网,只对内部开放,而192.168.43网段是对外部所有人开放的。
这样不同需求的主机用户对于域名的访问就会有不同的内容。


dns集群

集群的意思就是多台dns服务器,在一台主机上更改设置就很亏制动同步到所有主机上。例如114.114.114.114这个dns服务器,它的每时每刻的访问量都是非常大的,一台主机去提供服务是远远不够的,那就需要辅助的dns服务器来帮助主dns服务器去分担流量。
搭建环境:
两台主机,一台主dns:192.168.43.10
一台搭建辅助dns:192.168.0.20

做这个测试前还原之前上个实验在 /etc/named.conf 里的设定,重启服务

主dns的配置:
vim /etc/named.rfc1912.zones

zone "test.com" IN {
     
        type master;
        file "test.com.zone";
        allow-update {
      none; };
        also-notify {
      192.168.43.20; };		#主动通知的辅助dns主机
 };

vim /var/named/test.com.zone

$TTL 1D
@       IN SOA  dns.test.com. root.westos.com (
                                        2020031401      ; serial		每次更改A记录都需要更改此值,只增不减
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.test.com.
dns             A       192.168.43.10
www             CNAME   test.a.test.com.
test.a          A       192.168.43.110
test.a          A       192.168.43.111
test.com.       MX 1    192.168.43.20.

完成后重启服务

辅助dns主机:
首先安装程序:dnf install bind -y
在火墙里添加服务:firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
在这里插入图片描述
编辑主配置文件: /etc/named.conf
RedHat Linux 8 中DNS服务器部署_第24张图片

编辑文件: /etc/named.rfc1912.zone

zone "test.com" IN {
     
        type slave;
        masters {
      192.168.43.10; };
        file "slaves/test.com.zone";
};

完成后重启服务

使用另一台192.168.43网段的主机测试,设置dns为192.168.43.20,然后dig www.test.com
RedHat Linux 8 中DNS服务器部署_第25张图片
并且在主dns配置的做A记录的更新,会自动同步到其他的辅助dns主机上
RedHat Linux 8 中DNS服务器部署_第26张图片
RedHat Linux 8 中DNS服务器部署_第27张图片


dns的更新

dns基于ip地址的更新:
在dns中设定:
vim /etc/named.rfc1912.zones

zone "westos.com" IN {
     
	type master;
	file "westos.com.zone";
	allow-update {
      192.168.43.20; }; ##允许指定客户端更新test域
 	also-notify {
      192.168.43.20; };
};

重启服务
测试在192.168.43.20主机里,命令:nsupdate
RedHat Linux 8 中DNS服务器部署_第28张图片
更新新的A记录后,再去访问更新的域名
RedHat Linux 8 中DNS服务器部署_第29张图片
如果要删除更新的A记录的话,输入指令
在这里插入图片描述
RedHat Linux 8 中DNS服务器部署_第30张图片

dns基于key更新的方式:
首先需要去使用命令生成加密的key
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST test
-a 指定加密方式,-b 加密长度,-n 生成加密名称
RedHat Linux 8 中DNS服务器部署_第31张图片
并且这种加密方式属于对称加密,我们可以查看到加密内容
RedHat Linux 8 中DNS服务器部署_第32张图片
cp -p /etc/rndc.key /etc/test.key
vim /etc/test.key

key "test" {
     
        algorithm hmac-sha256;
       secret "nYLcyl0CSUfrUaan9yqdLQ==";	#加密字符串
};

vim /etc/named.conf 更改配置文件的对应文件的名称为我们刚建立的文件名
RedHat Linux 8 中DNS服务器部署_第33张图片
vim /etc/named.rfc1912.zones ,写入key更新的对应配置
RedHat Linux 8 中DNS服务器部署_第34张图片
重启服务,然后测试更新
RedHat Linux 8 中DNS服务器部署_第35张图片
RedHat Linux 8 中DNS服务器部署_第36张图片
如果想让其他主机来更新dns的A记录,把我们的公匙Ktest.+163+19596.private 传给他们就可以


ddns(dhcp+dns)

在我们的工作域里的主机,如果它是通过dns主机发布的dhcp服务获取的ip,那我们在地址解析时没法去将它的地址解析写入A记录中,因为它的ip是会发生变化的,所以在这种情况下,我们还需要地址解析的话,就需要在dns服务主机里的dhcp服务里去配置信息,这种方式就是ddns。
在使用虚拟机做测试时,如果时通过路由器连接的网络,我们需要关闭路由器的dhcp功能,然后自己来搭建dhcp服务器

首先安装在dns主机里安装dhcp服务,并配置dhcp
dnf instsall dhcp-server -y
配置完成后启动dhcpd服务,在测试主机里设置,主机名为test.com域的主机名,网卡为dhcp模式,并获得一个IP
RedHat Linux 8 中DNS服务器部署_第37张图片
设置完后,测试访问:dig www.test.com ,可以访问到,但是访问自己的域名是无解的
如果是静态IP,直接写入A记录就可以,但是dhcp的动态IP不可能我们每次都去重新写入,所以我们还需要在dhcp的配置文件后面写入配置: vim /etc/dhcp/dhcpd.conf

key test {
     								#设定key加密
	algorithm hmac-sha256;
	secret nYLcyl0CSUfrUaan9yqdLQ==;	
 };
zone test.com. {
     						
	primary 127.0.0.1;
	key test;
}

重启dhcpd和named服务
然后去访问测试主机的域名就可以得到正向解析


你可能感兴趣的:(Redhat,Linux,8,知识讲解,linux)