高速缓存DNS服务器

一、DNS简介
1.域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。

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

3.非权威/递归名称服务器:
仅缓存名称服务器。
客户通过其查找来自权威名称服务器的数据。

4.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据。dns区域采用资源记录的形式存储信息。
每条资源记录均具有一个类型 , 表明其保留的数据类型。
A : 名称至 IPv4 地址。
AAAA : 名称至 IPv6 地址。
CNAME : 名称至 ”规范名称 “( 包含 A/AAAA 记录的另一个名称 )。
PTR : IPv4/IPv6 地址至名称。
MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 )。
NS : 域名的名称服务器。
SOA :“授权起始 “ , DNS 区域的信息 ( 管理信息 )。

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

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

二、DNS部署
1.真机连接网络ping 114.114.114.114
开启火墙伪装
高速缓存DNS服务器_第1张图片
2.在虚拟机
设置ip地址
设置ip地址172.25.254.139
设置网关为真机ip:172.25.254.39

3.安装部署dns,
配置yum源仓库

yum install bind -y
systemctl start named ##打开服务

系统中加密字符保存在加密设备里/cat/dev/random
第一次开启服务时,加密字符数不够。需要在虚拟机里敲击键盘或者晃动鼠标。

systemctl enable named
systemctl stop firewalld
systemctl disable firewalld

主配置文件: /etc/named.conf
子配置文件: /etc/name.rfc1912.zones
数据目录: /var/named

a---all 
n不做解析只显示ip地址 
t---> tcp协议  
l活跃的   
u--->udp 协议  
p进程名称  
e扩展信息
netstat -antlupe

4.高速缓存dns

vim /etc/named.conf  ##主配置文件,DNS服务主机

第11行
listen-on port 53 { any; }; ##虚拟机打开端口权限为所有,让53接口在任何IP上可以打开
第17行
allow-query { any; }; ##允许任何用户来查询
第18行
forwarders { 114.114.114.114; }; ##访问ip
第33行
dnssec-validation no; ##不发送给网警机构进行检测,yes可能使解析位置发生变化
高速缓存DNS服务器_第2张图片
高速缓存DNS服务器_第3张图片
systemctl restart named ##重启服务

测试:
在客户主机设置服务主机,有网关就注释掉

vim /etc/resolv.conf
nameserver 172.25.254.139


dig www.baidu.com

三、权威dns的正向解析

dns服务器:

vim /etc/named.rfc1912.zones ##子配置文件,如果写在主配置文件中会影响文件的读取
24 zone "dy.com" IN {
25	    type master;
26	    file "dy.com.zone";		##file里面是各个域名的解析
27	    allow-update { none; };
28 };

cd /var/named/				##dy.com.zone编写的目录
cp -p named.localhost dy.com.zone	##相同权限复制,如果不复制权限会查询失败
vim dy.com.zone
	1 $TTL 1D  ##客户可以把信息缓存一天
	2 @	  IN SOA	dns.dy.com. root.dy.com. (  ##@表示引号里域名,可以省略域名
	直接写解析的内容,SOA一个域权威记录的相关信息,"."表示字符串结束
								      0	; serial
									1D	; refresh  ##刷新客户主机的时间
									1H	; retry  ##一小时后可以继续
									1W	; expire  ##客户查询时最多能查询的时间
									3H )	; minimum  ##最小缓存时间,从缓存中调取
									
		   NS	dns.dy.com.   ##NS字符串来源,谁负责维护的
	dns	   A	172.25.254.139
	www	   A	172.25.254.111
	bbs	   A	172.25.254.222
	systemctl restart named
##注意:dy.com.zone里面的@表示etc/name.rfc1912.zones里面的zone后面的引号里面的内容,即dy.com。如果没有.会自动补齐dy.com。


/etc/named.rfc1912.zones

/var/named/dy.com.zone  ##10为优先级

高速缓存DNS服务器_第4张图片
测试:
在测试主机中

vim /etc/resolv.conf
写入:nameserver 172.25.254.139

dig xxx.xxx.com

CNAME域名解析记录
又叫别名记录,理解(小时候都有一个小名,大了是学名,学名的符合公安系统,小名只是一个代名词,但也有好处就是不暴露自己,如一个网站在发布的时候,让xxx.com发布出去,这样不容易被用户所察觉,达到隐藏自己的目的,同时是轮播的)
A:地址解析记录
ptr:把ip变成域名

域名转换:

vim /var/named/westos.com.zone
systemctl restart named

高速缓存DNS服务器_第5张图片
测试
解析轮循:

