DNS

   DNS是一種協議,工作在應用層,域名解析系統,主要是用來實現域名與ip地址的相互轉換,目的是方便人們的記憶。
   DNS域名解析的整個結構:像一個倒置的樹,類似我們國家的管理制度,有層次,分佈式
              .(根域)
      .com  .net .org(一級域名)分爲三類:組織的(com,edu),國家(cn,hk),反向解析
                                     全球一共13臺根節點服務器是固定的  
    magedu   apple   (二級域名)
  www ftp   tech 
  根域只管理它的下一級域名即一級域名,上級知道下級的位置,但下級不知道上級的位置
  我舉一個例子說明DNS域名解析的過程,並說明遞歸和迭代的概念:
  有一臺DNS客戶機要訪問
www.apple.com,首先客戶機向本地的服務器發出請求,本地服務器查看自己的緩存,若沒有向根域發出請求,根域告訴本機服務器一個參考答案說:你可以找com,然後本地服務器向.com發出請求,.com看自己有,就把自己
  的結果發給本地服務器,最後本地服務器把查詢的結果返還給本機客戶端。
  客戶機向本地服務器發送請求的過程就是遞歸,即只發送一次請求直接得到最終的結果
  本地服務器多次發送請求查詢的過程就是迭代,即發送請求,返回的是一個參考答案,並再次請求。
  域名服務器有三類:主域名服務器,輔助域名服務器,緩存服務器
  DNS監聽的端口是tcp,udp的53端口
  我以一個例子說明一些概念,並建立主域名服務器和輔助域名服務器,實現同步
    主域名服務器的ip 172.16.6.1
   輔助域名服務器的ip 192.168.0.122
   域 magedu.com
  在主域名服務器中執行以下操作:
   setenforce 0,getenforce
   named進程,工作目錄解析的文件/var/named
   rndc:remote Name Domain Controller遠程域名控制工具
   rndc stop        rndc reload默認只工作在本機身份驗證一對密鑰
  1 安裝軟件包
   yum install bind
   DNS是通過bind服務軟件來實現
   yum list bind*看下有哪些軟件包
   bind-sdb.i386將bind的解析放在數據庫中
 
   ls /etc/ | grep rndc
   rndc-confgen > /etc/rndc.conf
   cat !$
   複製/etc/rndc.conf到主配置文件
  key "rndckey"   {


   };
   controls  {

   };
  2 配置主配置文件/etc/named.conf
  [option] {
             directory "/var/named";
             version "conm on"
  };
  zone "." IN {
               type hint;
               file "name.ca";
  };
  zone "localhost" IN {
                type master;
                fiel "localhost.zone";
  };
  zone "0.0.127.in-addr.arpa" IN {
                type master;
                file "named.local";
  };
  zone "magedu.com" IN {
                type master;
                file "magedu.com.zone";
  };
  zone "6.16.172.in-addr.arpa" IN {
                type master;
                file "172.16.6.zone";
  };
 
   %s@^# @@g去掉空表和註釋
   cd /etc/named.conf
   chmod o-r !$
   chgrp named !$

   cd /var/named/
   dig -t NS . > /var/named/name.ca

 1  vim /var/named/localname.zone

    $TTL 43200
    @       IN   SOA localhost.     root.localhost.(
                        20111125
                        3H
                        15M
                        2W
                        1D)
            IN    NS    localhost.
  localhost. IN    A     127.0.0.1

 2 vim /var/named/named.local

     $TTL 43200
     @     IN   SOA localhost. root.localhost.(
                          2011
                          3H
                          15M
                          2W
                          1D )
               NS        localhost.
        1  IN  PTR       localhost

   chown :named localhost.zone named.*
  
   netstat -tunlp 網絡狀態的查看
   t:tcp u:udp的會話 n:以數字的方式,不加n會很慢,l只查看處於本地
   監聽的套接字,p有那個進程產生的

   netstat -tunlp | grep ":53"

   rndc --help
   rndc flush清空服務器緩存
   rndc statu顯示服務器的狀態
   rndc reload重新生效主配置文件和數據文件
   rndc trace 2調試級別,打開調試會記錄日誌
   rndc notrace 關閉
   rndc 停止服務
   rndc refresh zone 刷新某個區域
   rndc retransfer 重傳某個區域
   ipconfig/flushdns在Window清空緩存
  
   chkconfig --list named 開機啓動服務
  

  zone "區域名" IN {....}的格式
  hint表示根區域,master表示主區域即文件類型,file該區域的對應的數據文件名
  localhost是本機的解析,本機的正向解析和反向解析。
  正向解析是實現域名到ip的轉換,反向解析是實現ip到域名的轉換。
  前三個是必須的:根,本機的正反向解析

  3配置/var/named/magedu.com.zone文件
  $TTL 86400
  @      IN   SOA ns1.magedu.com. admin.mageedu.com. (
                     2011112421
                        1H
                        15M
                        1W
                        1D)
  @      IN   NS    ns1.magedu.com.
         IN   NS    ns2.magedu.com.
         IN   MX 10 mail.magedu.com.
  ns1    IN    A    172.16.6.1
  ns2    IN    A    192.168.0.122
  mail   IN    A    192.168.0.141                     
  www    IN    A    192.168.0.142
  ftp    IN    CNAME www

   /var/named/
  上級要有下級的記錄,提到了記錄類型
     (1)SOA記錄 起始授權的記錄
         它對應有5個只分別標識的含義如下:
           1版本號,服務器的數據每發生一次變化它的值會自動加1,
           2刷新時間,從域名服務器多久向服務器同步
           3重試時間,聯繫不到主域名服務器多久在聯繫
           4過期時間,當長時間聯繫不到主域名,從域名服務器即拒絕提供服務 
           5解析本地的域名,若沒有,否定答案的緩存時間    
     (2)NS記錄  聲明本域的域名服務器
     (3)A記錄   主機名轉化成ip地址
     (4)PTR     ip地址轉化成域名
     (5)MX      標識郵件服務器後跟一個數字表級別
     (6)CNAME   正式名字,別名
  域是一個邏輯概念,也可以這樣理解magedu.com就是一個域
  區域是一個物理概念,magedu.com下的www,ftp可以是一個區域
  4查看以上兩個文件的權限及屬組,屬主並修該
  5啓動服務
  service named restart

  在輔助域服務器上配置:
  安裝軟件包
  配置主配置文件/etc/named.conf
   [option] {
             directory "/var/named";
   };
   zone "." IN {
              type hint;
              file "named.ca";
   };          
   zone "localhost" IN {
                   type master;
                   file "localhost.zone";
   };
   zone "0.0.127.in-addr-arpa" IN {
                   type master;
                   file "named.local";
    };
    zone "magedu.com" IN {
                    type slave;
                    file "/slaves/magedu.com.zone";
                    master { 172.16.6.1; };
    };
    zone "6.16.172.in-addr.arpa" IN {
                    type slave;
                    file "/slaves/172.16.6.zone";
                    master { 172.16.6.1; };
    };
    從服務器可以是正向的也可以是反向的
    注意:從服務器中域的類型是:slave
         主服務器會實現與從服務器的同步,同步的內容直接保存在/var/named/slave下
         是從服務器要只要主服務器用master { 主ip;},可以有多箇中間用;隔開

   named-checkconf檢查主配置文件是否有語法錯誤
   named-checkzone "magedu.com"  /var/named/magedu.com.zone檢查區域文件是否有語法錯誤
   named-checkzone "0.168.192.in-addr.arpa" /var/named/192.168.0.arpa 反向檢查

   同樣改變文件的權限即屬主,屬組
   重啓從服務器service named restart
   若出現錯誤可根據/var/log/messages信息來修改,特別要注意語法,不能隨意添加空格或少空格

   dig的用法 dig -t A   www.magedu.com
             dig -t NS  magedu.com
             dig -x 172.16.6.1 反向解析

   nslookup
   set q=MX
   service 172.16.6.1
   set q=A 
