高级缓存dns

1.DNS总览

权威名称服务器

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

权威名称服务器的类型包括:

Master:包含原始区域数据。有时称作‘主要’名称服务器。

Slave:备份服务器,通过区域传送Master服务器获得的区域数据的副本。

有时称作‘次要’名称服务器。

非权威/递归名称服务器:

客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括

仅缓存名称服务器:仅用于查找,对于非重要数据之外的任何内容都不具有权威性。

2.DNS查找

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

3.DNS资源记录

DNS 区域采用资源记录的形式存储信息。

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

4.DNS排错

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

实验环境搭建:让虚拟机能上网
1)
在真机连接网络

ping 114.114.114.114


打开防火墙,查看伪装是否开启:

systemctl start firewalld.service
firewall-cmd --list-all

masquerade: no
如果时no:

firewall-cmd --add-masquerade  ##开启火墙伪装

2)在虚拟机
设置ip地址172.25.254.118
设置网关为真机ip:172.25.254.18


ping 114.114.114.114

3)配置yum仓库

cd /etc/yum.repos.d/
ls
vim yum.repo

 

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

回环接口上开的53 进程名称为named

所有接口上开的

listen正在开启

4)安装named服务

yum install bind -y

打开服务

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

vim /etc/resolv.conf
nameserver 172.25.254.118

5)关火墙:systemctl stop firewalld

排错详解:

vim /etc/named.conf

netstat -antlup | grep namede 

53接口在118上打开

vim /etc/named.conf

13行  any;  让53接口在任何ip上可以打开  在什么ip上开什么接口

19行  any; 允许谁来查询

20行  :forwarders { 114.114.114.114; };

34   yes--> 可能使解析位置发生变化

取消对网关的注释,重启网络

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

 

地址解析记录

ptr:把ip变成域名

MX:邮件解析记录
邮件:smtp协议,简单邮件传输协议,常用软件postfix
dig -t mx qq.com

这个ip是这个域的邮件记录

 

5.权威DNS正向解析

主配置文件:/etc/named.conf

子配置文件:/etc/name.rfc1912.zones

数据目录:/var/named

1)不要写到主配置文件里,会影响文件的读取

vim /etc/named.conf

 

vim /etc/named.rfc1912.zones

zone "westos.com"  IN {
    type master;
    file "westos.com.zone";
    allow-update { none; };
};


2)

cd /var/named/
cp -p named.localhost westos.com.zone   ##-p复制权限,如果不复制权限会查询失败
vim westos.com.zone
systemctl restart named

$TTL 1D客户可以把信息缓存一天
@表示引号里域名  可以省略域名。直接写解析的内容
SOA 一个域权威记录的相关信息
.表示字符串结束
ns字符串来源
谁负责维护的

reflash刷新客户主机时间
一个小时后可以继续
1W expire 客户查询时最多能查询的时间
3H 最小缓存时间,从缓存中调取

    NS dns.westos.com.
dns    A  172.25.254.100
www    A  172.25.254.111
bbs    A  172.25.254.222

测试:

在测试主机中:

vim /etc/resolv.conf
写入:nameserver 172.25.254.118
dig www.westos.com


A地址解析记录
CNAME域名解析记录
域名转换:

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


测试:在测试主机上

dig www.westos.com

查询www.westos.com时,会先转到bbs.a.westos.com.再解析bbs.a.westos.com.的地址得到结果。

解析轮循:

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

测试:

dig www.westos.com


查询www.westos.com时,会先转到bbs.a.westos.com.再解析bbs.a.westos.com.的地址,第一次解析结果为172.25.254.222,

再次查询结果为172.25.254.111,两个地址轮循。

MX 邮件解析记录:
MX 10 mail.westos.com  ##10为优先级

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

测试:

dig -t mx westos.com

给westos.com发送邮件,实际上是给

6.反向解析
1)

vim /etc/named.rfc1912.zones

