准备工作:将之前修改的hosts文件内容加#注释掉,或者删掉。


DNS服务器软件:bind、bind-chroot 服务名称:named DNS客户端软件:bind-utils 可用命令:nslookup、dig、host 注:服务名称中的d是daemon守护进程的缩写。如named是name daemon的缩写。

网络拓扑结构: DNS服务器:192.168.10.7(虚拟机) DNS客户机:192.168.10.8(虚拟机) 、192.168.10.1(物理机)

DNS服务器安装: 0、临时关闭安全防护功能 setenforce 0 #临时关闭selinux getenforce #查selinux状态 systemctl stop firewalld #临时关闭firewalld systemctl status firewalld #查firewalld状态

1、查软件是否已安装 rpm -q bind

2、安装软件 yum info bind 查bind软件简介 yum install -y bind 安装bind软件 rpm -q bind 查询结果如下 bind-9.9.4-37.el7.x86_64

3、启动服务 systemctl restart named 重启named服务 systemctl enable named 设置named开机启动

4、查状态 systemctl status named lsof -i:53 或 netstat -atnlp | grep :53

5、熟悉配置文件 rpm -qc bind 重要配置文件如下 /etc/logrotate.d/named 日志轮滚策略文件 /etc/named.conf 主配置文件(存全局设置参数) /etc/named.iscdlv.key 密钥文件 /etc/named.rfc1912.zones 区域配置文件(存域名信息或网段) /etc/named.root.key /etc/rndc.conf DNS远程管理的配置文件 /etc/rndc.key 远程管理的密钥文件 /etc/sysconfig/named /var/named/named.ca 根域服务器的解析文件 /var/named/named.empty /var/named/named.localhost localhost域名正向解析配置文件(资源记录文件) /var/named/named.loopback 127.0.0.0网段的反向解析配置文件(资源记录文件)


案例:在192.168.10.7这台DNS服务器上注册登记域名baidu.com(正向解析),需要做如下管理操作。 1、修改/etc/named.conf主配置文件,将文件中所有的127.0.0.1和localhost修改成any。 cp -v /etc/named.conf{,.bak} 备份此配置文件 cp -v /etc/named.conf /etc/named.conf.bak (功能同上) vim /etc/named.conf 修改后的结果如下(红字部分,共修改了4处),用man named.conf查帮助手册 options { 选项设置 listen-on port 53 { any; }; IPv4监听端口和IP地址,多个IP用;分号分隔,any为监听所有的IP地址。默认是127.0.0.1。 listen-on-v6 port 53 { ::1; }; IPv6监听端口和IP地址 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"; 内存状态文件 allow-query { any; }; 允许查询的域名,默认是localhost。

    recursion yes;    允许递归查询

    #dnssec-enable yes;     启用dns安全策略(本案例注释掉此行)
    #dnssec-validation yes;    启用dns的valid安全策略(本案例注释掉此行)
    bindkeys-file "/etc/named.iscdlv.key";      密钥文件

    managed-keys-directory "/var/named/dynamic";     管理密钥的工作目录

    pid-file "/run/named/named.pid";     进程pid文件
    session-keyfile "/run/named/session.key";     会话密钥文件

};

logging { 日志设置 channel default_debug { 通道为debug调试模式 file "data/named.run"; 文件路径 severity dynamic; 模式为动态 }; };

zone "." IN { 根域设置 type hint; 类型为hint是根域,类型通常有hint、master主、slave从(辅助). file "named.ca"; 文件名,文件位于/var/named目录中 };

include "/etc/named.rfc1912.zones"; 包含的子配置文件,这个区域配置文件 include "/etc/named.root.key"; 包含的密钥文件

重启服务:systemctl restart named

2、在/etc/named.rfc1912.zones文件最后添加baidu.com域名的配置信息。 cp -v /etc/named.rfc1912.zones{,.bak} vim /etc/named.rfc1912.zones 添加如下内容 zone "baidu.com" IN { 声明区域名(或称为区域名设置) type master; 类型为master主DNS服务器 file "baidu.com.zx"; 解析的资源配置文件,文件位于/var/named目录中 allow-update { none; }; 不允许update更新 allow-transfer { none;}; 允许传输。通常是指辅助DNS服务器的IP地址。 };

注:此步骤执行完毕后,并不能正常重启named服务,因为baidu.com.zx这个解析的资源配置文件还未创建。

3、在/var/named目录中创建baidu.com域名正向解析的资源记录配置文件baidu.com.zx。 cd /var/named ls cp -pv named.localhost baidu.com.zx 用-p实现带属性的复制(必须这样做) vim baidu.com.zx 修改后的参考内容如下(红字为修改后的内容) $TTL 1D @ IN SOA dns1.baidu.com. 12700696.qq.com. ( 2017112701 ; serial 版本序号,通常用年月日数字(必须是10位以内的数字) 1D ; refresh 刷新时间为1天 1H ; retry 重试时间为1小时 1W ; expire 过期时间 3H ) ; minimum 最小缓存时间(即TTL的最小值) NS dns1.baidu.com. ;NS记录(Name Server),指定DNS服务器的名称 dns1 A 192.168.10.7 ;A记录(Address),指定域名、主机名对应的IP地址 AAAA ::1 ;IPv6的A记录 www A 192.168.10.7 ftp A 192.168.10.8 mail A 192.168.10.9 linux A 192.168.10.1

