DNS:
域名协议 ,工作在应用层
监听端口 tcp  udp  监听53 端口
/etc/hosts

   最顶级  .
一级域名  .com
二级域名  ibm   hp
           www
 只有上级知道下级 路径 

查询类型: 递归查询  例如 a发数据给b,b没有但b知道c有,所以就发给c,于是c拿着答案给b,b在给a

        迭代查询   假如 a发送数据给b,b没有就告诉a我没有c有,a就去找b


  把主机名称转换成 ip  : 正向解析
  把ip地址转换成主机名 :反向解析


全球 13个 根节点   日本  澳洲  其余都在美国


记录类型:

1,用户名 转换ip  :A 记录
2,ip 转换用户名:PTR指针记录
3,域 的域名服务器是谁的   : NS 
4,域的 邮件服务 MTA   :MX 邮件交换器
5,别名        :  CNANE 正式名称

DNS 服务器类型:

区域传送: 完全 axfr
           增量  ixfr  表示只传输变化的内容

 
  只要修改主服务器,辅助服务器过来同步过程就叫 区域传送
    
主的只能有一个 ,辅助服务器不一定非同步主服务器,也可以从别的地方同步


名称解析:
正向 :需要一个单独数据库文件
反向  :也需要一个单独的数据库
 反向解析  把网络地址 反过来写
区域: 是 物理概念
域 :是逻辑概念


查询 步骤
1, 找 /etc/hosts
2, 找缓存  dns cade
3,找server 缓存
4,权威解析 authuritiue

注 有缓存的 就是非权威


DNS 软件
bind: 最新版本 9.8.0


 查看bind软件包 yum list all bind*
 
 
   最主要 两段  1,全局选项段 用 options {
                                           如果有字段 ,字段后需加;号
                                  };       要求格式非常严格
          对全服务器都生效
            
    只对某个区域生效      
           zone "a.org" {
                          
           };                                 
                             
 数据文件存放:
            /var/named          
 主配置文件 :/etc/named.conf
   
   
建立一个基本的配置文件
    首先 建立  vim /etc/named.conf
    options {
                   directory "/var/named";   用于定义工作目录的
    };            
                                    定义区域  需要三个区域
     zone "." IN {            定义根区域
                    type hint;     类型   固定的
                    file "namecd.ca"   named.ca 随便起的名
     };
          
     zone "localhost" IN {                注 正向
                     type master;      类型
                    file "localhost.zone";   注 localhost.zone 需要建立
     };                                                  以下有介绍
                                             
      zone "0.0.127.in-addr.arpa" IN {            注 反向的
                               type master
                               file "named.local";
      };
                                    
查询 13个根节点
 dig -t NS
   
  前提是能上网               
 把查询的结果保存在 named.ca 
dig -t NS . @a.root-servers.net > /var/named/named.ca
在named 下  看一下 cat named.ca


接下来该建第二个文件
vim localhost.zone

第一 ,宏定义  $TTL 86400 记录生存86400
第二 , 解析记录  name [ttl] IN 记录类型 value
             例 格式  www.a.org  86400  IN A 1.1.1.1

第一条记录: 类型为 SOA ,对于一个文件来讲,SOA通常只能有一个。

 编辑 vim localhost.zone
$TTL 86400                            
@   600   IN   SOA   localhost. admin.localhost.(     :@表示特殊意义就表示localhost.
                                 2011081601 数据版本号 不能超过 10位
                                  1H        每1小时来检查一次
                                  10k       重试 链接服务器  
                                  7D         7天过期时间 ,停止工作
                                  1D )      否定回答    
          IN    NS               localhost.    注localhost 随便起的名          
localhost. IN    A               127.0.0.1     本机地址   
                                          解析的就是本机到本机
                                          所以用的是本机地址


注 :数据版本号 就是主服务器 号比辅助服务器号大, 辅助服务器就要去同步


该建第三个了   反向
cp localhost.zone named.local

编辑  vim named.local
在最后改为
1        IN      PRT          localhost   对应固定格式
 
注 :1 表示 前边写过 0.0.127 ,在这里只需添加1就 ok了

检查以下语法:
named-checkconf

named-chechkzone "localhost" /var/named/localhost.zone


没问题 就 开始启动服务
    service named start
    
查看53 端口
netstat -tunl | grep :53

可以当做缓存服务器来用了


在这里做一下验证:
 
 把服务器指向自己
 编辑一下客户端
vim /etc/resolv.conf

nameserver 127.0.0.1  指向自己
  
  dig -t A www.baidu.com   只是例子

缓存服务器 建好了

 

 

解析一个域的所有相关联的记录
做正向 反向 解析
编辑 vim /etc/named.conf

  添加个区域
  
  zone "a.org" IN {
             type master;
             file "named.local";
  };            
               
   先做正向解析的 
 cd /var/named/
 
 vim a.org.zone
 
$TTL 1200
@    IN   SOA   nsl.a.org   admin.aorg. (
                              2011081601
                              1H
                              10M
                              7D
                              1D
           IN                 NS   ns1.a.org
           IN                 NS   ns2.a.org   辅助的
           IN                 MX   mail.a.org  邮件服务             
ns1.a.org.  IN                 A  172.17.100.1   注 如果有两台邮件服务
ns2.a.org.  IN                 A  172.16.100.2    优先级高的台收,
mail.a.org. IN                 A  172.16.100.1                                             
www.a.org.  IN                 A   172.16.100.3  
bbs.a.org. IN                 CNAME  www.a.org.
做正向解析的

改属组 chown :named a.org.zone

 service named relocal
 
 可以用 windows 来测试  
 在运行命令
 输入 nslookup
   Server 172.16.100.1
    set q=A
    www.a.org
   测试出来 ip地址 
    
在主机上测试:

host -t NS a.org

host -t A bbs.a.org
显示信息  这是个别名 ,还显示对应的ip地址


反向查询:

编辑 vim /etc/named.conf
 
 添加 
zone "16.172.in-addr.arpa" IN {
           type master;
           file "172.16.zone";
};

切换到
cd  /var/named/

vim 172.16.zone

可以 拷贝 cp a.org.zone 172.16.zone在编辑
  再编辑
$TTL 1200
@    IN   SOA   nsl.a.org   admin.aorg. (
                              2011081601
                              1H
                              10M
                              7D
                              1D
           IN                 NS   ns1.a.org
           IN                 NS   ns2.a.org  
1.100      IN                 PTR   ns1.a.org          
2.100      IN                PTR    ns2.a.org  
1.100      IN                 PTR   mail.a.org    
3.100      IN                 PTR  www.a.org                                             
100.100    IN                 PTR   ftp.a.org  

检查语法

named-checkzone "16.172.in-addr.arpa" /var/named/172.16.zone

重启
service  named restart

测试 在windows
 输入 nslookup
 
 server172.16.100.1
 
 set q=PTR
 172.16.100.1
 
显示信息 name = nsl.a.org

 
在主机上测试:
dig -x 172.16.100.1

反向解析 很关键