1.DNS资源记录
DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型
A:名称至IPv4地址
AAAA:名称至IPv6地址
CNAME:名称之“规范名称”(包含A/AAAA记录的另一个名称)
PTR:IPv4/IPv6 地址至名称
MX:用于名称的邮件交换器(向何处发送电子邮件)
NS:域名的名称服务器
SOA:“授权起始”,DNS区域的信息(管理信息)
2.DNS排错
它显示来自DNS查找的详细信息,其中包括为什么查询失败:
NOERROR:查询成功
NXDOMAIN:DNS 服务器提示不存在这样的名称
SERVFAIL:DNS服务器停机或DNSSSEC验证失败
PEFUSED:DNS服务器拒绝回答(出于访问控制的原因)
3如何高速缓存DNS
在DNS服务机上
yum install bind -y
systemctl start named
systemctl stop firewalld
systemctl disable firewalld
netstat -autlupe | grep named
vim /etc/named.conf ##打开配置文件做以下修改
13 listen-on port 53 { any; }; ##对任何ip开启53接口
19 allow-query { any; }; ##允许任何人访问
20 forwarders { 114.114.114.114; };
35 dnssec-validation no; ##设置网警不检查
systemctl restart named ##重启服务
在客户机上
vim /etc/resolv.conf
添加一行
nameserver 172.25.61.150 ##这里是服务机上的ip
测试
第一次查询
第二次查询
第三次查询
测试完成,可以看到在进行过第一次查询之后,随后其他主机在查询的时候会快很多。
4.权威dns的正向解析
vim /etc/named.conf
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
};
cd /var/named/
cp -p named.localhost westos.com.zone
vim westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. gui.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.134
www A 172.25.254.233
bbs A 172.25.254.234
~
systemctl restart named ##重启服务,如果提示错误,说明配置文件编写出错
dig www.westos.com ##测试,查询刚才设定的网络
5.权威dns反向解析
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 };
cp -p named.loopback 172.25.254.ptr
vim 172.25.254.ptr
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
$TTL 1D
NS dns.westos.com.
dns A 172.25.254.134
100 PTR dns.westos.com.
101 PTR www.westos.com
102 PTR www.hahha.com.
systemctl restart named ##重启服务
dig -x 172.25.254.102 ##测试
6.权威dns双向解析
vim /etc/named.conf
/*zone "." IN {
54 type hint;
55 file "named.ca";
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
66 view internet{
67 match-clients { any; };
68 zone "." IN{
69 type hint;
70 file "named.ca";
71 };
72 include "/etc/named.rfc1912.zones.inters";
73 };
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inters -p ##注意名称保持一致
vim /etc/named.rfc1912.zones.inters :
cp -p westos.com.zone westos.com.inters ##注意名称保持一致
vim westos.com.inters
systemctl restart named
测试:
在主机进行查询时,查询的是172.25.61.111
在其他主机上进行查询时,查询的是1.1.1.111
7.辅助dns
在日常服务中,由于访问量的不断增加,一个dns服务对于多个访问做不到及时的应答,如果在继续增加访问量,dns可能会崩溃,如何有效的解决这个问题呢,我们可以建立多个辅助dns来帮助主dns分担服务压力。
主dns的设定
vim /etc/named.conf
2 options {
13 listen-on port 53 { any; }; ##第一处修改
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 allow-query { any; }; ##第二处修改
57 include "/etc/named.rfc1912.zones.inters"
vim /etc/named.rfc1912.zones.inters ##和上面/etc/named.conf 里面include后的文件名保持一致
26 zone "westos.com" IN {
27 type master;
28 file "westos.com.inters"; ## /var/named 里面存在此文件
29 allow-update { none; };
30 also-notify { 172.25.61.50; }; ##辅助dns的ip
31 };
systemctl restart named
vim /etc/resolv.conf
1 # Generated by NetworkManager
2 domain ilt.example.com
3 search ilt.example.com example.com localdomain.localdomain
4 nameserver 172.25.61.150 ##添加自己主机的ip
副dns设定
vim /etc/named.conf
options {
listen-on port 53 { any; }; ##第一处修改
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; ##第二处修改
include "/etc/named.rfc1912.zones"
vim /etc/named.rfc1912.zones ##与上面文件名保持一致
zone "westos.com" IN {
type slave;
masters { 172.25.61.150; }; ##主dns服务器ip
file "slave/westos.com.inters";
allow-update { none; };
};
systemctl restart named
vim /etc/resolv.conf
#Generated by NetworkManager
search westos.com
nameserver 172.25.61.50 ##添加本机ip
测试:在主dns和辅助dns查询结果一致
主dns
辅助dns
拓展:主dns上信息改变之后辅助dns如何同步更新呢
vim westos.com.inters
1 $TTL 1D
2 @ IN SOA dns.westos.com root.westos.com. (
3 2 ; serial ##每次更改这个值,为了规范我们常常写成时间加上次数,方便
4 1D ; refresh 管理,例如2019030301
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 1.1.1.144
10 www A 1.1.1.145
~
8.dns的远程更新
基于ip的
再此之前,要注意以下几点
两台主机时间同步
selinux状态为disabled
150主机/var/named/权限为770
vim /etc/named.rfc1912.zones.inters
zone "westos.com" IN {
28 type master;
29 file "westos.com.inters";
30 allow-update { 172.25.61.50; };
31 also-notify { 172.25.61.50; };
32 };
systemctl restart named
测试:
nsupdate
server 172.25.61.150
update add bbs.westos.com 86400 A 1.1.1.3
send
quit
基于key
注意前提条件据基于ip的一样
准备
cp -p westos.com.zone /mnt/ ##备份
rm -rf westos.com.zone
cp -p /mnt/westos.com.zone . ##还原
systemctl restart named
在主机上
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
cat Kwestos.+157+16771.key
westos. IN KEY 512 3 157 ePTyTPFbw8R6AS8UCCRqSg==
cp /etc/rndc.key /etc/westos.key -p ##复制一个模板
vim /etc/westos.key ##将生成的密钥拷贝进去
vim /etc/named.rfc1912.zones.inters
7 zone "westos.com" IN {
28 type master;
29 file "westos.com.zone";
30 allow-update { key westos; };
31 also-notify { 172.25.61.50; };
32 };
systemctl restart named
scp Kwestos.+157+16771.key Kwestos.+157+16771.private root@172.25.61.50: /mnt/ 将密钥发给另一台主机
在另一台主机上
nsupdate -k Kwestos.+157+16771.key
测试:
9.DDNS(动态域名解析)
实验前的条件:
两台主机,在一台主机上搭建好DHCP服务,使另一台主机能够获得动态ip,能够使用key进行远程更新
在搭建好DHCP服务的这台主机上,关闭火墙。
vim /etc/dhcp/dhcpd.conf
7 option domain-name "westos.com";
8 option domain-name-servers 172.25.254.134;
14 ddns-update-style interim;
32 subnet 172.25.254.0 netmask 255.255.255.0 {
33 range 172.25.254.60 172.25.254.84;
34 option routers 172.25.254.234;
35 }
36 key westos{
37 algorithm hmac-md5;
38 secret RoMoVSrtEQudgrh3u/6cvw==;
39
40 };
41 zone westos.com. {
42 primary 172.25.254.134;
43 key westos;
44 }
systemctl restart named ##重启dns服务
systemctl restart dhcpd.service ##重启dhcp服务
在另一台主机上
修改主机名
news.westos.com
测试:
dig news.westos.com
我们可以看到主机获得了一个动态ip,在查询的时候获得解析来自于刚才获得的动态ip,之后我们还可以改变DHCP服务器中动态ip范围,让他重新获得一个动态ip,在进行查询观察现象。