文章目录
关于DNS
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。
域名是分级的,一般分为:主机名.三级域名.二级域名.顶级域名.。注意,最后一个点代表的是根域,是所有域名的起点
域名查询分为递归查询和迭代查询,如图2所示。举例说明,如果客户端准备访问百度网站,客户端首先会检查本地缓存中是否有之前的查询记录,如果有,直接读取结果即可,如果没有相关的缓存记录,则向本地DNS服务器发送查询请求,也就是所谓的递归查询,本地DNS服务器如果有答案,就会将答案直接返回给客户端,但本地DNS服务器没有正确的答案时,它就需要向根服务器查询,但不是询问www.baidu.com对应的IP是多少,根服务器仅管理顶级域名,而且所有的顶级域名都属于根的管理范畴,所以此时本地DNS服务器向根查询结果是:根服务器会将它管理的com域对应的IP提供给本地DNS服务器,本地DNS服务器得到com域服务器的IP后,会再向com查询,然而com也没有最终的答案,com域服务器会将它所管理的baidu域服务器对应的IP提供给本地DNS服务器,最后本地DNS服务器再向baidu域服务器查询,询问该域下主机名为www的计算机对应的IP地址,由于www主机确实直接属于baidu域的管理范畴,所以baidu会将最终的正确答案返回给本地DNS服务器,最后本地DNS服务器将得到的结果返回给客户端,同时本地DNS服务器会将结果缓存起来,当下次再有相同的查询请求时,本地DNS服务器就可以直接从缓存中找到结果返回给客户端。
有关名词
A记录 是用来指定主机名(或域名)对应的IP地址。
AAAA记录 ipv6格式的主机名或域名对应IP地址。
CNAME记录 别名
MX记录 用来解析域名的邮件服务器。
==SOA == 授权起始主机。
serial number(序列号) 是域名记录的版本,每更改一次域名的任何DNS记录,版本号就会自动加一,这时secondary dns就会知道DNS记录发生更改,以便重新同步。
refresh(刷新时间) 告诉secondary dns多久应该查询primary dns,看看DNS记录是否有更新。每次查询时,secondary dns会向primary dns请求SOA记录。如果记录中的serial number跟secondary dns已有的序列号不一样,则会向primary dns请求传送域名的当前的DNS记录。
retry(重试时间) 如果想primary dns请求传送域名当前的DNS记录失败后,间隔重试时间后再次重试请求。一般来说,retry小于refresh。
expire(过期时间) 在过期时间之前,secondary dns会继续请求传送DNS记录,并且在此时间里,secondary dns会根据已有的记录应答相关的DNS查询。如果到了过期时间后,secondary dns会停止应答该域名的DNS查询。
min TTL(最小TTL) 域名所有记录的最小生存时间值。当用户DNS查询到记录后,将存在缓存中,直到至少过了这个时间才将缓存刷新重新查询。
有的DNS服务器还会有Negative caching TTL,就是当用户DNS查询到无此域名记录(NXDOMAIN)时,将把这个“没有此域名的记录”的声明保存在缓存中的时间。
DNS安装启用
基本信息 | 说明 |
---|---|
安装包 | bind.x86_64 |
主配置文件 | /etc/named.conf |
数据目录 | /var/named |
端口 | 53 |
启用dns
防火墙打开
测试
DNS server1 : 192.168.16.100 DNS server2 :192.168.16.101
client 1 : 192.168.16.102 client 2 : 192.168.16.103
报错信息
报错 | 意义 |
---|---|
no servers could be reached | 服务无法访问 |
服务启动失败 | 配置文件写错 journalctl -xe查询错误 |
dig 查询状态 | 意义 |
---|---|
NOERROR | 表示查询成功 |
REFUSED | 服务拒绝访问 |
SERVFAIL | 查询记录失败,(dns服务器无法到达上级,拒绝缓存) |
NXDOMAIN | 此域名A记录在dns中不存在 |
在client1中
高速缓存DNS
第一次
第二次
可以看到时间大大缩短
DNS正向解析
dns正向解析文件在/etc/named.rfc1912.zone
编辑 /var/named/westos.com.zone域名A记录文件
域名别名
再次访问会发现192.168.16.11在上面192.168.16.12 在下面 这是在一个域名有多个A记录时进行简单的轮询查询减小访问压力
邮件解析
编辑/var/named/westos.com.zone 添加邮件解析记录
解析成功
DNS反向解析
DNS的反向解析就是询问IP,解析对应的域名。反向解析的配置如下:
编辑 /etc/named.rfc1912.zones
创建编辑 /var/named/192.168.16.ptr
重启服务,测试
DNS双向解析
实验环境:
客户端2台
192.168.16.103
172.25.254.103
服务端1台双网卡主机
192.16816.100
172.25.254.100
服务器
客户机1
客户机2
实验步骤
vim /etc/resolv.conf #在192.168.16网段的客户主机中
nameserver 192.168.16.100
vim /etc/resolv.conf #在172.25.254网段的客户主机中
nameserver 172.25.254.100
要让不同的网段访问同一个域名时解析到的地址不同需要读取两套不同的配置文件
使用vim的文本替换把192网段替换成172网段
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
修改
修改主配置文件vim /etc/named.conf
重启服务,测试
172网段主机
192网段主机
DNS集群
在server1中编辑/etc/named.rfc1912.zones
also-notify是主动通知的辅助dns主机
修改/var/named/westos.com.zone的serial值一般更改为配置辅助dns服务器的当前日期
修改辅助server的/etc/named.conf
修改 /etc/named.rfc1912.zone
重启测试
DNS的更新
dns基于ip地址的更新
在dns server中设定:
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { 192.168.16.10; }; ##允许指定客户端更新westos域
also-notify { 192.168.16.30; };
};
重启测试
在另一台客户机
查看server日志
删除
测试
查看日志
dns基于key更新
基于ip更新并不安全 dns提供了更为安全的key认证
- 1 生成密钥
- 2 复制key文件 并编辑
key "westos" {
2 algorithm hmac-sha256;
3 secret "zzV1ktHUgw/+LfjWewttSQ==" ##私钥Kwestos.+163+32425.key中的加密字符
4 };
- 3 编辑 /etc/named.conf 包含我们的key
- 4 编辑/etc/named.rfc1912.zones
- 5 重启测试
被拒绝 因为没有key
server日志
- 6 发放私钥key
- 7 指定私钥认证
报错说时间未同步 - 8 开启时间同步
在server /etc/chrony.conf中
- 9 客户机同步server时间
- 10 重启服务再次测试
DDNS(DNS+DHCP)
做实验之前先用快照还原
服务端
- 1 安装DHCP环境
- 2 配置DHCP环境
- 3 打开dns key认证功能
客户端
- 4 把网络IP获取方式改为DHCP
- 5 重启网络 dig 本机主机名 test.westos.com
为了实验效果 重新设置服务端dhcpd分配的ip区间