第三单元 高速缓存 DNS
1.DNS总揽
(1)权威名称服务器
– 存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。权威名称服务器的类型包括
Master : 包含原始区域数据。有时称作 “ 主要 ” 名称服务器
Slave : 备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “ 次要 ” 名称服务器
(2)非权威 / 递归名称服务器
– 客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括
仅缓存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性
(3)DNS 查找
客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端否则 , 如果名称服务器在其缓存中有请求的信息 , 则会将非权威答案发送至客户端,如果缓存只能该没有信息 , 名称服务器将搜索权威名称服务器以查找信息 , 从根区域开始 , 按照DNS 层次结构向下搜素 , 直至对于信息具有权威性的名称服务器 , 以此为客户端获得答案。在此情况中, 名 ch 称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找
2.DNS 资源记录
DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型
– A : 名称至 IPv4 地址
– AAAA : 名称至 IPv6 地址
– CNAME : 名称至 ” 规范名称 “ ( 包含 A/AAAA 记录的另一个名称 )
– PTR : IPv4/IPv6 地址至名称
– MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 )
– NS : 域名的名称服务器
– SOA :” 授权起始 “ , DNS 区域的信息 ( 管理信息 )
3.DNS 排错
它显示来自 DNS 查找的详细信息 , 其中包括
为什么查询失败 :
– NOERROR : 查询成功
– NXDOMAIN : DNS 服务器提示不存在这样的名称
– SERVFAIL : DNS 服务器停机或 DNSSEC 响应验证失败
– REFUSED : DNS 服务器拒绝回答 ( 也许是出于访问控制原因 )
4.dig 输出的部分内容
标题指出关于查询和答案的信息 , 其中包括响应状态和设置的任何特殊标记 ( aa 表示权威答案 , 等等 )
– QUESTION : 提出实际的 DNS 查询
– ANSWER : 响应 ( 如果有 )
– AUTHORITY : 负责域 / 区域的名称服务器
– ADDITIONAL : 提供的其他信息 , 通常是关于名称服务器
– 底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间
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 查询将转发至的名称服务器的列表
( 而不是直接联系外部名称服务器 ; 在设有防火 墙的情况中
很有用 )
所有这些指令会将打括号中以分号分隔的元素视为地址匹配
列表 . 如
– listen-on { any; };
– allow-query { 127.0.0.1; 10.0.0.0/8 };
8.配置名称服务器
(1)安装 bind 软件包
– yum install -y bind
(2)编辑 /etc/named.conf
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
forwarders { 172.25.254.254; };
[root@dns-server named]# cp -p named.localhost westos.com.zone
编辑/var/named/westos.com.zone
(3)启动并启用 DNS 服务器
systemctl start named
systemctl enable named
(4)从 desktopX 进行测试
– dig classroom.example.com
##实验需要关闭firewalld,在每次进行测试之前需重启相关服务###
一.DNS服务的信息说明
A :正向记录
PTR:反向,IP到域名
host -l example.com : 查看域中所有主机
dig -t soa example.com :辅助DNS
软件包 :bind
DNS主配置目录: /var/named/
DNS主配置文件: /etc/name.conf
DNS A记录存放目录 : /var/named/westos.com.zone
二.如何配置DNS正向解析:
1.vim /etc/named.conf #编辑主配置文件
2.vim /etc/named.rfc1912.zones
3.编写A记录文件
cp -p /var/named/localhost /var/named/westos.come.zone #生成A记录模版
完成后重启服务 systemclt restart named
在客户端 vim /etc/resolv.conf ==> nameserver 172.25.254.218
用dig www.westos.com 进行测试
辅助dns
在虚拟控制台配置双虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
然后重启网络,用ifconfig进行查看
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter
cp -p /var/named/westos.com.zone /var/named/westos.com.inter
vim /var/named/westos.com.inter
vim /etc/named.conf
systemctl restart named
在客户端 vim /etc/resolv.conf ==> nameserver 172.25.18.218
进行检测
dns反向解析
cp -p /var/named/loopback /var/named/westos.com.ptr
vim /var/named/westos.com/ptr
vim /etc/named.rfc1912.zones
客户端vim /etc/resolv.conf ==> nameserver 172.25.254.218
进行检验
DNS 更新
cp -p /etc/named/westos.com.zone /mnt
vim /etc/named.rfc1912.zones
chmod 770 /var/named
setsebool -P named_write_master_zones 1
在客户端进行检测
DNS加key
rm -rf /var/named/westos.com.zone
rm -rf /var/named/westos.com.zone.jnl
cp -p /mnt/westos.com.zone /var/named/
cd /mnt
dnssec-keygen -a HMAC-MD5 -b 256 -n HOST westoskey
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
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 };
检验
scp Kwestoskey.+157+48027.* root@172.25.254.118:/mnt
动态DNS
服务端 yum install dhcp -y
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
删除27,28行和36行以后
vim /etc/named.conf
systemctl restart dhcpd
systemctl restart named
检测
拔掉网线,在客户端中vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
:wq
systemctl resetart network
hostnamectl set-hostname test.westos.com