一丶定义

1.dns是什么

DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

2.dns域名结构

根域 一级域名:Top Level Domain: tld,com, edu, mil, gov, net, org, int,arpa 二级域名 三级域名 最多127级域名

3.dns解析流程

DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。具体过程如下: ①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了 ②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如http://www.baidu.com/, 并将这个主机名传送给DNS应用的客户端 ③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段 ④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址 ⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接

一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

4.dns服务器类型

1)DNS服务器的类型: 主DNS服务器:管理和维护所负责解析的域内解析库的服务器 从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本 缓存DNS服务器(转发器)

----序列号:解析库版本号,主服务器解析库变化时,其序列递增 ----刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔 ----重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔 ----过期时长:从服务器联系不到主服务器时,多久后停止服务 “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

二丶dns设置

部署lzh.com 正向解析记录 首先确定自己是否安装软件包,若没有请先安装 ~]# yum install bind 1.配置主配置文件 ~]# vim /etc/named.conf listen-on port 53 { localhost; }; allow-query { any; };

include "/etc/named.lzh.zones";

2.编制区域配置文件 ~]# cp -p /etc/named.rfc1912.zones /etc/named.lzh.zones

~]# vim /etc/named.lzh.zones zone "lzh.com" IN { type master; file "lzh.com.zone"; };

4.解析库文件 [root@centos7 ~]# cd /var/named/ [root@centos7 named]# cp -p named.localhost lzh.com.zone [root@centos7 named]# vim lzh.com.zone $TTL 1D @ 10D IN SOA @ admin ( ------------------------------------- 0 ; serial ------------------------------------- 1D ; refresh ------------------------------------- 1H ; retry ------------------------------------- 1W ; expire -------------------------------------- 3H ) ; minimum ------- NS ------ ns1.lzh.com. ns1 -- A -------- 192.168.123.7 @ ---- A -------- 10.12.11.1 centos6 -- A -- 192.168.123.100 www -- CNAME -- centos6 mail ------- A ---- 2.2.2.2 *.lzh.com. -- A --- 8.8.8.9

检查语法是否错误 在centos7中 ~ ]# named-checkconf lzh.com /var/named/lzh.com.zone zone lzh.com/IN: loaded serial 0 OK 在centos6中也可以使用 ~]# /etc/init.d/named configtest

重新缓存dns ~]# rndc reload server reload successful 或 ~]# systemctl reload named 查询 ~]# dig www.magedu.com @192.168.123.7

三丶测试命令dig

1.用法

dig [-t type] name [@SERVER] [query options] dig只用于测试dns系统,不会查询hosts文件进行解析

2.查询选项:

+[no]trace:跟踪解析过程 : dig +trace magedu.com +[no]recurse:进行递归解析 测试反向解析: dig -x IP = dig –t ptr reverseip.in-addr.arpa 模拟区域传送: dig -t axfr ZONE_NAME @SERVER dig -t axfr magedu.com @10.10.10.11 dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1 dig -t NS . @114.114.114.114 dig -t NS . @a.root-servers.net

四丶重载rndc命令

1.用法

rndc --> rndc (953/tcp) rndc COMMAND

2.COMMAND:

reload: 重载主配置文件和区域解析库文件 reload zonename: 重载区域解析库文件 retransfer zonename: 手动启动区域传送,而不管序列号是否增加 notify zonename: 重新对区域传送发通知 reconfig: 重载主配置文件 querylog: 开启或关闭查询日志文件/var/log/message trace: 递增debug一个级别 trace LEVEL: 指定使用的级别 notrace:将调试级别设置为 0 flush:清空DNS服务器的所有缓存记录