www.magedu.com

  host -t A www.magedu.com


  主域與子域:
  在/var/named/magedu.com中添加NS記錄並添加A記錄
 aa權威答案,子域找不到父域的位置,
  例:在magedu.com中劃分子域
      DNS:magedu.com
      tech.magedu.com: ns.tech.magedu.com(ip:192.168.0.122)
           
www.tech.magedu.com
            tcp.tech.magedu.com

  在主域名服務器中授權,主配置文件不用做任何需改,只需在對應的正向域名解析中添加記錄

  配置/var/named/magedu.com.zone文件
  $TTL 86400
  @      IN   SOA ns1.magedu.com. admin.mageedu.com. (
                     2011112421
                        1H
                        15M
                        1W
                        1D)
  @      IN   NS    ns1.magedu.com.
         IN   NS    ns2.magedu.com.
         IN   MX 10 mail.magedu.com.
  ns1    IN    A    172.16.6.1
  ns2    IN    A    192.168.0.122
  mail   IN    A    192.168.0.141                     
  www    IN    A    192.168.0.142
  ftp    IN    CNAME www
  tech.magedu.com.    IN  NS  ns.tech.magedu.com
  ns.tech.magedu.com. IN  A     192.168.0.122

  在子域服務器中   
  forward:實現子域找到父域
  配置/etc/named.conf
  option    {
             directory "/var/named";
  };
  zone "." IN {
          type hint;
          file "named.ca"
  };
  zone "localhost" IN {
          type master;
          file "localhost.zone";
  };
  zone "0.0.127.in-addr.arpa" IN {
          type master;
          file "named.local";
  }
  zone "tech.magedu.com" IN {
           type master;
           file "tech.megedu.com.zone";
  };
  zone "magedu.com" IN {
          type forward;
          forwarders { 172.16.6.1; };
          forward only|first;遞歸|首先遞歸若查不到在嘗試替代
  };
  看/var/named/下的文件
  vim /var/named/tech.magedu.com
   $TTL 600
   $OPIGIN tech.magedu.com.
   @   IN     SOA   ns.tech.magedu.com.   admin.tech.magedu.com. (
                       20111123
                        1H
                        5M
                        7D
                        1H )
              IN    NS    ns
              IN    MX 10 mail
   ns         IN    A     192.168.0.122
   mail       IN    A     192.168.0.122
   www        IN    A     192.168.0.1
  
  vim /etc/resolv.conf該域名指向自己192.168.0.122


 
  ACL先定義後使用none,all,
  acl "slaves" {
               192.168.0.122;
               192.168.0.100;
   };
   allow-transfer { slaves; }
 
  acl "ourclients"  {

   };     
 
 
  allow-query { ourclients; };允許誰查看

