1.高速缓存DNS
(1)安装部署dns
yum install bind -y
systemctl start named
systemctl enable named
systemctl stop firewalld
systemctl disable firewalld
主配置文件:/etc/named.conf
子配置文件:/etc/name.rfc1912.zones
数据目录 : /var/named
(2)实验环境:(让虚拟机上网)
虚拟机设置:网关设置成真机ip
真机设置
firewall-cmd --list-all
firewall-cmd --add-masquerade
firewall-cmd --list-all
sysctl -a | grep ip_forward
(3)DNS高速缓存的概念
DNS高速缓存服务的出现是为了提高客户端访问的效率。若网络中存在缓存机制,当客户端第一次访问目的主机时,会将目的主机的域名和ip缓存下来。当第二次访问该目的主机时,就不需要再次通过域名服务器来获得目的主机的域名和ip的对应关系,极大的提高了访问目标主机时的响应时间。
为了避免缓存服务器的中的数据有效性,通常缓存服务器对其数据设有过期期限,期限到后要重新更新数据
(4)DNS查找
客户端上的Stub解析器将查询发送至 /etc/resolv.conf中的名称服务器
如果名称服务器对于请求的信息具有权威性,会将权威答案发送至客户端,否则如果名称服务器再起缓存中由请求的信息,则会将非权威答案发送至客户端
如果缓存中没有信息,名称服务器将搜索权威名称服务器以查找信息,从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威性的名称服务器,以此为客户端获得答案。在此情况中命ch成为服务器将信息传递至客户端并在自己的缓存中保留一个副本,以备以后查找
(5)DNS资源记录
DNS区域采用资源记录的形式存储信息,每条资源记录均具有一个类型,表明其保留的数据类型
A:名称至ipv4地址
AAAA:名称至ipv6地址
CNAME:名称值“规范名称”(包含A/AAAA 记录的另一个名称)
PTR:ipv4/ipv6地址至名称
MX:用于名称的邮件交换器(向何处发送其电子邮件)
NS:域名的名称服务器
SOA:‘授权起始’,DNS区域的信息(管理信息)
(6)DNS服务器的分类
权威名称服务器:包括master(主要名称服务器);Slave(备份服务器),Slave通过区域传送从Master服务器获得区域数据的副本
非权威域名服务器:即DNS告诉缓存服务器,仅用于查找,对于非重要数据之外的额任何内容都不具有权威性
(7)配置DNS高速缓存服务器(全局配置)
vim /etc/named.conf
13 listen-on port 53 { any; }; 为所有人开启53端口
19 allow-query { any; }; 允许所有人查找
20 forwarders { 114.114.114.114; };真机中没有信息则去查找114.114.114.114
33 dnssec-validation no; 关闭DNS的安全认证
systemctl restart named
(8)测试:
客户端:
vim /etc/resolv.conf
nameserver 172.25.254.226
dig www.baidu.com
2.DNS的正向解析
(1)目的为了保持DNS的可读性
@表示引号中的内容
(2)服务端配置环境
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update { none; };
29 };
cd /var/named
cp -p name.localhost westos.com.zone
vim westos.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. z.westos.com. (
^表示引号中的内容 ^标识修改人
3 0 ; serial##修改表示(用于辅助dns)
4 1D ; refresh##刷新时间
5 1H ; retry ##再次尝试时间
6 1W ; expire##过期时间
7 3H ) ; minimum##最小缓存时间
8 NS dns.westos.com. ##要注意每个com后的"."
9 dns A 172.25.254.226
10 www A 172.25.254.111
11 bbs A 172.25.254.211
systemctl restart named
(3)测试
客户端:
vim /etc/resolv.conf
nameserver 172.25.254.226
dig www.westos.com
可见dig出的结果为服务端设置的ip地址
3.正向解析的轮询
(1)服务端配置
vim westos.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. z.westos.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 172.25.254.226
10 www CNAME bbs.a.westos.com.
11 bbs.a A 172.25.254.211
12 bbs.a A 172.25.254.233
systemctl restart named
(2)测试:
客户端
dig www.westos.com
情况1
情况2
4.DNS正向解析的邮件解析服务
(1)服务端配置
vim westos.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. z.westos.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 172.25.254.226
10 www CNAME bbs.a.westos.com.
11 bbs.a A 172.25.254.211
12 bbs.a A 172.25.254.233
13 westos.com. MX 1 mail.westos.com.
^表示邮件交换器,1表示优先级
14 mail A 172.25.254.226
systemctl restart named
(2)测试
1.dig -t mx westos.com
5.DNS的反向解析
(1)环境配置
服务端:
vim /etc/named.rfc1912.zones
49 zone "254.25.172.in-addr.arpa" IN {
50 type master;
51 file "172.25.254.ptr";
52 allow-update { none; };
53 };
cd /var/named/
cp -p named.loopback 172.25.254.ptr
vim 172.25.254.ptr
1 $TTL 1D
2 @ IN SOA dns.westos.com. rname.invalid. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 172.25.254.126
10 100 PTR dns.westos.com.
11 111 PTR www.westos.com.
12 222 PTR bbs.westos.com.
systemctl restart named
(2)测试
客户端:
dig -x 172.25.254.111
6.DNS的双向解析
(1)环境配置
客户端:
vim /etc/named.conf
51 /*
52 zone "." IN {
53 type hint;
54 file "named.ca";
55 };
56 */
57 view localnet{
58 match-clients{ localhost; };
59 zone "." IN {
60 type hint;
61 file "named.ca";
62 };
63 include "/etc/named.rfc1912.zones";
64 };
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 };
73 include "/etc/named.root.key";
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
vim /etc/named.rfc1912.inters
24
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.inter";
28 allow-update { none; };
29 };
cp -p /var/named/westos.com.zone /var/named/westos.com.inter
vim /var/named/westos.com.inter
1 $TTL 1D
2 @ IN SOA dns.westos.com. z.westos.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 192.168.0.100
10 www CNAME bbs.a.westos.com.
11 bbs.a A 192.168.0.222
12 bbs.a A 192.168.0.111
13 westos.com. MX 1 mail.westos.com.
14 mail A 192.168.0.200
systemctl restart named
(2)测试
服务端:
dig www.westos.com
客户端:
dig www.westos.com
可以看出由于设置了双向解析,客户端与服务端dig出不同的结果
7.辅助DNS
缓解主DNS压力,减少主DNS的负载
集群:多台主机组成一个服务,主主机更改时,别的都跟着改变
(1)环境配置
主DNS的配置
1.将双向DNS的设置还原
2. vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update { none; };
29 also-notify { 172.25.254.126; };
30 };
systemctl restart named
辅助DNS的主机配置(这里我们将客户端设置成辅助DNS)
yum install bind -y
systemctl restart named
systemctl stop firewalld
vim /etc/resolv.conf
3 nameserver 172.25.254.126##设置成客户端自己的ip
vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };
32 dnssec-validation no;
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type slave;
27 masters { 172.25.254.226; };
28 file "slaves/westos.com.zone";
29 allow-update { none; };
30 };
systemctl restart named
(2)测试 :
现在主DNS和辅助DNS主机上分别dig www.westos.com
在主DNS所在主机上
vim /var/named/westos.com.zone
3 1 ; serial 将1改为2019
11 bbs.a A 172.25.254.211--->172.25.254.1
12 bbs.a A 172.25.254.233--->172.25.254.3
注意:每次更改主DNS记录文件后必须更改serial的数值,用于标示是否修改,这个数值最大可以有10位
systemctl restart named
dig www.westos.com
在辅助DNS所在主机上
dig www.westos.com
查看两个的;; ANSWER SECTION:是否同步
8.DNS的远程更新
(1)基于ip
环境配置:
被更新的主机的selinux应为Disabled状态(否则拒绝更新)
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update { 172.25.254.126; };
29 also-notify { 172.25.254.126; };
30 };
vim /etc/sysconfig/selinux ##更改selinux状态为disabled
cp -p /var/named/westos.com.zone /mnt/ ##备份,防止更新错误
chmod 770 /var/named ##增加写权限
systemctl restart named
[root@dns-server named]# getsebool -a | grep named
若named_write_master_zones --> off
setsebool -P named_write_master_zones 1
文件更新
在126这台主机上
[root@dns_server2 named]# nsupdate
> server 172.25.254.226
> update add hello.westos.com 86400 A 172.25.254.44
> send
在226/126上 dig hello.westos.com测试是否成功
可在/var/named/目录中,发现新增加了一个.jnl文件
如果想要查看westos.com.zone中的变化,需要先重启服务才能看到
文件删除
[root@dns_server2 ~]# nsupdate
> server 172.25.254.126
> update delete hello.westos.com
> send
在226/126上 dig hello.westos.com测试是否删除成功
(2)基于key
服务端设置:
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
cp /etc/rndc.key /etc/westos.key -p
vim /etc/westos.key
key"westos"{
algorithm hmac-md5;
secret "";
}
vim /etc/named.conf
44 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 westos; };
29 also-notify{ 172.25.254.126; };
30 };
systemctl restart named
测试
服务端:
scp Kwestos.+157+54139.* root@172.25.254.126:/mnt/
客户端
[root@dns-client ~]# nsupdate -k /mnt/Kwestos.+157+54139.key
> server 172.25.254.226
> update add hhh.westos.com 86400 A 172.25.254.99
> send
> quit
dig hhh.westos.com
9.DDNS(花生壳):
解决问题:防止域名所在主机网络工作模式为dhcp,ip地址改变时,域名所对应的ip地址没有及时更新,同时此服务也基于dns key。
服务端配置dns key
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos ##生成密钥
cat Kwestos.+157+35121.key
westos. IN KEY 512 3 157 o4NpZBHqONN49CC+PWVU1w==
cp /etc/rndc.key /etc/westos.key -p ##生成dns加密文件
vim /etc/westos.key
key"westos"{ ##key名称
algorithm hmac-md5;
secret "4NpZBHqONN49CC+PWVU1w=="; ##key的加密字符
}
vim /etc/named.conf
44 include "/etc/westos.key" ##指定dns服务读取的key文件
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update { key westos; }; ##指定westos可以被westoskey更新
29 also-notify{ 172.25.254.126; };
30 };
systemctl restart named
服务端配置dhcp
yum install dhcp -y
cp /usr/share/doc/dhcp*/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.126; ##网关地址
14 ddns-update-style interim; ##开启dhcp更新dns功能
25 subnet 172.25.254.0 netmask 255.255.255.0 { ##网络位与子网掩码
26 range 172.25.254.63 172.25.254.99; ##自动分配的范围
27 option routers 172.25.254.126; ##DNS地址
28 }
29
30
31 key westos { ##dhcp更新dns用到的密钥
32 algorithm hmac-md5;
33 secret o4NpZBHqONN49CC+PWVU1w==;
34 }
35
36 zone westos.com.{ ##指定dhcp更新的域名
37 primary 127.0.0.1; ##指定dns所在的主机ip
38 key westos; ##指定更新这个域用到的key名称
39 }
40
systemctl restart dhcpd
测试
设定客户端主机网络工作模式为dhcp
设定客户端主机的主机名news.westos.com,这个名称在原有的dns服务中没有解析
重启网络后看ip和主机名称的解析