文档章节

DNS基本原理

我爱吃葱花
 我爱吃葱花
发布于 2014/08/11 18:36
字数 1771
阅读 267
收藏 17
dns

首先来看DNS中常用的2种查询模式

1.递归查询: 

一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;

2.迭代查询(反复查询): 
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;



DNS域名解析过程  

主机向本地域名服务器的查询采用递归查询:

              主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

本地域名服务器向根域名服务器的查询通常采用迭代查询: 

          本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。


DNS资源记录

资源记录是用于答复DNS客户端请求的DNS数据库记录,每一个DNS服务器包含了它所管理的DNS命名空间的所有资源记录。资源记录包含和特定主机有关的信息,如IP地址、提供服务的类型等等。常见的资源记录类型有:

起始授权结构(SOA):Start of Authority的意思。这个标志代表着master/slave相关的认证、授权资料。此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS 服务器如何更新区域数据文件的设置等。 

主机(A:用于将DNS域名映射到计算机使用的IP地址。

别名(CNAME):此记录用于将某个别名指向到某个主机(A)记录上,从而无需为某个需要新名字解析的主机额外创建A记录。这些记录允许使用多个名称指向单个主机,使得某些任务更容易维护。

邮件交换器(MX):用于将DNS域名映射为交换或转发邮件的计算机的名称。它由电子邮件应用程序使用,用以根据在目标地址中使用的DNS域名为电子邮件接收定位邮件服务器。

名称服务器(NS):此记录指定负责此DNS区域的权威名称服务器。

PTR记录PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。


以下图为例:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$TTL    604800
@   IN  SOA ns.     test     .com. root.localhost. (
                    2012120501       ; Serial
                  604800     ; Refresh
                   86400     ; Retry
                 2419200     ; Expire
                    1800)        ; minimum 
 
              IN  NS ns.     test     .com.
ns.     test     .com. A   192.168.1.111
station1     A   192.168.1.1
station2     A   192.168.1.2
test     .com.    A   192.168.1.90
www          CNAME       test     .com.

$TTL  604800: 当有外部的DNS服务器对你的DNS的这个领域进行查询时,这记录会放置在对方的DNS服务器内几秒钟的意思。 这里指别人查询我的几录,保存7天。

@:指代zone文件,也就是/etc/named.conf中test.com.

root.localhost.:本来应该是 "root@localhost." 的,不过因为 @ 已经被作为特殊代号 (zone), 所以就用小数点来取代,因此 email 就成为 "root.localhost."

Serial:一个序号,但这个序号可被用来作为 slave 与 master 更新的依据。由于这个序号代表新旧资料,通常建议利用日期来设定,举例来说,上面的数据是在2012/12/05所写的第一次,所以用 2012120501 作为序号代表。以后每次更新增加序列号,重启服务生效(rcdc reload)

Refresh :除了根据 Serial 来判断新旧之外,我们可以利用这个 refresh(更新) 命令 slave 多久进行一次主动更新;

Retry :如果到了 Refresh 的时间,但是 slave 却无法连接到 master 时, 那么在多久之后,slave 会再次的主动尝试与主机联机;这里是1天。

Expire:如果 slave 一直无法与 master 连接上,那么经过多久的时间之后, 则命令 slave 不要再连接 master 了! 也就是说,此时我们假设 master DNS 可能遇到重大问题而无法上线,则等待系统管理员处理完毕后, 再重新来到 slave DNS 重新启动 bind 吧!这里是28天.

Minimun:如果没有TTL,就用这里的时间.

注意: station1后没有"." 它的完整写法是station1.test.com 

         test.com后有"." 说明这是完整结束符

         先要解析域,test.com.  A  192.168.1.90 之后可以指定别名


debian dns管理工具

named-checkconf。
named-checkconf 检查 named.conf 文件的句法
named-checkconf [-t directory] [filename]
named-checkzone
named-checkzone 程序检查host 文件的句法和相容性。
named-checkzone [-dq] [-c class] zone [filename]
rndc(Remote Name Daemon Control)
rndc 允许系统管理员控制名称管理器的运行。
如果不使用任何选项来运行rndc 将会有一条形如下列的使用信息:
rndc [-c config] [-s server] [-p port] [-y key] command [command...]
其中command 是下列中的一种:
reload
重新加载配置文件和域(zone)的配置。
reload zone [class [view]]
重新加载一个指定的域。
refresh zone [class [view]]
定期维护一个指定的域。
reconfig
重新加载namd.conf 配置文件和新的域,但不会重新加载已存的域文件,即使
域文件已经被修改了也不会加载。特别是当有大量的域的时候,这比全部的reload
要快很多,因为这避免了对域文件修改时间的检查。
stats
将统计信息写入到统计文件中。
querylog
启动用户请求的日志纪录。请求的日志记路也可以通过在named.conf 中
logging 部分的queries category 和channel 来启动。
dumpdb
把服务器缓存中的信息转储到dump 文件中去。
stop
服务器停机,且将所有最近通过动态更新或IXFRS 作出的修改,都首先存到
了更新域中的host 文件中。
halt
服务器马上停机。但通过动态更新和IXFR 做出的最新修改不会存入host 文
件,但当服务器重新启动的时候会写入到日志文件中去。
trace
增加一个服务器的debug 级别。
trace level
直接设置服务器的debug 等级。
notrace
将服务器的debug 等级设成0。
flush
清除域名服务器缓存中的内容。
status
显示服务器状况


本文转载自:http://my.oschina.net/davehe/blog/94122

共有 人打赏支持
我爱吃葱花
粉丝 29
博文 130
码字总数 34939
作品 0
海淀
数据库管理员
私信 提问
DNS服务器(一):基本原理

一、简介 网络中的主机通信是通过IP地址来实现的,通常IPv4的地址是四个数字加点组成,如果和每台主机通信我们都要去记忆IP地址的话,这通常对于人类来讲是相当痛苦的。于是网络上就有了一套...

wubinary
2014/03/13
0
0
天下数据教你如何简单应付DNS欺骗

欺骗攻击对于租用服务器的用户来说都不陌生,这类攻击主要以窃取账户数据资料为目的。而DNS欺骗是我们最有可能碰到的。那么到底DNS欺骗攻击是什么?我们又该如何应付它呢?今天,就由专业运营香港...

冬眠的包子
2016/01/22
54
0
https+hosts+cdn+chrome赤手***

据初步猜测,墙掉一个网站,基本上有这几种方法 封ip 封域名/内容过滤 dns污染 对于封ip,如果一个网站用了cdn,就很难封了,因为ip很多。比如google、cloudflare。这样的网站,封起来太困难...

徒步单独007
06/29
0
0
20170804L08-03老男孩Linux实战运维培训-Lamp系列之-http服务重要基础概念讲解

这一节讲网站的一些基本原理 访问机制啊 DNS啊 时间线是1999年前后吧,门户网站崛起 搜狐,网易,新浪,等等门户网站最好的年代,那时候一般是静态网页 流量就是钱量,有流理就有钱。www.hao...

wangchangshu2
2017/08/04
0
0
ettercap的应用:DNS欺骗

笔记一:ettercap是什么? 我们在对WEB安全检测的时候都会用到Cain和netfuke这两款工具,功能相信用过的朋友多多少少都知道,但这两款工具是在windows下运行的。 而ettercap是在linux下运行的...

securityHu
2017/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
32分钟前
1
0
聊聊storm trident batch的分流与聚合

序 本文主要研究一下storm trident batch的分流与聚合 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout) .p......

go4it
昨天
3
0
3分钟总结Mybatis别名

1.系统内置别名: 把类型全小写(resultType/paramType) 2.给某个类起别名 2.1 alias=”自定义” <typeAliases> <typeAlias type="com.bjsxt.pojo.People" alias="peo"/> </typeAli......

KingFightingAn
昨天
2
0
JAVA设计模式之模板方法模式和建造者模式

一、前期回顾 上一篇《Java 设计模式之工厂方法模式与抽象工厂模式》介绍了三种工厂模式,分别是工厂方法模式,简单工厂方法模式,抽象工厂模式,文中详细根据实际场景介绍了三种模式的定义,...

木木匠
昨天
8
0
C中的宏的使用(宏嵌套/宏展开/可变参数宏)

基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC))pr...

SamXIAO
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部