vim /var/named/westos.com.zone
systemctl restart named

		NS	dns.westos.com.
www		CNAME	bbs.a.westos.com.
bbs.a		A	172.25.254.222
bbs.a		A	172.25.254.111    ##完成轮换
westos.com.	MX 1	mail.westos.com.
mail		A	172.25.254.200	##给westos.com 发送邮件将发送给172.25.254.200

高速缓存DNS服务器_第6张图片
注意,不同时间测试,显示的ip可能不同,因为是地址轮播

顶级域名(根域名) .
二级域名 .com
三级域名 baidu.com

地址解析记录
ptr:把ip变成域名
MX:邮件解析记录
邮件:smtp协议,简单邮件传输协议,常用软件postfix
全称是邮件交换记录,在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录反馈给A用户的MX记录服务器里!

测试:

dig -t mx westos.com
mail root@westos
mailq
postsuper -d XXXXXXXXX

四、权威dns的反向解析

(1)在dns服务器

vim /etc/named.rfc1912.zones写入:
49 zone "254.25.172.in-addr.arpa" IN {
50	    type master;
51	    file "172.25.254.ptr";		##file里面是各个域名的解析
52	    allow-update { none; };
53 };

(2)

cd /var/named/				##编写的目录
cp -p named.loopback 172.25.254.ptr	##相同权限复制
vim 172.25.254.ptr写入:
	1 $TTL 1D
	2 @	  IN SOA	dns.dzh.com. root.dzh.com. (
							0	; serial
							1D	; refresh
							1H	; retry		
							1W	; expire
							3H )	; minimum

				NS	dns.dy.com.
		dns	   A	172.25.254.139
		139	   PTR	dns.dy.com
		111	   PTR	www.dy.com.
		222	   PTR	bbs.dy.com
systemctl restart named

/etc/named.rfc1912.zones

/etc/named/172.25.254.ptr

测试:

dig -x 172.25.254.111

五、权威dns的双向解析
控制域名能被谁解析,不同客户得到不同的地址。

(1)在dns服务器

vim /etc/named.conf
view    localnet {
57         match-clients { localhost; };
58         zone "." IN {
59         type hint;
60         file "named.ca";
61         };
62 include "/etc/named.rfc1912.zones";
63 };
64 include "/etc/named.root.key";
65 view    internet {
66         match-clients { any; };
67         zone "." IN {
68         type hint;
69         file "named.ca";
70         };
71 include "/etc/named.rfc1912.inters";
72 };

注意:把上面的"."的zone注释掉

高速缓存DNS服务器_第7张图片
(2)在/etc/路径下

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters

vim named.rfc1912.inters
zone "dy.com" IN {
        type master;
        file "dy.com.inter";
        allow-update { none; };
};

(3)在/var/named/路径下

cp -p dy.com.zone dy.com.inters
vim dy.com.inters

$TTL 1D
@       IN SOA  dns.dy.com root.dy.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
           NS      dns.dy.com.
dns     A       192.168.0.139
www     CNAME   bbs.a.dy.com.
bbs.a   A       192.168.0.222
bbs.a   A       192.168.0.111
dy.com.        MX 1    mail.dy.com.
mail    A       192.168.0.139

(4)vim /etc/named.conf

systemctl restart named

注意:
第一个view是针对本机的,读的文件是/etc/named.rfc1912.zones
第二个是针对其他机子的,读的文件是/etc/named.rfc1912.inters

/etc/named.rfc1912.inters

/var/named/dy.com.inter

(5)测试:
在两台虚拟机上测试(dns都设置为172.25.254.139)
dig www.westos.com
在本机,解析出来的是172
在别的机子,解析出来的是192

六、辅助dns
访问dns人过多,访问压力过大,一台主机不能负载。

//注释后表示所有主机都可以访问

dns服务重启的时候同步唯一一次

不对比内容
serial 查看这个值 如果发生改变 立即同步
最多10位
2019021601

dns集群:变一个其他的都变

实验:
准备:还原双向解析

1>主dns的设定

vim /etc/named.rfc1912.zones

24 zone “dy.com” IN{
25 type master;
26 file “dy.com.zone”;
27 allow-update { none; };
28 also-notify { 172.25.254.239; };#写入
29 };

更改解析地址:vim /var/named/westos.com.zone

systemctl restart named

注意:每次在更改A记录文件后必须更改serial的数值,这个数值最大10位

2>辅助dns上

yum install bind -y
systemctl restart named
systemctl stop firewalld
vim /etc/resolv.conf  #设置dns
nameserver 172.25.254.239

