DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53
配置高速缓存DNS服务器
1.配置yum源
2.查找DNS服务软件
3.下载dns
4.打开dns服务(需要手动输入新的**,才会开启成功)
5.打开网络配置文件 vim/etc/resolv.conf(配置指向dns缓存 ##114.114.114.114是运营商的dns服务器ip)
##客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端,否则 , 如果名称服务器在其缓存中有请求的信息 , 则会将非权威答案发送至客户端,如果缓存中没有信息 , 名称服务器将搜索权威名称服务器以查找信息 , 从根区域开始 , 按照DNS 层次结构向下搜索, 直至对于信息有具有权威性的名称服务器 , 以此为客户端获得答案。在此情况中,名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找。
6.打开dns配置文件
修改listen-on port 53 { any;};
allow-query { any; };
添加 forwarders {114.114.114.114}

7.刷新
8.测试dig www.taobao.com
对比两次dig www.taobao,com ,由于第一次DNS缓存时需要从运营商(114.114.114.114)来得到反馈,所以较慢,由于本机也是一个DNS缓存设备,自动记录保存第一次,第二次重本地获取反馈 ,速度较快。这个过程称为高速缓存DNS
正向解析(给网址解析IP)
1. vim /etc/named.rfc1912.zones (修改域名为hehe.com)
2.将named。localhost 里的内容复制到hehe.com.zone (方便实验的进行,##备份)
3.vim/hehe.com.zone
systemctl restart namde(刷新)
4 vim /etc/resolvs.conf (修改dns缓存为172.25.254.135)
5。dig hello.hehe.com 和 dig dns.hehe.com (查看对应域名解析ip是否正确)
双解析(输入一个域名会有两个ip随机出现,这个可以有效的保证服务器的正常工作)
1. vim/hehe.com.zone
2 systemctl restart named (刷新)
3.测试 dig www.hehe.com
反向解析 (给ip 解析域名)
1. vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file "westos.com.ptr";
allow-update { none; };
};
2 cd /var/named/
ls
cp -p named.loopback westos.com.ptr(备份)
3
4.刷新
5.测试 dig -x 172.25.254.111 和 dig -x 172.25.254.222 (查看反向解析是否成功)
基于DNS的内外网解析
##内外网看到的IP不同
虚拟机当dns端口 (内网)
1. cp -p hehe.com.zone hehe.com.inter (将hehe.con.zone的内容复制到hehe.com.inter)
ls
2.vim hehe.com.inter
##最下边%s/172.25.254/192.168.0/g (可以将其中的所有172.25.254的ip换成192.1368.0)
cat hehe.com.inter
2. cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter (这一步同样是复制内容)

3.vim /etc/named.rfc1912.inter
4.vim /etc/named.conf
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
*/ /* 中间所有命令无效*/
view localnet {
match-clients { 172.25.254.135; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
view view {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter";
};
5.systemctl restart named (刷新)
6测试.dig www.hehe.com
真机作为外网
1.vim /etc/resovly.conf (设置dns缓存来与172.25.254.135)
2.测试 dig www.hehe.com (外网解析后为另一个IP)
DNS的集群 (用一个dns去分担另一个dns 的压力)
##打开另一个虚拟机和这个虚拟机共同进行DNS的缓存
打开一个新的虚拟机server,配置ip,yum源头,下载dns服务,关闭防火墙
1.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; };
2.vim /etc/resolv.conf
3.vim /etc/named.rfc1912.zones
zone "hehe.com" IN {
type slave;
masters { 172.25.254.135; };
file "slaves/hehe.com.zone";
allow-update { none; };
};
4.systemctl restart named (需要手动)
在slave主机中
2.vim /etc/named.rfc1912.zones
zone "hehe.com" IN {
type master;
file "hehe.com.zone";
allow-update { none; };
also-notify { 172.25.254.235; };
};
3. systemctl restart named(刷新)
设置完成后在salve主机中
1.vim hehe.com.zone (修改一次ip之后,看在另一个虚拟机中是否会有同步)
在另一个虚拟机中:
在salve中:
在另一个虚拟机中:
DNS更新同步
第一个虚拟机desktop
1.vim /etc/named.rfc1912.zones
2.systemctl restart named
chmod 770 /var/named/
ll -d /var/named/
真机中: (添加一个ip)
在另一个虚拟机desktop中测试是否同步: dig test.hehe。com
在另一个虚拟机server中测试是否同步 dig test.hehe.com
DNS的**
删除上一个实验的步骤并且还原(保证实验环境的干净)
在desktop虚拟机中(salve主机)
1. dnssec-****** -a HMAC-MD5 -b 512 -n HOST hehe (生成一个名叫hehe的**)
ls
cat Khehe.+157+51046.key
cat Khehe.+157+51046.private
2.cp /etc/rndc.key /etc/hehe.key -p (将**的名字改为hehe)
vim /etc/hehe.key (将**的密码输入进去)

3.vim /etc/named.conf (将**给进去生效)
4.vim /etc/named.rfc1912.zones (将**资格给172.25.254.235)
5.systemctl restart named(刷新)
测试 (分别在真机中和sever虚拟机中测试)
server中可以创建
真机中(失败是因为没有**所以无法打开)