1、高速缓存
DNS(Domain Name Server,域名服务器)是进行域名和与之对应的IP地址转化的服务器。DNS中保存了一张域名和与之对应的IP地址的表,以解析消息的域名。
高速缓存:本地主机在第一次访问时需要解析,在这次之后 DNS的高速缓存主机已经拿过来,缓存在高速缓存主机中,再去访问就会很快
-
先配置网络,让真机当路由,在虚拟机中配置网络,让虚拟机可以上网。 切记 : 在真机上把防火墙的masquerade策略打开
-
在服务端,也就是server虚拟机上安装bind.x86_64 并开启named
-
虚拟机把火墙关掉
-
在测试端(也就是真机),修改dns
vim /etc/resolv.confnameserver 172.25.254.160
- 但是这时测试 : dig www.baidu.com 什么都没有
- 在服务端修改文件 vim /etc/named.conf
listen-on port 53 {any; }; ## 让所有主机都可以对DNS服务进行查询
- 在测试端(也就是真机), 测试: dig www.baidu.com 这时显示refused
- 在服务端修改文件 vim /etc/named.conf
allow-query { any; }; ## 设置任何主机可以针对我的DNS服务进行查询请求
forwarders {114.114.114.114; }; ##设置上层DNS服务器
- 在服务端修改文件 vim /etc/named.conf dns不检测官方合法性
- 这时测试端通过dig查看
- 修改server虚拟机的nameserver 为服务端的ip 这时通过其他主机再 dig www.baidu.com 速度为0 因为有缓存了
2、 DNS 的正向解析
==配置DNS正向解析步骤:编辑/etc/named.conf 删除刚才配置的上一层DNS
“forwarders { 114.114.114.114; };”
在配置文件最后我们可以看到配置“域”文件 ==
- 配置 /etc/named.rfc1912.zones
- cd /var/named/ 可以复制本身提供的模版文件然后进行修改,复制时一定要加参数-p,将文件的权限信息也复制。named.localhost为本地回环文件
cp -p named.localhost mingzi.com.zone - 配置/var/named/mingzi.com.zone 区域数据文件 (小心一点,注意点和@)
蓝色部分最后面有一个“.” 如果不写点系统会自动补齐在配置域文件中新加的域名,所以要么只写“dns”,要么写“dns.westos.com.”
TTL 1D 表示一天刷新一次 @所维护的域名
- 重启named服务
- 测试 dig dns mingzi.com 状态为noerror;SERVER为ip地址
再次访问时,时间为0。
3、 MX
- 基础知识
(1)域名转换
dns:负责所有的域名转换成地址
postfix 提供25接口
(2)MX
mx:邮件解析记录 作用:查找
smtp:邮件传输协议
mailq:邮件队列
10:邮件级别为10
mail:查看邮件
mail -u student :查看student用户的邮件
mailq : 查看发送的邮件 - 文件配置
(1)配置/var/named/mingzi.com.zone(小心一点,注意点和@)
把mx解析加上 mingzi.com. MX 4(邮件级别为4) 172.25.254.199.
(2) 测试端测试:mail student@mingzi.com
(3)mailq 查看
(4)dig查看: dig -t mx mingzi.com
4、DNS的反向解析
配置反向解析与正向解析方法基本相同 ptr:反向解析记录
- 编辑/etc/named.rfc1912.zones文件添加反解的域
- cd /var/named/下创建文件, 也可以复制本身提供的模版文件,复制时一定要加参数-p,将文件的权限也复制。
cp -p named.loopback dizhi.ptr - 编辑文件(注意@符号和.)
- 测试:dig -x 172.25.254.111
dig -x 172.25.254.123
5、DNS的双向解析
先把反向解析删除,先测试正向的,反向的方法一样
不同的人解析得到不同的dns,实现分流。不同来源的用户。能够取得他们自己的zone响应。DNS根据不同的用户来源,分别给与同一个主机名的不同解析。
-
server虚拟机当客户端,真机和desktop为测试端
先在server虚拟机上设置ip地址,一个当内网(10.10.10.10),一个当外网 (172.25.254.106)。
(1) 配置:/etc/sysconfig/network-scripts/ifcfg-eth0
(2)设置后重启网络,查看ip addr show eth0
-
配置desktop(内网)
(1)配置:/etc/sysconfig/network-scripts/ifcfg-eth0
(2)测试:ping 10.10.10.10 看是否ping通,如果不通可以查看防火墙是否关闭
(3)设置dns指向:vim /etc/resolv.conf指向内网的IP
nameserver 10.10.10.10 -
设置服务端 server 虚拟机文件
(1)cd /var/named
cp -p mingzi.com.zone mingzi.com.inter
(2)更改mingzi.com.inter:vim mingzi.com.inter
将所有的172.25.254网段更改成10.10.10网段:%s/172.25.254/10.10.10/
(3)cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter ##因为在之前的named.rfc1912.zones文件中,加入 mingzi.com.inter,系统不知道你到底访问的是mingzi.com.zone还是mingzi.com.inter,所以此处需要更新的/etc/named.rfc1912.inter
(4)vim /etc/named.rfc1912.inter ##更改配置文件1)将复制过来的之前外网的文件更改为內网的:
2)注释之前的外网。
3)将內网和外网的加入此配置文件更改为:
5)systemctl restart named ##重启服务
- 测试:
在测试端desktop:
dig www.mingzi.com ##网段为內网网段
在测试端真机:
dig dns.mingzi.com ##网段为外网网段
6、DNS集群,辅助DNS
serial:主DNS和从DNS是否同步的标志
本实验需要两台主机 主DNS:server 辅DNS:desktop
- 先配置desktop网络,设为172.25.254.170
- 关闭desktop火墙
- 在desktop上安装bind :yum install bind -y
- 配置 /etc/named.conf文件 和上文中所提到的一样修改三个地方
- 配置 /etc/named.rfc1912.zones 编写从属关系
- 重启网络后会在/var/named/slaves下看到 mingzi.com.zone文件
- 测试端 nameserver指向从属的
- 配置server虚拟机
配置 /etc/named.rfc1912.zones
- 测试(切记,修改完配置文件要重启服务):
(1)真机dns指向:172.25.254.160;
(2)desktop虚拟机DNS指向辅助:172.25.254.170;
测试时更改 /var/named/mingzi.com.zone
(3)更改ip地址号 ,真机端可以更改ip号,而辅助测试端不会更改;
真机:
desktop虚拟机:
(2) 更改 /var/named/mingzi.com.zone下的ip地址号,并更改第一行serial数字,测试时,真机端和辅助测试端ip号都会更改。
因为serial为主DNS和从DNS是否同步的标志,只有更改了这个参数,系统才知道文件更改,从DNS才会更新文件。
真机:
desktop虚拟机:
7、DNS远程更新
-
服务端:
(1)先查看getenforce状态,如果是disable就可以直接做
(2)如果是Enforcing状态1. 先查看named_write_master_zones是否开启 2. 如果没有开启,先打开
(3)先将/var/named/mingzi.com.zone备份一下
(4)给/var/named/ 一个 770 的权限 ## chmod 770 /var/named
(5)开启辅助更新:配置/etc/named.rfc1912.zones
(6)重启服务
- 测试端:
(1)nsupdate
(2)server 172.25.254.10 ##更新的服务端的ip
(3)update add test.mingzi.com 86440 A 172.25.254.33 ##添加一个test ip为122
(4) send
- 这时测试:dig test.mingzi.com 可以查看到它的存在,且ip为33
- 在服务端可以看到mingzi.com.zone. jnl 这不是文件,是数据
- 在服务端更新服务后就可以看到mingzi.com.zone内容更改
8、DNS远程更新的加密
- 在服务端生成密钥之前,要先确保/var/name/文件为最开始的文件,把mingzi.com.zone. jnl删掉
- 在服务端生成密钥 :dnssec-keygen -a HMAC-MD5 -b 100 -n HOST mingzikey
- 查看私钥
- 生成一个/etc/mingzi.key : cp -p /etc/rndc.key /etc/mingzi.key
- 将查看到的私钥或公钥复制到/etc/mingzi.key中
- vim /etc/named.conf ##将mingzi.key加入到配置文件里
- vim /etc/named.rfc1912.zones ##允许钥匙更新
- systemctl restart named ##重启服务
- scp Kwestoskey.+157+60201.* root@172.25.254.170:/mnt/ ##将钥匙给172.25.254.170的/mnt目录
- 测试:
在desktop虚拟机实验
9、 ddns : 动态域名解析
dns+dhcp = ddns : 动态域名解析 =花生壳
目前使用最多还是动态网络,如果遇到动态网络,如何在第一时间对其进行解析。
这里要提到一个服务器ddns服务器。
动态域名解析服务,是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连
接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的
服务器程序,服务程序负责提供DNS服务并实现动态域名解析。就是 DDNS捕获用户每次 变化的
IP地址,然后将其与域名相对应,这样域名就可以始终解析到非固定IP的服务器上,互联网用户
通过本地的域名服务器获得网站域名的IP地址,从而可以访问网站的服务。
-
先将dhcp服务配置好
-
测试
(1)在server虚拟机(服务端)安装dhcp
(2)配置文件
(3)在desktop虚拟机上设置网络为dhcp
(4)查看网络是否获取的为server上配置的范围内 -
dns的key更新
(1)配置dhcpd.conf
第十四行:ddns-update-style interim;
(2)文件最后添加可更新dns的key
(3) 文件最后添加要更新dns的域信息
-
测试
(1)设置一台主机的网络为dhcp,该实验用的是desktop虚拟机
(2)设定主机名称为xxx.域名.com,该实验设置的是shopping.mingzi.com
(3)重启网络看解析