须掌握概念
-
DNS数据库的记录:正解、反解、Zone的意义
正解:从主机名查询到IP的流程
反解:从IP反解析到主机名的流程
Zone:无论正解反解,每个域的记录就是一个区域(zone) -
Zone记录的标志
SOA:开始验证(Start of Authority)的缩写
NS:名称服务器(Name Server)的缩写,后面记录的数据是DNS服务器的意思
A:地址(Address)的缩写,后面记录的是IP的对应
PTR:指向(PoinTeR)的缩写,后面记录的数据就是反解到主机名 -
每台DNS都需要的正解 Zone:hint
当DNS服务器在自己的数据库找不到所需的信息是,一定会去找"."根服务器,所以就需要有记录;这个记录"."的Zone的类型,就被称为hint类型;一台简单正解DNS服务器,基本上要有两个Zone,一个是hint,一个是关于自己域的正解Zone,如图:
-
DNS数据库类型:hint、master / slave 架构
除上面提到 hint 类型的数据库文件外,还有两个基本类型,分别是 master (主人、主要) 数据库与 slave (奴隶、次要)数据库类型, master / slave 就是用来解决不同 DNS 服务器上面的数据同步问题
——master:
该类型的DNS数据库中,里面所有的主机名相关信息,都需要管理员手动修改与设置,且完成后需要重启DNS服务来读取正确的数据库内容,该种类型的数据库,也能提供数据库内容给 slave 的DNS服务器
——slave:
slave 必须与 master 相互搭配,设置主辅DNS服务器是,指定主服务器为 master,辅服务器为 slave ,当要修改一个对应名称是,只需要手动更改 master 服务器的配置文件,重启 master 服务器,辅 slave 服务器就会自动地被通知更新
客户端设置
-
相关配置文件
/etc/hosts:醉着的Hostname对应的IP文件
/etc/resolv.conf:重要,DNS服务器IP记录处,主要设置查询的DNS服务器指向
/etc/nsswitch.conf:决定先使用 /etc/hosts 还是 /etc/resolv.conf
-
DNS 正、反解查询命令:dig(主流)
dig # 域名解析 -t type:查询的数据主要有 MX、NS、SOA等类型 -x :查询反解信息,非常重要
DNS服务器详细设置
-
正解区域数据库文件记录
1.TTL:time to live 的缩写,记录被查询到后,保存时间 2. @:代表 Zone 的意思,就是在 name.conf 中指定 zone 区域字段时,""内那个域名,此处是 westos.com 3. IN :是固定搭配,必须有 4. SOA:查询管理域名服务器的管理信息,主要与区域有关,通常跟七个参数(master DNS服务器主机名、管理员的 E-mail、 序号、更新频率、重试时间、失效时间、缓存时间)序号、更新频率、重试时间、失效时间、缓存时间) 5.NS:查询管理区域名(Zone)的服务器主机名,后面跟服务器主机名 6.A、AAAA:查询IP的记录,后面跟主机IP ... ... # 常见正解文件 RR 信息 主机名 IN A IPv4 主机名 IN A IPv6 域名. IN NS 管理该域名的服务器主机名 域名. IN MX 顺序数字 接收邮件的服务器主机名 主机别名. IN CNAME 实际代表这个主机别名的主机名 ... CNAME:设置某主机名的别名,当一个IP是给很多主机名使用时,只要给一个主机名设置A,其他都用CNAME,则当IP更改时,只要修改A MX:查询某域名的邮件服务器主机名,设定MX服务器时,必须有A标志
-
反解区域数据库文件
以 www.westos.com 为例,从整个域的概念看,越右边出现的名称代表域越大,则追踪时,由大范围到小范围找,所有反解的 Zone 必须将 IP 反过来写,且在结尾加上 .in-addr.arpa 的字样# 划重点: PTR就是反解,查询 IP 所对应的主机名 区域数据文件中,IP 后对应的主机名尽量使用完整的 FQDN,且加上小数点(.)
-
主配置文件
options:规范DNS服务器的权限(可否查询、forward 与否等)
directory:区域数据库文件存放位置
allow-query:允许哪些客户端进行DNS查询
allow-transfer{ none; };:是否允许来自 slave DNS 对我的整个领域数据进行传送,有 slave DNS 服务器再开
zone:设置Zone(domain name)以及 zone file(/var/named/***) 和 type(master/slave/hint)
-
DNS 安装、启动、查看与防火墙
[root@localhost ~] # yum install bind.x86_64 -y # 安装该架构的bind软件(DNS服务器包) [root@localhost ~] # systemctl start named # 启动 DNS 服务(named守护进程) # 启动named时,若长时间无反应,则说明加密字符长度不足,另开shell输入乱码即可 [root@localhost ~] # firewall-cmd --permanent --add-service=dns # 防火墙允许dns服务通过 # 有问题看/var/log/messages日志文件
-
数据库更新
1.先针对要更改的 Zone 的数据库文件做更新,加入 RR 标志 2.更改该 zone file 的序号(serial),即 SOA 的第三个参数,将序号变大 3.重启named 或 让named 重读配置文件