在全局 :  allow-recursion { none; }   允許誰遞歸
  recursion no;

 

 智能DNS:根據客戶端來源ip地址,來爲某一個解析請求返回一個設定好的解析結果
 view根據來源的不同,能給不同用戶展示不同的結果
 每個view可以有多個區域, 若使用view,每個區域都在view內
  view VINE_NAME {
       match-clients { 192.168.0.0/24; };
   };  
 
  例:讓來自172.16.0.0/16,192.168.0.0/24各自返還
  vim /etc/named.conf
  optinons   {
             directory "/var/named";
             querylog yes;
             version "None of your business";
  };
  view localnet {
       match-clients { 172.16.6.0/16; };
  zone "."  IN  {
               type hint;
               file "named.ca";
  };
  zone "localhost" IN  {
                type master;
                file "localhost.zone";
  };
  zone "0.0.127.in-addr.arpa" IN {
                type master;
                file "named.local";
  };
  zone "magedu.com" IN {
                type master;
                file "magedu.com.zone";
  };
  zone "6.16.172.in-addr.arpa" IN {
                type master;
                file "172.16.6.zone";
  };
};

  view external {
     match-clients { 192.168.0.0/24; };
     zone "magedu.com" IN {
             type master;
                file "magedu.com.external";
   };
};
 
  vim /var/named/magedu.com.external;
  $TTL 86400
  @      IN   SOA ns1.magedu.com. admin.mageedu.com. (
                     2011112421
                        1H
                        15M
                        1W
                        1D)
  @      IN   NS    ns1.magedu.com.
         IN   NS    ns2.magedu.com.
         IN   MX 10 mail.magedu.com.
  ns1    IN    A    172.16.6.1
  ns2    IN    A    192.168.0.122
  mail   IN    A    192.168.0.141                     
  www    IN    A    192.168.0.142
  ftp    IN    CNAME www
  service named restart
  chgrp named /var/named/magedu.com.external
  chmod o-r /var/named/magedu.com.external
  要在不同的網段通信要添加一條默認的路由
  route add default 192.168.0.0. 192.168.0.254
  用nslookup可以檢查結果
 使用dig來驗證結果  
    
                                             
                        
             
             
             
             
             
   
   
   
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章