Domain Name System

Domain Name System
The  Domain Name System  ( DNS ) is a hierarchical distributed naming system for computers, services, or any resource connected to the  Internet  or a  private network . It associates various information with  domain names  assigned to each of the participating entities.  域名系统 DNS )是一个分层分布式计算机,服务,或连接到任何资源命名系统 互联网 专用网络 。它与 域名 分配给每个参与实体的各种信息。  DNS端口号用来标示某个特定的应用,而IP地址是用来标示某个特定主机的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和 转发服务器 。在Internet上域名与 IP地址 之间是一对一(或者多对一)的,也可采用DNS轮循实现一对多,域名虽然便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为 域名解析 ,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 
DNS工作在应用层,是一个服务。简单的工作流程为:客户端(Client,以下简写为C)的某个程序发起名称解析的请求道DNS服务器(以下简写S),S返回其相应的IP地址,C再将解析的请求改为此IP,到路由表中查找其所对应的服务器。而C端的程序(gethostname)生成一个本地解析文件hosts,将IP地址与解析的地址对应起来,形成本地解析。
域名系统是由IANA(因特网编号管理局)进行管理的,世界上有13个根域服务器,亚洲的好想是在日本,而我国则没有,因为那时我国还不发达,还没有如今的号召力和震撼力……嘻嘻
DNS的查询分为 迭代查询 递归查询 2种。
客户端发起的请求若是直接由他所附属的DNS服务器返回权威答案,则说明是递归查询;
若是客户端发起的请求不在其所附属的DNS服务器记录内,(1)则有DNS服务器向上询问根服务器,而根服务器根据其所请求的顶级域告知其询问哪个DNS服务器;(2)此顶级DNS服务器根据其下一级域,告知应该查询 的下一个DNS服务器;(3)以此类推,直至找到真正的能够解析的DNS服务器,并将结果直接返回给发起请求的客户端,这种查询模式就是迭代查询。
DNS的解析分为正向和反向的,但是这是两种独立的工作机制,并不是谁离开谁就不能正常工作了,就像是地球没有了你,仍然照常转动。正向就是A: FQDN——> IP(完全现定域名到IP地址的解析过程);反向的就是PTR: IP——> FQDN。
每一个对应关系的条目,叫做记录(record),类型叫做type。记录类型有以下几种:
A :  正向地址。
PTR :  反向地址。
SOA:  Start of  Authority 起始授权记录,是授控DNS的最高长官。
NS:    Name Server 名称服务器,可以有多个,专门用于区域解析,说明区域解析的是谁。
MX :  Mail eXchanger 邮件交换器 ,有priority(优先级),0~99,数值越小,优先级越高
CNAME: 正式名称,也叫别名记录。如x 的别名是y,则 y 的正式名称是x.
        x CNAME y   :说明y 是正式名称。一个主机可以有多个别名,可以有多个FQDN,一个FQDN也可以有多个IP地址。
DNS服务器的类型:
主服务器:就是经常工作的服务器,当有新数据时,就是用通知机制,让辅助服务器来此获取新的数据,不论其规定的刷新时间到达与否。
辅助服务器:不能自此生成数据,而应保持与主服务器相同的数据,(也可以只有一半,正向或反向的。)
缓存服务器:不负责解析任何区域(除了localhost),只缓存内部的查询请求。
转发服务器:不解析任何数据,只将所有请求转发出去。
区域传送(zone transfer): 分为完全区域传送和增量区域传送。
完全区域传送(axfr):将主DNS上的文件传送到一个新建的辅助DNS服务器上的过程,叫完全区域传送。
增量区域传送(ixfr):只传送更新的数据的过程。
注意: 当主DNS服务器过期或者不能工作了,便不能在提供解析服务,此时,辅助DNS服务器也就死了,不能提供解析服务(是个很严重的事情,就像殉情一样)。
如何在 RedHat 5.4 上实现DNS服务器的配置:
(1) 先配置好yum源,装软件,bind是Linux上提供的DNS软件,进程名字是named,提供的协议是dns,使用的端口为53。
# yum install bind
(2)建立配置文件,告诉其根域名所在的地方,本地hosts文件。
配置文件在/etc/named.conf ,属主为root,属组为naemd。区域文件默认放在/var/named/下与之相对应的文件名(区域数据目录或工作目录)。
# vim /etc/named.conf
 
options {                     # options 用于指定BIND服务参数 
directory "/var/named";       # 指定其工作目为"/var/named" 
};
zone "." IN {                  #定义 "." 管辖的区域 
type hint;                     #类型为hint
file "named.ca";               #指定 区域配置文件名,此处的"named.ca"为固定写法,                                                                             };
zone "localhost" IN {           #定义localhost区域 
type master;                   #类型为master  DNS
file "localhost.zone;          #区域文件名 redhat中通常将其命名为localhost.zone 
};
zone "0.0.127.in-addr-arpa" IN {   #定义反向区域,将IP地址的所在的网段倒置写 其 中".in-addr-arpa"是固定写法 
type master;                       #类型为master 
file "named.local";                 #区域文件名 redhat中通常将其命名                                                    为named.local                                                   
};
3 区域配置文件:/ var/ named/
 #cd /var/named   切换到bind工作目录
   #dig -t NS . > named.ca  查询根服务器并且存入named.ca文件中 
   #chown :named named.ca
4 )本地 hosts 解析文件:
vim / var /named/named.local
 
$TTL 600      生存时间,可任意指定
@         IN      SOA      localhost.       admin.localhost. (
                           2012030601       #配置文件版本号,最多十位
                           20M              #定义从服务器到主服务器上检查                                              数据的刷新
                           5M                #重试时时间 不得超过刷新时间
                           5D                 #超时时间
                           1D )               #否定回答,让对方缓存时间
 @         IN              NS       localhost.
 1         IN              PTR      localhost.     这里的.一定不能少
  5 )本地正向解析文件:
vim /var/named/magedu.com.zone
 
$TTL  600
@                IN       SOA        ling .magedu.com.   admin.magedu.com.  (
                                    2012030701
                                    20M
                                    5m
                                    5D
                                    1D )
                  IN       NS        ling
                  IN       NS        ns
                  IN       MX   10   mail
ling               IN       A         172.16. 7.23
ns                IN       A         172.16. 7 .2
mail              IN       A         172.16.0.1                           
6 反向解析区域文件:
vim  /var/named/172.16.zone
 
$TTL 600
@        IN       SOA      ling .magedu.com.          admin.magedu.com. (
                                   2012030701
                                   1H
                                   10M
                                   7D
                                   1D )
                   IN      NS       ling .magedu.com.
                   IN      NS      ns.magedu.com.
23.7               IN      PTR      ling .magedu.com.
2.7                IN      PTR     ns.magedu.com.
0.1                IN      PTR     mail.magedu.com.
chown :named /etc/named.conf /var/named/*       改变配置文件的属组为:named
BIND 服务启动与暂停:
service named start    启动
service named stop     停止
service named restart   重新启动
service named reload    重新加载
service named status    查看当前启动状态
此时一个简单的dbs服务器就搭建好了。启动后就可以试一试了,如: dig -t A ling.magedu.com看看解析是否成功,是否准确。

你可能感兴趣的:(职场,dns,休闲,服务器搭建)