-什么是DNS:
DNS是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
-什么是高速缓存:
高速缓存是一种特殊的存储器子系统,其中复制了频繁使用的数据,以利于CPU快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。
配置静态网络 vim /etc/sysconfig/network-scripts/ifcfg-eth0
2 BOOTPROTO=none
3 IPADDR=172.25.254.122
4 PREFIX=24
5 GATEWAY=172.25.254.22
更改全局网关 vim /etc/sysconfig/network
3 GATEWAY=172.25.254.22
修改DNS配置文件 vim /etc/resolv.conf
3 nameserver 114.114.114.114
重启网络 systemctl restart network
#每次更改网络配置文件后都要重启网络
检查网络连接状态 ping 172.25.254.22
更改主机名称 hostnamectl set-hostname dns-server.example.com
配置yum源 vim /etc/yum.repos.d/yum.repo
5 baseurl=http://172.25.254.22/rhel7.0
##地址伪装功能开启,真实主机变成路由器
firewall-cmd --list-all
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --list-all
>此时,虚拟机连上网络可以进行正常上网(ping, dig)
下载bind yum install bind -y
开启named服务 systemctl start named
##第一次开启服务时,因为加密字符不够,服务无法正常开启,敲击键盘或移动鼠标即可正常开启服务
关闭服务端防火墙 systemctl stop firewalld
查看named服务包含配置文件 rpm -qc bind
重启named服务 systemctl restart named
查看监听端口 netstat -antlupe | grep named
测试: 客户端vim /etc/resolv.conf
3 nameserver 172.25.254.122
##############################################
vim /etc/named.conf
1.服务端服务只允许53接口回环使用
客户端无法访问SERVFAIL
2.服务端53端口共享,但只允许本地用户访问
11 listen-on port 53 { any; };
客户端访问被拒绝REFUSED
3.服务端域名没有解析
11 listen-on port 53 { any; };
17 allow-query { any; };
客户端域名无法解析SERVFAIL
4.全部配置完成
11 listen-on port 53 { any; };
17 allow-query { any; };
18 forearders { 114.114.114.114; };
32 dnssec-validation no #是否进行DNSSEC确认开关
NOERROR
客户端访问成功(第一次访问时时长相对较长,而后因DNS查询信息已经缓存开始进行高速缓存)##
#############################################
修改配置文件 vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };
修改子配置文件 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 named.localhost westos.com.zone
vim westos.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.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.122 ##名称至IPv4地址
10 www A 172.25.254.122
重启named服务 systemctl restart named
修改本地dns解析地址 vim /etc/resolv.conf
3 nameserver 172.25.254.122
修改配置子文件 vim /etc/named.rfc1912.zones
49 zone "254.25.172.in-addr.arpa" IN {
50 type master;
51 file "westos.com.ptr";
52 allow-update { none; };
53 };
配置反向解析文件 cd /var/named/
cp -p named.loopback westos.com.ptr
vim westos.com.ptr
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.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.122
10 111 PTR linux.westos.com. ##IPv4/IPv6地址至名称
11 112 PTR python.westos.com.
重启named服务 systemctl restart named
本机测试: dig -x 172.25.254.111
修改配置文件 /var/named/westos.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.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.124
10 www CNAME linux
11 linux A 172.25.254.111
12 linux A 172.25.254.222
重启named服务 systemctl restart named
辅助主机:
配置yum源
下载bind服务 yum install bind -y
开启named服务 systemctl start named
systemctl enable named
设置防火墙 firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
firewall-cmd --list-all
修改本地dns解析地址 vim /etc/resolv.conf
3 nameserver 172.25.254.122
修改配置子文件 vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type slave; ##指定为辅dns
27 masters { 172.25.254.122; }; ##主dns的ip,从122主机同步信息
28 file "slaves/westos.com.zone"; ##主dns传输的内容存放位置
29 allow-update { none; }; ##不允许远程主机更新
30 };
修改主配置文件 vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };
重启named服务 systemctl restart named
本地主机:
修改子配置文件 vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master; ##该服务为主dns
27 file "westos.com.zone";
28 allow-update { none; };
29 allow-transfer { 172.25.254.222; }; ##允许哪台主机同步
30 also-notify { 172.25.254.222; }; ##当主dns文件变化时自动通知哪台主机
31 };
修改配置子文件文件 vim westos.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.westos.com. (
3 0 ; serial ##最后一次修改时间(月,日,次数)
4 1D ; refresh ##自动更新时间1d
5 1H ; retry ##再次刷新时间1h
6 1W ; expire ##到期时间
7 H ) ; minimum ##最低限度
8 NS dns.westos.com.
9 dns A 172.25.254.122
10 www CNAME linux
11 linux A 172.25.254.111
12linux A 172.25.254.222
重启named服务 systemctl restart named
修改dns-server端对应的ip,并修改序列号,重启服务后自动更新到slave端
###先还原主配置文件的所有内容
其他主机:
修改本地dns解析地址 vim /etc/resolv.conf
3 nameserver 172.25.254.122
本机:
配置双向解析文件 cp -p /var/named/westos.com.zone /var/named/westos.com.inter
新建子配置文件 cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
修改配置文件文件 vim westos.com.inter
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.westos.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 H ) ; minimum
8 NS dns.westos.com.
9 dns A 192.25.254.111
10 www A 192.25.254.222
修改子配置文件 vim /etc/named.rfc1912.inter
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.inter";
28 allow-update { none; };
29 allow-transfer { 172.25.254.222; };
30 also-notify { 172.25.254.222; };
31 };
修改主配置文件 /etc/named.conf
注释原来的zone,新增本地(local)域名解析和其他主机(any)域名解析
52 #zone "." IN {
53 # type hint;
54 # file "named.ca";
55 #};
56
57 view localnet{
58 match-clients{ 172.25.254.122; };
59 zone "." IN {
60 type hint;
61 file "named.ca";
62 };
63 include "/etc/named.rfc1912.zones";
64 };
65
66 view anynet{
67 match-clients{ any; };
68 zone "." IN {
69 type hint;
70 file "named.ca";
71 };
72 include "/etc/named.rfc1912.inter";
73 };
74
75 #include "/etc/named.rfc1912.zones";
76 #include "/etc/named.root.key";
重启named服务 systemctl restart named
dig www.westos.com
五.远程更新:
###实验前需要先还原更改的配置文件
###selinux不能为enforcing
1.更新dns:
进行备份 cp -p /var/named/westos.com.zone /mnt
修改本地配置文件 vim /etc/named.rfc1912.zones
28 allow-update { 172.25.254.222; };
修改权限 chmod g+w /var/named
重启named服务 systemctl restart named
远程主机:dns更新 nsupdate
> server 172.25.254.122
添加 > update add hello.westos.com 86400 A 172.25.254.150 ##,86400为1天秒数
删除 > update delete python.westos.com
> send
> quit
本地主机:
重启named服务 systemctl restart named
生成westos.com.zone.jnl文件
westos.com.zone被改变
还原配置文件 mv /mnt/westos.com.zone /var/named/
生成加密钥匙 dnssec-keygen -a hmac-md5 -n HOST -b 128 westos ##-a加密方式 -b密码大小bits -n域名解析
查看生成的key内容 ls
cat Kwestos.+157+59089.private
编辑密钥文件 cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
1 key "westos" {
2 algorithm hmac-md5;
3 secret "生成的密钥==";
4 };
修改配置文件 vim /etc/named.rfc1912.zones
28 allow-update { key westos; }; ##只允许有钥匙的主机对该dns进行动态更新;
修改主配置文件 vim /etc/named.conf
44 include "/etc/westos.key"; ##新增密钥文件
##该配置放在logging模块前面,因为配置是按顺序读取的;
重启named服务 systemctl restart named
把密钥文件传送给远程主机 scp Kwestos.+157+59089.* [email protected]:/mnt/
远程主机:
在mnt下实验 cd /mnt
远程更新 nsupdate -k Kwestos.+157+59089.private
> server 172.25.254.122
> update add hello.westos.com 86400 A 172.25.254.111
> send
> quit
生成westos.com.zone.jnl文件,westos.com.zone被改变
八.DNS的动态域名解析:
本实验是基于key认证远程更新的实验,同时还需要还原westos.com.zone文件
安装dhcp服务 yum install dhcp -y
配置dhcp服务的配置文件 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 114.114.114.114;
14 ddns-update-style interim;
15
16 subnet 172.25.254.0 netmask 255.255.255.0 {
17 range 172.25.254.100 172.25.254.130;
18 option routers 172.25.254.22;
19 }
20
21 key westos {
22 algorithm hmac-md5;
23 secret Bd66uE80ZYCgI1k0AV9xMg==;
24 };
25 zone westos.com. {
26 primary 127.0.0.1;
27 key westos;
28 }
重启dhcp服务 systemctl restart dhcpd
客户端:
重启named服务 systemctl restart network
查看分配的动态IP ifconfig
更改主机名称 hostnamedctl set-hostname test.westos.com
dig test.westos.com
服务端主机也同步更新