DNS解析流程: 1. 客户端查询自己的缓存(包含 hosts 中的记录),如果没有将查询发送 /etc/resolv.conf 中的 DNS 服务器 2. 如果本地 DNS 服务器对于请求的信息具有 权威性 ,会将(权威答案)发送到客户端。 3. 否则( 不具有权威性 ),如果 DNS 服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端 4. 如果缓存中没有该查询信息, DNS 服务器将搜索权威 DNS 服务器以查找信息: a. 从根区域开始,按照 DNS 层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答 案 DNS 服务器将信息传递给客户端 ,并在自己的缓存中保留一个副本,以备以后查找。 b. 转发到其它 DNS 服务器 1.安装dns服务器 shell# yum y install bind bind chroot shell# systemctl restart named shell# systemctl enable named #添加防火墙 shell# firewall cmd permanent a dd service=dns shell# firewall cmd reload 2.主配置文件(添加区域) shell# vim /etc/named.conf #配置文件 options { listen-on port 53 { any; }; #修改为any listen-on-v6 port 53 { any; }; #修改为any 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; #修改为any forwarders { 114.114.114.114;192.168.80.2; }; #转发到上一级dns #根区域 zone "." IN { type hint; file "named.ca"; }; #添加区域(changlidong.com) zone "changlidong.com" { type master; file "changlidong.com.zone"; #配置文件 }; #添加去(labdocker) zone "labdocker" { type master; file "labdocker.com.zone"; #配置文件 }; 3.区域配置文件 默认路径:/var/named/ #changlidong.com配置文件 shell# vim /var/named/changlidong.com.zone $TTL 600 @ IN SOA @ root (2020032300 1H 15M 1W 1D) @ IN NS dns dns IN A 192.168.80.100 www IN A 192.168.80.201 bbs IN A 192.168.80.202 #labdocker配置文件 shell#vim /var/named/labdocker.com.zone $TTL 600 @ IN SOA @ root (2020032300 1H 15M 1W 1D) @ IN NS dns dns IN A 192.168.80.100 www IN A 192.168.80.22 master01 IN A 192.168.80.24 bbs IN A 192.168.80.35 4.参数说明 @ 表示当前域名 www.tianyun.com. = www 第一个字段继承 SOA: 起始授权记录 强制 NS: DNS 服务器记录 强制 A: 主机记录 CNAME: 别名记录 5.客户端测试工具 安装: shell# yum install -y bind-utils 使用: shell# nslookup www.changlidong.com #解析地址 shell# nslookup 192.168.80.201 #反向解析,服务器需要配置才能显示 shell# host -t A www.changlidong.com #正向解析 shell# host 192.168.80.201 #反向解析 shell# host www.changlidong.com 192.168.80.100 #使用dns服务器 shell# host -t SOA changlidong.com #查询区域的SOA shell# host -t NS changlidong.com #查询某个区域的NS shell# host -t MX changlidong.com #查询某个区域的邮件服务器 shell# dig www.changlidong.com #使用 /etc/resolv.conf 设置的 DNS shell# dig @192.168.80.100 www.changlidong.com #使用指定的 DNS