本文出自 http://blog.csdn.net/shuangde800
---------------------------------------------------------------------------------
域名
IP地址往往难以记忆,所以我们一般使用域名进行管理
www.google.com
域名分为三个部分,用“.”(点)分割。严格的域名最后还有一个".",但一般省略不写。
-类型 标识此域名的类型(com/net/org/edu/gov等)
-域名 域名称
-主机名 该域中的某台主机名称
www: 主机名
google:域名
com: 类型
DNS
- 每个域名代表一IP,而DNS就是用来在IP与域名之间进行转换的服务
www.google.com <---> 74.125.128.105
- DNS(Domain Name System)服务由DNS服务器提供
DNS客户端
- 我们日常使用的支持网络的计算机一般都是作为一个DNS客户端使用,应用程序、服务、进程等等通过操作系统底层的功能发起对dns服务器的查询,对特定域名进行解析
- Linux中一般使用系统底层提供的gethostbyname()功能进行域名解析
- 解析可以基于以下几种方式进行:
1) 文件(/etc/hosts、/etc/networks)
下面是/etc/hosts,可以看到这个文件把localhost解析为127.0.0.1以及其它的一些解析
在查DNS之前都会先查这个文件,所以黑客可能会通过修改这个文件,让用户进入一些钓鱼网站。
下面是/etc/networks文件
2)DNS
几乎所有的域名都是通过DNS域名服务器来解析的。DNS配置文件是在/etc/resolv.conf文件下,里面配置DNS服务器
3) NIS
这个用得比较少,基本被淘汰掉了
- 可以通过配置文件 /etc/nsswitch.conf控制查询顺序
其中的host:files dns .... 这一行是控制顺序的
DNS专用查询命令
$ host www.google.com
- 命令dig也可进行dns查询,输出较为详细的信息:
$ dig www.google.com
- 命令host、dig都不会使用/etc/nsswitch.conf的配置,只有会通过/etc/resolv.conf进行dns查询。即会绕过前面那个文件配置。
DNS查询
DNS是一个树状结构,查询的时候根据域名从右到左查询,域名每一级有独立的一个或多个服务器。
例如,www.linuxcast.net.
最上面的"."是根域名服务器(root DNS Server),用来保存下一级的com/net...的地址,全球共有13台根域名服务器。这13台根域名服务器中名字分别为“A”至“M”,其中10台设置在美国,另外各有一台设置于英国、瑞典和日本。
第二级是顶级域名服务器(Top Level Server),每个顶级域名服务器都是由一台或多台服务器控制的,每个一分别保存相应的以/com/net/org/....为后缀的域名的管理。
第三级是授权服务器(Authoritative Server),只负责linuxcast以下的信息。这里可以查找到www, mail, 和ftp主机。
- $ dig +trace www.linuxcast.net
这个命令可以追踪整个域名的查询过程
可以发现查询顺序是: . ——》net. ——》linuxcast.net. ——》www.linuxcast.net.
DNS的查询类型
1. 迭代查询(Iterative Query)
例如客户端用迭代查询的方式访问www.linuxcast.net:
1. 首先客户端发送请求到本地DNS服务器(Local DNS Server,即客户端配置的DNS服务器)
2. 如果本地DNS不知道这个域名的话,就会去查询根域名服务器
3. 根服务器返回.net服务器的地址
4. 然后本地DNS在去查询net服务器
5. net服务器返回linuxcast.net的地址
6. 本地DNS再向Linuxcast.net发送请求
7. linuxcast.net返回www主机给本地DNS
8. 本地DNS返回www.linuxcast.net的地址给客户端。
2. 递归查询(Recursive Query)
例如客户端用递归查询的方式访问www.linuxcast.net:
1. 首先客户端发送请求到本地DNS
2. 如果本地DNS不知道这个地址的话,那么就会向根DNS服务器查询。
3. 然后根DNS服务器不会像迭代查询一样返回net地址,而是它会代替本地dns向net服务器发送请求查询
4. 然后net服务器也不会像迭代查询一样返回linuxcast.net的地址,而是代根DNS服务器向linuxcast.net查询
5. 最后linuxcast.net服务器返回www主机的地址给net
6. net服务器返回www.linucast.net的地址给根DNS服务器
7. 根DNS服务器这时再返回www.linucast.net的地址给本地DNS
8. 最后本地DNS返回目标地址给客户端
这种查询方式的缺点:在每一级的服务器上,都会缓存大量的信息,因为它要等待查询返回,可能会占用大量的内存。
所以实际应用中,会结合这两种方式使用,即在客户端向本地DNS服务器查询是使用递归查询,而本地DNS服务器和其他级服务器使用的是迭代查询!
资源记录
在DNS服务器上,DNS的信息通过一个叫做资源记录(RR,Resource Record)的格式进行保存,RR不仅能够保存域名到IP地址的对应信息,还能够保存很多其它信息。
资源记录(RR,Resource Record)常用的属性:
- NAME(名称)
- CLASS(类别)
- TYPE(类型)
- RDATA(数据)
如,
NAME
|
CLASS
|
TYPE
|
RDATA
|
www
|
IN(Internet)
|
A
|
192.168.1.1
|
mail
|
IN
|
A
|
192.168.1.2
|
server1
|
IN
|
CNAME
|
www
|
|
IN
|
MX 10
|
mail.linuxcast.net
|
资源记录类型
DNS的资源记录可以记录很多类型资源,而不仅仅是IP地址,常见的资源记录类型:
类型
|
表示内容
|
A
|
IPv4地址
|
AAAA
|
IPv6地址
|
MX
|
邮件记录
|
CNAME
|
别名
|
PTR
|
指针(逆向解析)
|
SRV
|
服务资源
|
DNS服务器类型
- 主DNS服务器(Primary DNS Server ,Master)
一个域的主服务器保存该域的zone配置文件,该域所有的配置、更改都在该服务器上进行
- 从服务器(Second DNS Server,Slave)
从服务器一般作为冗余负载使用,一个域的从服务器从该域的主服务器上抓取zone配置文件,从服务器不进行信息修改,所有的修改与主服务器同步
- 缓存服务器(Caching only Server)
DNS缓存服务器不存在任何zone文件,仅仅依靠缓存作为客户端提供服务,通常用于负载均衡及加速访问使用
ZONE
在DNS服务器中,一般一个域通过一个ZONE文件保存该域的相关信息,zone文件的格式是标准化的,一个典型的zone配置文件内容如下:
有标准模板
STTL ID
@ IN SOA @rname.invalid. (
0 : serial (序列号,DNS服务器修改过一次序列号加1,从服务器发现序列号和自己不一样就会自动更新)
1D : refresh (刷新时间,1D=1天)
1H : retry (重试, 1H=1小时)
1W : expire
3H); minimum
(上面一般直接使用默认的就可以)
NS @
MX 10 mail.linuxcast.net
www IN A 192.168.1.100
mail IN A 192.168.1.200
(上面是数据)
高级查询
- 默认dig命令只能查询我们通过dig命令查询其他类型的资源记录:
$ dig -t mx linuxcast.net
$ dig -x www.linuxcast.net 进行逆向解析
$ dig -t soa linuxcast.net
分享到:
相关推荐
DNS(Domain Name System,域名系统)是一个分布式数据库系统,其作用将域名解析成IP地址。 好记的名字 IP地址 DNS服务器 DNS系统组成 DNS系统的三部分组成: ● 域名空间:标识一组主机并提供他们的有关信息的树...
公司新购一台web服务器,IP地址为52,由于使用IP地址访问不便,假设你是该公司的网络管理员,请你完成DNS服务的配置,使得用户可以通过域名访问该网站。 DNS服务器IP:54/24 公司DNS区域:abccompany.cc Web服务器...
3.3: DNS服务基础 、 特殊解析 、 DNS子域授权 、 DNS主从架构(1).docx
公司新购一台web服务器,IP地址为52,由于使用IP地址访问不便,假设你是该公司的网络管理员,请你完成DNS服务的配置,使得用户可以通过域名访问该网站。 DNS服务器IP:54/24 公司DNS区域: Web服务器主机名:www Web...
10:DNS域名解析服务.docx
# This is a script to gather network information of your Linux system. # Test under Ubuntu 10.04 only. #---------------------------- NIC=eth0 MAC=`LANG=C ifconfig $NIC | awk '/HWaddr/{ print $5 }' ` ...
Linux环境下DNS的搭建
本文档主要是对DNS服务器的配置方法进行阐述,域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器
Linux系统DNS域名服务器实验讲解: 熟悉域名服务器的各种角色 学会构建缓存域名服务器 学会构建主、从域名服务器 学会构建分离解析域名服务器
LINUX选修课讲义:用户及口令! LINUX选修课讲义:文件系统 LINUX选修课讲义:网络配置文件(1) LINUX选修课讲义:常用TCP/IP守护进矼 LINUX选修课讲义:Bourne LINUX选修课讲义:Bourne LINUX选修课讲义:台大计中...
LINUX基础与服务器架构大作业 【需求说明】 搭建小型公司局域网服务器,并实现以下服务: 1.DHCP服务 2.Samba共享服务 3.ftp文件共享服务 4.Web网站服务 5.DNS域名解析服务 【环境搭建】(测试客户端系统版本不做...
建立基于UNIX/LINUX系统网络环境的DNS服务器 一. 实验目标 1.培养Linux 操作系统管理员的DNS网络服务管理技能。 2.系统学习Linux DNS服务器的安装方法。 3.全面掌握Linux DNS服务器的基本配置和测试方法。 二. ...
DNS 域名服务协议DNS 域名服务协议DNS 域名服务协议DNS 域名服务协议
域名的根域用“.”表示,一般省略不写注:根域名服务器全球共13台 DNS查询分类 DNS递归查询 一般客户机与本地DNS域名服务器之间的查询交互采用的就是递归查询方式 DNS迭代查询 一般本地域名服务器发送至根域名服务器...
端口号与套接字 WWW(80) FTP(20 21) Telnet(23) DNS域名解析 网络接口设备 接口设备 说明 lo 本地回送接口 ens33 RHEL7.0以上默认的以太网卡接口 1.TCP/IP网络基础 316机房配置信息 何为www? 万维网以客户 - 服务器...
Fast-flucos:基于DNS流量的Fast-flux恶意域名检测方法.docx
第14章DNS:域名系统14.1 引言域名系统( D N S)是一种用于 T C P / I P应用程序的分布式数据库,它提供主机名字和 I P地址之间的转换及
《Linux服务器配置与管理》教学课件—第 13 章 DNS 服务器配置.pdf《Linux服务器配置与管理》教学课件—第 13 章 DNS 服务器配置.pdf《Linux服务器配置与管理》教学课件—第 13 章 DNS 服务器配置.pdf《Linux服务器...
Linux设置客户端的DNSLinux设置客户端的DNSLinux设置客户端的DNSLinux设置客户端的DNSLinux设置客户端的DNSLinux设置客户端的DNS