Blog23@linux DNS配置(1)_高速缓存

来源:互联网 发布:nginx rtmp hls 配置 编辑:程序博客网 时间:2024/06/05 16:03
本节摘要:主要介绍DNS部署——高速缓存、权威DNS的正反向及双向解析、辅助DNS、DNS的远程更新等内容

DNS


注: 为了实验的正常进行,实验前要关闭实验主机的selinux及火墙


一、DNS总览


1. 权威名称服务器

存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。
权威名称服务器的类型包括
Master : 包含原始区域数据。有时称作 “ 主要 ” 名称服务器
Slave : 备份服务器,通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “ 次要 ” 名称服务器

2. 非权威 / 递归名称服务器

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

3. DNS 查找

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

二、配置DNS


1. 安装部署dns

> yum install bind -y

> systemctl start named    ##敲键盘,以生成/etc/rndc.key
> systemctl enable named
> systemctl stop firewalld
> systemctl disable firewalld

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



2. 高速缓存

1)配置如下

> vim /etc/named.conf

11         listen-on port 53 { any; };##允许named侦听所有的ipv4地址,该行注释和此更改表示一致17         allow-query     { any; };##表示所有客户端都可以向DNS服务询问信息,该行注释和此更改表示一致18         forwarders { 172.25.254.250; };   ##包含dns查询将转发至的服务器的列表为172.25.254.250(而不是直接联系外部名称服务器 ; 在设有防火墙的情况中很有用)

> systemctl restart named


注:所有这些指令会将大括号中以分号分隔的元素视为地址匹配列表
如: allow-query { 127.0.0.1; 10.0.0.0/8 };


测试:

在客户主机
> vim /etc/resolv.conf
> nameserver 172.25.254.118  
dig www.baidu.com

(看其先后访问时间的变化)


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


3. 权威dns的正向解析


> vim /etc/named.rfc1912.zones

 25 zone "Sunshine.com" IN { 26         type master; 27         file "Sunshine.com.zone"; 28         allow-update { none; };  29 };

> cd /var/named/
> cp -p named.localhost Sunshine.com.zone
> vim Sunshine.com.zone

  1 $TTL 1D  2 @       IN SOA   dns.Sunshine.com. root.Sunshine.com. (  3                                         0       ; serial    //序号。下面会说到辅助DNS,当修改Master服务器数据内容时,要将这个数值放大才能被Slave服务器同步到  4                                         1D      ; refresh   //更新频率  5                                         1H      ; retry     //失败重新尝试的时间  6                                         1W      ; expire    //失效时间  7                                         3H )    ; minimum   //缓存时间         8         NS      dns.Sunshine.com.  9 dns     A       172.25.254.118 10 www     A       172.25.254.111

> systemctl restart named

测试:
dig www.Sunshine.com

关于DNS资源记录信息释义如下:


4. 反向解析

> vim /etc/named.rfc1912.zones

 49 zone "254.25.172.in-addr.arpa" IN { 50         type master; 51         file "Sunshine.com.ptr"; 52         allow-update { none; }; 53 };
>cp -p  named.loopback Sunshine.com.ptr
> vim Sunshine.com.ptr

  1 $TTL 1D  2 @       IN SOA   dns.Sunshine.com. root.Sunshine.com. (  3                                         0       ; serial  4                                         1D      ; refresh  5                                         1H      ; retry  6                                         1W      ; expire  7                                         3H )    ; minimum  8         NS      dns.Sunshine.com.  9 dns     A       172.25.254.118 10 118     PTR     www.Sunshine.com. 

> vim /etc/named.rfc1912.zones


测试:
dig -x 172.25.254.118



5. DNS双向解析

满足内网与外网解析结果不一,出于安全性考虑

> vim /etc/named.conf

 51 view localnet{

 52         match-clients { 172.25.254.18; }; 53         zone "." IN { 54                 type hint; 55                 file "named.ca"; 56 }; 57 include "/etc/named.rfc1912.zones"; 58 include "/etc/named.root.key"; 59 }; 60 view any{ 61         match-clients { any; }; 62         zone "." IN { 63                 type hint; 64                 file "named.ca"; 65 }; 66 include "/etc/named.rfc1912.zones.inter"; 67 include "/etc/named.root.key"; 68 };

> cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter

> vim /etc/named.rfc1912.zones.inter

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

> cp -p Sunshine.com.zone Sunshine.com.zone.inter

> vim Sunshine.com.zone.inter

  1 $TTL 1D  2 @       IN SOA   dns.Sunshine.com. root.Sunshine.com. (  3                                         0       ; serial  4                                         1D      ; refresh  5                                         1H      ; retry  6                                         1W      ; expire  7                                         3H )    ; minimum  8         NS      dns.Sunshine.com.  9 dns     A       1.1.1.118 10 www     A       1.1.1.111
> systemctl restart named



6. 辅助DNS

辅助DNS,为了缓冲主DNS服务器的压力

##主DNS的设定##
> vim /etc/named.rfc1912.zones.inter

 25 zone "Sunshine.com" IN { 26         type master; 27         file "Sunshine.com.zone.inter"; 28         allow-update { none; };                                              29         also-notify { 172.25.254.218; }; 30 };

> systemctl restart named

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

##辅助dns上##
> yum install bind -y
> systemctl restart named
> systemctl enable named
> systemctl stop firewalld
> vim /etc/name.conf

 11 //      listen-on port 53 { 127.0.0.1; }; 17 //      allow-query     { localhost; };

>vim /etc/named.rfc1912.zones

 25 zone "Sunshine.com" IN { 27         type slave; 28         file "slaves/Sunshine.com.inter"; 29         allow-update { none; }; 30         masters { 172.25.254.18; }; 31 };               

>systemctl restart named

测试:
vim /etc/resolve.conf
nameserver 172.25.254.218

dig www.Sunshine.com



7. dns的远程更新

1)基于ip
> cp Sunshine.com.zone.inter -p /mnt
> chmod g+w /var/named/
    ##一定要将其权限设置好