写入:

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

2)

cd /var/named/
cp -p named.localhost  172.25.254.ptr
vim 172.25.254.ptr
systemctl restart named

写入:
#################################################
$TTL 1D
@       IN SOA  dns.westos.com. ys.westos.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
         NS      dns.westos.com.
dns      A       172.25.254.118
118      PTR     dns.westos.com.
111      PTR     www.westos.com.
222      PTR     bbs.westos.com.
##################################################

3)测试:

dig -x 172.25.254.111


7.双向解析
控制域名能被谁解析,不同客户得到不同的地址。

在 /var/named/路径下
1)

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


2)

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

3)

vim /etc/named.conf
systemctl restart named

4)测试:

分别在两台虚拟机上测试(dns都设置为172.25.254.118)

dig www.westos.com

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

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

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

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

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

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

1>配置server主机--->辅助dns上

vim /etc/yum.repos.d/yum.repo  ##配置yum源
yum install bind -y  ##安装服务
systemctl start named  ##开启服务,开启时需要在虚拟机里敲键盘或晃动鼠标
systemctl stop firewalld ##关闭火墙
vim /etc/resolv.conf   ##设置dns
nameserver 172.25.254.218 

 

vim /etc/named.conf  

 

vim /etc/named.rfc1912.zones
systemctl restart named

写入:
 zone "westos.com" IN {
         type slave;
         masters { 172.25.254.118; };
        file "slaves/westos.com.zone";
        allow-update { none; };
 };


2>在主dns上

vim /etc/named.rfc1912.zones

写入:also-notify { 172.25.254.218; };

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

3>在主dns上

dig www.westos.com

解析的地址更改

4>在辅助dns端:

dig www.westos.com

解析的地址没有更改

 

(因为不对比内容,serial 查看这个值 如果发生改变 立即同步)

5>更改serial 值为2019021601
systemctl restart named

在辅助dns端和主dns端:dig www.westos.com
解析的地址改变

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

9.DNS的远程更新
dns集群
1)基于ip:

1>

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

写入:
allow-update { 172.25.254.218; };

2>更改目录的权限

chmod 770 /var/named/

 3>在server更新端

nsupdate
> server 172.25.254.118
> update add hello.westos.com 86400 A 172.25.254.111
> send
> quit

测试:

在更新端:dig hello.westos.com

3>主dns端(被更新端):对比文件

被更新前

[root@localhost named]# vim westos.com.zone

被更新后:

[root@localhost named]# vim westos.com.zone

删除:

[root@dns2-server named]# nsupdate
> server 172.25.254.118
> update delete hello.westos.com
> send
> quit

测试:dig hello.westos.com
解析不出来
status: NXDOMAIN

重启服务后westos.com.zone 文件中没有hello.westos.com的解析


selinux会影响,在主dns端把selinux状态改为disabled                            


2)基于key:

删除基于ip实验中的设定,先重启服务再还原

1)加密:

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos  ##-a 加密方式,-b 加密字符长度,-n 加密用途
ls

2)

vim /etc/named.conf

写入:
include "/etc/westos.key";

3)

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

4)

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

写入:
 key "westos" {
         algorithm hmac-md5;
           secret "r6EVAPYy9lRUB415vnNqOQ==";
  };

  
5)

vim /etc/named.rfc1912.zones
allow-update { key westos; }; ##指定westos域可以被westoskey更新

 

systemctl restart named  

6)

scp Kwestos.+157+49396.* root@172.25.254.218:/mnt/

7)在server端测试:

[root@dns2-server mnt]# nsupdate -k Kwestos.+157+49396.private
> server 172.25.254.118
> update add hello.westos.com 86400 A 172.25.254.111      
> send
> quit

在被更新端:dig hello.westos.com


注意:时间不同步时会报错---clocks are unsynchronized,需要设置时间同步
10.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)

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

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

测试:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马克图布s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值