linux之dns简单介绍及配置

一丶定义

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服务器的所有缓存记录

转载于:https://blog.51cto.com/13570215/2106137

你可能感兴趣的:(linux之dns简单介绍及配置)