w CNAME www ;CNAME别名记录(canonical name),格式为 “别名 CNAME 原名” ww CNAME www web CNAME www

技巧:当正向解析配置文件中A记录左边的名称为空时,表明是同上。


内容解释: $TTL 1D:最大生命周期为1天 @:是变量,代表named.rfc1912.zones文件中zone “baidu.com” IN定义的域名baidu.com. SOA:是起始授权机构的缩写。用来指定本例的域名baidu.com是保存在dns1.baidu.com这台主机中。 12700696.qq.com:是DNS服务器管理员的邮箱。由于@在DNS解析配置文件中有特殊意义,所以邮箱的@必须用.来表示。 FQDN:全质量域名Full Quality Domain Name(即完整域名)。例:dns1.baidu.com.,最右边点是根域。 NS记录:记录域名信息保存在的哪台DNS服务器上 A记录:记录主机名对应的IP地址 CNAME:主机名的别名 PTR记录:指针记录,用来实现反向解析的,格式是“IP地址中的主机号 PTR 完整域名” MX记录:邮件交换记录,用于指定邮件服务器。

4、重启named服务。 systemctl restart named

5、用dns客户端命令测试正向解析。 rpm -q bind-utils 查bind客户端软件 yum install -y bind-utils 安装

DNS解析的临时测试: nslookup命令:nslookup 要解析的域名或IP DNS服务器IP地址 注:nslookup命令在linux和windows系统中都可以用。 例:nslookup www.baidu.com 192.168.10.7 结果如下 Server: 192.168.10.7 DNS服务器的IP Address: 192.168.10.7#53 DNS服务器的IP和端口号

Name: www.baidu.com 要解析的域名 Address: 192.168.10.7 解析出来的域名的IP地址

例:执行如下解析测试命令,看解析结果是什么。 nslookup web.baidu.com 192.168.10.7 nslookup dns1.baidu.com 192.168.10.7


nslookup交互式操作: nslookup 打开nslookup软件,执行如下操作 server 查看网卡设置中当前的dns服务器IP server 192.168.10.7 临时设置dns服务器的IP www.baidu.com 正向解析测试 web.baidu.com 正向解析测试 127.0.0.1 反向解析测试 exit 退出软件


host命令:host [选项] 域名 DNS服务器IP 例:host www.baidu.com 192.168.10.7 host web.baidu.com 192.168.10.7

dig命令:dig @server domain query-type query-class 注: dig @服务器IP 域名 查询类型 网络等级 功能:发送域名查询信息包到域名服务器。帮助手册:man dig 例:dig @192.168.10.7 www.baidu.com


小结: DNS正向解析要处理三个配置文件: 1、/etc/named.conf 主配置文件(主要改了4行代码,只需要改一次) 2、/etc/nemed.rfc1912.zones 区域配置文件(用来登记区域名称及其相关参数的设置) 3、/var/named/* 区域解析的资源记录文件(用来登记主机名和IP地址的对应关系) 注意: 1、解析的资源记录文件中如果是FQDN完整域名,必须把根域的.点写上,否则named服务运行不了。 2、NS记录对应的域名必须有对应的A记录。

DNS客户端解析测试命令: nslookup、dig、host


练习:在192.168.10.7这台DNS服务器上登记sina.com这个域名的正向解析功能。其解析的资源记录文件中的主机名和IP地址自己随便定。最终用nslookup命令做正向解析测试。 第1步:vim /etc/named.rfc1912.zones 添加如下内容 zone "sina.com" IN { 声明区域名(或称为区域名设置) type master; 类型为master主DNS服务器 file "sina.com.zx"; 解析的资源配置文件,文件位于/var/named目录中 allow-update { none; }; 不允许update更新 allow-transfer { none;}; 允许传输。通常是指辅助DNS服务器的IP地址。 };

第2步:执行如下操作。 cd /var/named cp -pv named.localhost sina.com.zx vim sina.com.zx 修改后的内容如下 $TTL 1D @ IN SOA dns1.sina.com. 12700696.qq.com. ( 2017112701 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1.sina.com. dns1 A 192.168.10.7 AAAA ::1 www A 1.1.1.1 ftp A 1.1.1.2 mail A 1.1.1.3 linux A 1.1.1.4

w CNAME www ww CNAME www web CNAME www

第3步:平滑重启named服务:systemctl reload named

第4步:解析测试 nslookup www.sina.com 192.168.10.7 nslookup web.sina.com 192.168.10.7