> vim /etc/named.rfc1912.zones.inter

 25 zone "Sunshine.com" IN {  26         type master; 27         file "Sunshine.com.zone.inter"; 28         allow-update { 172.25.254.218; };                                    29         also-notify { 172.25.254.218; }; 30 };

> systemctl restart named


测试:
在218这台主机上
[root@dns-slave slaves]# nsupdate
> server 172.25.254.118
> update add bbs.Sunshine.com 86400 A 1.1.1.6
> send
> server 172.25.254.118
> update delete bbs.Sunshine.com             
> send


还原:
[root@dns-master named]# ls
data      named.empty      slaves             Sunshine.com.zone.inter
dynamic   named.localhost  Sunshine.com.ptr   Sunshine.com.zone.inter.jnl
named.ca  named.loopback   Sunshine.com.zone
[root@dns-master named]# rm -rf Sunshine.com.zone.inter Sunshine.com.zone.inter.jnl
[root@dns-master named]# ls /mnt
Sunshine.com.zone.inter
[root@dns-master named]# cp -p /mnt/Sunshine.com.zone.inter.



2)基于key
> cp -p /etc/rndc.key /etc/Sunshine.key
> cd /mnt    
##最好可以把key单独存放起来
> dnssec-keygen -a HMAC-MD5 -b 128 -n HOST Sunshine    
##最大可以为512
> cat Ksunshine.+157+40498.key

Sunshine. IN KEY 512 3 157 2QT46YiQ17nKAvGNsXz5Tg==

> vim /etc/Sunshine.key

key "Sunshine" {         algorithm hmac-md5;         secret "2QT46YiQ17nKAvGNsXz5Tg==";                                  }

> vim /etc/named.conf

 43 include "/etc/Sunshine.key"; 44 logging { 45         channel default_debug { 46                 file "data/named.run"; 47                 severity dynamic; 48         };  49 };

> vim /etc/named.rfc1912.zones.inter

zone "Sunshine.com" IN {         type master;         file "Sunshine.com.zone.inter";         allow-update { key Sunshine; };         also-notify { 172.25.254.218; }; };

> systemctl restart named


测试:

scp Ksunshine* root@172.25.254.218:/mnt/
在有key的主机中执行
>nsupdate -k Ksunshine.+157+40498.private


 

原创粉丝点击