vim /etc/name.conf  

vim /etc/named.rfc1912.zones

写入:
zone “dy.com” IN{
type slave;
masters { 172.25.254.139; };
file “slaves/dy.com.zone”;
allow-update { none; };
};

systemctl restart named

测试:
辅助

vim /etc/resolv.conf
nameserver 172.25.254.239

dig www.dy.com

主dns更改再测试

主DNS更改并重启服务

注意:更改完后要更改serial前的数字
注意规范:表示2019年XX月XX日的第二次修改

七、dns的远程更新
(1)基于ip的

cp -p westos.com.zone /mnt/  ##备份westos.com.zone
vim /etc/named.rfc1912.zones

写入:
zone “dy.com” IN{
type master;
file “dy.com.inter”;
allow-update { 172.25.254.239; };
also-notify { 172.25.254.239; };
};

chmod 770 /var/named  #更改目录的权限
systemctl restart named

测试在239
nsupdate
server 172.25.254.139
update add hello.dy.com 86400 A 172.25.254.123
send
quit ##添加

测试:

dig hello.dy.com

nsupdate

server 172.25.254.139
update delete bbs.dy.com
send
quit	##删除

update产生的在139里的/etc/named/dy.com.inter.jnl中
要重启服务才能到dy.con.inter里

解析不出来
status: NXDOMAIN

重启服务后dy.com.zone 文件中没有hello.dy.com的解析
selinux会影响,在主dns端把selinux状态改为disabled

(2)基于key
删除基于ip实验中的设定,先重启服务再还原
在主dns

dnssec-keygen -a HMAC-MD5 -b 128 -n host dy  ##-a 加密方式,-b 加密字符长度,-n 加密用途
ls
cp /etc/rndc.key /etc/dy.key -p
vim /etc/dy.key

高速缓存DNS服务器_第8张图片

cat Kwestos.+157+49396.key  ##查看加密字符
westos. IN KEY 512 3 157 r6EVAPYy9lRUB415vnNqOQ==

cp -p /etc/rndc.key  /etc/westos.key
vim /etc/westos.key

写入:
key “dy” {
algorithm hmac-md5;
secret “s8n0Yly0DTPaM6aislqBkQ==” ##加密字符用cat查看后复制过来
};

vim /etc/named.conf

写入:
42 include “/etc/dy.key”;

vim /etc/named.rfc1912.zones

zone “dy.com” IN{
type master;
file “dy.com.inter”;
allow-update { key dy; }; ##指定dy域可以被dykey更新
also-notify { 172.25.254.239; };
};

systemctl restart named

测试:
将钥匙发送给辅助dns

scp Kdy.+157+52339.* [email protected]:/mnt/

在辅助dns

nsupdate -k Kdy.+157+52339.key

server 172.25.254.139
update add hello.dy.com 86400 A 172.25.254.111
send
quit

在被更新端:dig hello.dy.com
注意:时间不同步时会报错—clocks are unsynchronized,需要设置时间同步,如果遇到两台时间差别很大,需要同步时间

八、ddns(花生壳):
1)实验环境—>搭建dhcp:

yum install dhcp -y
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf


7 option domain-name "westos.com";
  8 option domain-name-servers 172.25.254.118;
 
 14 ddns-update-style interim;  ##开启dhcp更新dns功能,让dhcp通知dns更新,dns里不能有这个域名的记录
 
 32 subnet 172.25.254.0 netmask 255.255.255.0 {
 33   range 172.25.254.60 172.25.254.99;
 34   option routers 172.25.254.18;
 35 }
 36
 37 key westos {              ##dhcp更新dns时用到的key
 38         algorithm hmac-md5;
 39         secret r6EVAPYy9lRUB415vnNqOQ==;
 40 };
 41 zone westos.com. {         ##指定dhcp更新的域名
 42         primary 127.0.0.1;   ##指定dns所在的主机ip
 43         key westos;           ##指定更新这个域时用到的key名称
 44 }        ##没有分号

解析的ip是固定的,但主机ip可能会发生改变(dhcp分配ip)

更改主机名,让主机名在westos.com 这个域里

hostnamectl set-hostname news.westos.com  ##更改主机名为news.westos.com,这个名称在原有的dns服务中是没有解析的
hostname     ##确定把ip给了哪台主机

测试:

重启网络查看ip和主机名称的解析否一致
在主dns端:dig new.westos.com

缩小ip范围再测试一次
查看主机ip和解析ip是否一致

你可能感兴趣的:(Linux系统工程师)