网上关于 DNS 的文章其实一搜索一大把,但是看别人的文档一般都会有个问题,乱,不讲究,全是 ctrl c + ctrl v,我个人是看不下去的。头皮发麻。所以决定自己来写写这方面的东西,当然很多概念性的东西还是来源于网络。至于写这篇的目的其实算是做个总结。对于 DNS 这个东西。它可能不是你工作的必须,但是有它能够解决你很多公司内网中复杂问题。我们后面提到的企业级,可能更多的还是说公司内网这样的环境,至于生产环境,人有多大胆,地有多大产吧。
DNS 概念性东西
FQDN:完全限定域名,即每个域在全球唯一,域不是域名,google.com 是域, 是域名。
域可以分为根域(.)和***域(TLD)
***域又可以分为三类:
1. 通用***域(.com 商业机构,.org 非营利性组织,.net 网络服务机构等)
2. 国家***域(.cn 中国,.uk 英国,.us 美国,.jp 日本)
3. 反向域(基础建设***域,.arpa)
DNS 查询方式包含递归和迭代:
1. 递归是客户端发起一次请求给 DNS 服务器,通过多次查找返回正确解析。
2. 迭代是发出多次请求查询不同的 DNS 服务器。
解析方式包含正向解析和反向解析:正向解析指代将 FQDN 转换成 IP,反向则相反。
一般 DNS 的服务器类型包含:主从 DNS 服务器,缓存服务器,转发服务器。
主从好理解,就是从自动更新同步主的配置,作为 backup 存在。
缓存的服务器作用在于使用递归查询,将查询到的结果返回客户端,并缓存查询的结果。
转发服务器作用在于当发现查询不是本机的时候则将请求转发出去。
DNS 监听 TCP 和 UDP 都是 53 端口。
以下是一次完整的请求大致过程:
从客户机到服务器之前采用得是递归查询,而服务器之间则是采用迭代查询。
DNS 记录类型:DNS 域名数据库由资源记录和区文件指令组成。
SOA 记录:起始授权机构记录,SOA 备注说明了众多 NS(name server)记录中谁是主名称服务器,不参与功能,但是不能缺少。
NS 记录:域授权记录,当请求到达根域的时候,通过 NS 记录找到对应的域。
A 记录:当通过 NS 记录到达域以后,比如访问 ,通过 NS 我们找到了 baidu.com,此时就需要通过 A 记录找到 www。
MX:将该域下的所有邮件服务器地址指向邮件服务器。
AAAA 记录:A 记录处理 IPV4,AAAA 处理 IPV6。
PTR 记录:反向解析,将 IP 解析成域名。
CNAME:别名记录,允许多个名字映射到另外一个域名。比如我们 ping 百度的时候可以发现返回其实是 这个域名返回。所有 其实是个别名。
搭建单台 DNS
我们这里准备了三台虚拟机:
IP系统说明192.168.100.111 CentOS Linux release 7.5 DNS 服务器,主机名:demo-node1
192.168.100.112 CentOS Linux release 7.5 客户机,主机名:demo-node2
192.168.100.113 CentOS Linux release 7.5 客户机,主机名:demo-node3
1. DNS 服务器安装 bind 服务:
yum -y install bind-utils bind bind-devel bind-libs