##高速缓存DNS####
##学习目标
配置高速缓存DNS
1.DNS 总揽
权威名称服务器
�C 存储并提供某区域 (整个 DNS 域或 DNS 域的一部分 )的实际数据。权威名称服务器的类型包括
Master : 包含原始区域数据。有时称作“主要”名称服务器
Slave :备份服务器 ,通过区域传送从 Master 服务器获得的区域数据的副本。有时称作“次要”名服务器
非权威 / 递归名称服务器
�C 客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括
仅缓存名称服务器: 仅用于查找,对于非重要数据之外的任何内容都不具有权威性
DNS 查找
�C 客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器
�C 如果名称服务器对于请求的信息具有权威性, 会将权威答案发送至客户端
�C 否则, 如果名称服务器在其缓存中有请求的信息, 则会将非权威答案发送至客户端
�C 如果缓存只能该没有信息 , 名称服务器将搜索权威名称服务器以查找信息 ,从根区域开始 , 按照
DNS 层
�C 次结构向下搜素, 直至对于信息具有权威性的名称服务器, 以此为客户端获得答案。在此情况中,名ch称服务器将信息传递至客户端并在自己的缓存中保留一个副本, 以备以后查找
2.DNS 资源记录
DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型
�C A :名称至 IPv4 地址
�C AAAA :名称至 IPv6 地址
�C CNAME :名称至”规范名称“ (包含 A/AAAA 记录的另一个名称)
�C PTR : IPv4/IPv6 地址至名称
�C MX :用于名称的邮件交换器(向何处发送其电子邮件)
�C NS :域名的名称服务器
�C SOA :”授权起始“ , DNS 区域的信息 (管理信息 )
3.DNS排错
它显示来自 DNS 查找的详细信息 ,其中包括为什么查询失败:
�C NOERROR :查询成功
�C NXDOMAIN : DNS 服务器提示不存在这样的名称
�C SERVFAIL : DNS 服务器停机或 DNSSEC 响应验证失败
�C REFUSED : DNS 服务器拒绝回答(也许是出于访问控制原因)
4.dig 输出的部分内容
标题指出关于查询和答案的信息,其中包括响应状态和设置的任何特殊标记( aa 表示权威答案,等等)
�C QUESTION :提出实际的 DNS 查询
�C ANSWER :响应(如果有)
�C AUTHORITY :负责域 / 区域的名称服务器
�C ADDITIONAL :提供的其他信息,通常是关于名称服务器
�C底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间
5.缓存 DNS 服务器
BIND 是最广泛使用的开源名称服务器
在 RHEL 中 ,通过 bind 软件包提供
防火墙开启端口 53/TCP 和 53/UDP
BIND 的主配置文件是 /etc/named.conf
/var/named 目录包含名称服务器所使用的其他数据文件
6./etc/named.conf 的语法
// 或 # 至行末尾是注释 ; /* 与 */ 之间的文本也是注释(可以跨越多行)
指令以分号结束(;)
许多指令认为地址匹配列表放在大括号中、以CIDR 表示法表示的 IP 地址或子网列表中 ,或者命名的 ACL 中 (例如 any; [ 所有主机 ] 和none; [ 无主机 ] )
文件以 options 块开始 ,其中包含控制 named如何运作的指令
zone 块控制 named 如何查对于其具有权威性的根名称服务器和区域
7.一些重要的 options 指令
listen-on 控制 named 侦听的 IPv4 地址
listen-on-v6 控制 named 侦听的 IPv6 地址
allow-query 控制哪些客户端可以向 DNS 服务器询问信息
forwarders 包含 DNS 查询将转发至的名称服务器的列表(而不是直接联系外部名称服务器 ;在设有防火 墙的情况中很有用)
所有这些指令会将打括号中以分号分隔的元素视为地址匹配列表.如
�C listen-on { any; };
�C allow-query { 127.0.0.1; 10.0.0.0/8 };
8.配置名称服务器
安装 bind 软件包
�C yum install bind -y
编辑 /etc/named.conf ##修改配置文件
�C listen-on port 53 { any; }; ##允许任何人打开ipv4端口
�C listen-on-v6 port 53 { any; }; ##允许任何人打开ipv6端口
�C allow-query { any; }; ##允许任何人dns查询地址
�C forwarders { 172.25.254.254; }; ##访问172.25.254.254
启动并启用 DNS 服务器
systemctl start named
systemctl enable named
从 desktopX 进行测试:
�C dig classroom.example.com
一.DNS服务
1.yum install bind.x86_64 -y
2.vim /etc/named.conf ##修改配置文件
11 listen-on port 53 { any;}; ##允许任何人打开ipv4端口
17 allow-query { any; }; ##允许任何人dns查询地址
55zone "westos.com" IN {
56 type hint;
57 file"westos.com.zone";
58};
3.vim /etc/named.rfc1912.zones
25 zone "westos.com" IN{
26 type master;
27 file"westos.com.zone";
28 allow-update { none; };
29 };
4.cp -p /var/named/named.localhost /var/named/westos.com.zone
vim /var/named/westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.60
www A 172.25.254.162
music CNAME music.a.westos.com.
music.a A 172.25.254.111
music.a A 172.25.254.222
westos.com. MX 1 172.25.254.60.
5.测试
*)vim /etc/resolv.conf
nameserver 172.25.254.60
*)dig www.westos.com
*)dig -t mx westos.com
*)dig music.westos.com
二.正向解析
1.cp -p westos.com.zone westos.com.inter
2.vim westos.com.inter
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.62.60
www A 172.25.62.162
music CNAME music.a.westos.com.
music.a A 172.25.62.111
music.a A 172.25.62.222
westos.com. MX 1 172.25.62.60.
3.cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
4.vim /etc/named.rfc1912.inter
zone "westos.com" IN {
type master;
file"westos.com.inter";
allow-update { none; };
};
50 /*
51 zone "." IN {
52 type hint;
53 file "named.ca";
54 };
55
56 include"/etc/named.rfc1912.zones";
57 include"/etc/named.root.key";
58 */
59
60 view localnet {
61 match-clients { 172.25.254.0/24;};
62 zone "." IN {
63 type hint;
64 file"named.ca";
65 };
66 include"/etc/named.rfc1912.zones";
67 };
68
69 view internet {
70 match-clients { 172.25.62.0/24;};
71 zone "." IN {
72 type hint;
73 file"named.ca";
74 };
75 include"/etc/named.rfc1912.inter";
76 };
6.测试
*)vim /etc/resolv.conf
nameserver 172.25.62.60
*)[root@dns-client162 ~]# dig www.westos.com
三.反向解析
1.vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file"westos.com.ptr";
allow-update { none; };
};
2.cp -p /var/named/named.loopback /var/named/westos.com.ptr
3.vim /var/named/westos.com.ptr
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 127.25.254.60
111 PTR www.westos.com.
222 PTR bbs.westos.com.
4.测试
[root@dns-client162 ~]# dig -x 172.25.254.222
四.dns更新
1.备份westos.com.zone
cp -p /var/named/westos.com.zone /mnt
2.允许172.25.254.162更新
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file"westos.com.zone";
28 allow-update {172.25.254.162; };
29 };
3.修改权限
chmod 770 /var/named/
4.打开named_write_master_zones 服务
setsebool -P named_write_master_zones 1
5.测试
[root@dns-client162 ~]# nsupdate
> server 172.25.254.60
> update add haha.westos.com 86400 A 172.25.254.222
> send
五.dns加密更新
1.加密
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey ##名字westoskey
2.密钥
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
key "westoskey" {
algorithm hmac-md5;
secret"cO4YCYcToTDA7mWqZSRRtA==";
};
3.配置dns服务
*)vim /etc/named.conf
43 include "/etc/westos.key";
*)vim /etc/named.rfc1912.zones
25 zone "westos.com" IN{
26 type master;
27 file"westos.com.zone";
28 allow-update { key westoskey;};
29 };
4.测试
*)scp /mnt/Kwestoskey.+157+37962.* root@172.25.254.162:/mnt
*)在172.25.254.162主机
[root@dns-client162 ~]# nsupdate -k /mnt/Kwestoskey.+157+37962.private
> server 172.25.254.60
> update add haha.westos.com 86400 A 172.25.254.222
> send
>
六.通过主机名访问查询
1.安装dhcp服务
yum install dhcp -y
2.建立dhcp服务配置
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
3.修改配置文件
vim /etc/dhcp/dhcpd.conf
7 option domain-name"westos.com";
8 option domain-name-servers172.25.254.60;
14 ddns-update-style interim;
30 subnet 172.25.254.0 netmask255.255.255.0 {
31 range 172.25.254.46 172.25.254.55;
32 option routers 172.25.254.250;
33 }
34
35 key "westoskey" {
36 algorithm hmac-md5;
37 secret "cO4YCYcToTDA7mWqZSRRtA==";
38 };
39
40 zone westos.com {
41 primary 127.0.0.1;
42 key westoskey;
43 }
*)vim /etc/named.conf ##修改主配置文件
4.测试
*)拔掉网线
*)在客户端主机中
hostnamectl set-hostname haha.westos.com ##修改主机名
*)vim /etc/sysconfig//network-scripts/ifcfg-eth0 ##更改网络为动态
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
:wq
*)重启网络
systemctl restart network
*)hostnamectl set-hostname haha.westos.com ##更改主机名为haha.westos.com
*)dig haha.westos.com
*)hostnamectl set-hostname test.westos.com ##更改主机名为test.westos.com
*)dig test.westos.com