Linux-B-進階-第2章-DNS域名服務器


目錄(持續更新)


基礎-第0章-安裝
基礎-第1章-基本操作
基礎-第2章-磁盤及文件系統管理
基礎-第3章-獲得幫助
基礎-第4章-用戶及權限基礎
基礎-第5章-網絡基本配置
基礎-第6章-管道,重定向及文本處理
基礎-第7章-系統啟動詳解

進階-第1章-日志服務
進階-第2章-DNS域名服務器
進階-第3章-FTP文件共享服務
進階-第4章-NFS文件共享服務
進階-第5章-SMB文件共享服務
進階-第6章-WEB服務Apache篇
進階-第7章-電子郵件服務
進階-第8章-Linux服務基礎及管理

高級-第1章-LVM邏輯卷
高級-第2章-高級權限ACL
高級-第3章-RAID提升速度及冗余
高級-第4章-高級網絡-網卡綁定,子端口
高級-第5章-SELinux安全系統基礎
高級-第6章-IPTable防火墻基礎
高級-第7章-Linux遠程管理-SSH、VNC


第2章 DNS域名服務器


第一節 DNS基礎及域名系統架構
  • 域名
    IP地址難記,所以使用域名管理

          www.google.com  www.linuxprobe.com
    
      嚴格域名最后還有一個 "."  但一般不寫
    
      域名分為三部分用“.”分割
    
          -類型 表示域名的類型
          -域名 域名城
          -主機名    該域中的某臺主機名稱
    
          www.    linuxcast.  net
          主機名   域名        類型
    
  • DNS

      每個域名代表一個IP,而DNS就是用來在IP與域名之間進行轉換服務
    
          www.linuxcast.net   61.1.1.1
      DNS(Domain Name System)服務有DNS服務器提供
    
      
          1.本機PC訪問www.linucast.net    ------------------->    DNS服務器 61.134.1.4
                      DNS請求
    
          2.DNS服務器 61.134.1.4     ------------------->    本機PC        
                      www.linucast.net=61.1.1.1
    
          3.本機PC訪問61.1.1.1        ------------------->    www.linucast.net:61.1.1.1網站
    
  • DNS客戶端

          日常使用支持計算機一般都是作為一個DNS客戶端使用
          應用程序,服務,進程通過操作系統底層的功能發起對DNS服務器的查詢對指定域名解析
    
          linux中一般只用系統底層提供的gethostbyname()功能進行域名解析
    
          解析可以基本基于以下幾種方式:
    
              - 文件    (/etc/hosts,/etc/networks)指定域名與IP的匹配
              - DNS   (/etc/resolv.conf 目前已經能手動修改)指定DNS服務器    (改用/etc/sysconfig/network-scripts/ifcfg-eth0)
              - NIS       已淘汰 
    
          可以通過配置文件/ect/nsswitch.conf控制查詢順序
          hosts:files dns files就是指查詢host文件
    
  • DNS專用查詢命令

          命令host可以用進行DNS查詢
    
              host www.bilibili.com
    
          命令dig用于進行DNS查詢,輸出較為詳細的信息
    
              dig www.bilibili.com
    
          命令host,dig都不會使用/ect/nsswitch.conf的配置,只會通過/etc/resolv.conf進行DNS查詢
    
      DNS查詢
          DNS是樹狀結構,查詢是根據域名從右到左查詢,每一級有一個獨立或多個服務器
    
          www.bilibili.com.
    
                  .               root DNS Server     根服務器(返回頂級域名服務器位置)
          com net org cn  gov ... Top Level Server    頂級域名服務器(返回授權服務器位置)
          bilibili                    Authoritative Server:bilibili.com   授權服務器(返回來源服務器位置)
          www mail    ftp ...         Resource Recaord:www.bilibili.com   來源服務器(返回網站服務位置)
    
          dig +trace www.bilibili.com (該命令+trace存疑)
    
  • DNS查詢類型

          遞歸查詢
    
          client  ---->   當地DNS服務器    <------->   "."
                  當地DNS服務器    <------->   "net"
                  當地DNS服務器    <------->   "bilibili.com"  
          client  <----   當地DNS服務器                        
    
          循環查詢 逐級返回  每次消耗大量緩存
    
          client ---->    當地DNS服務器    ------->    "."
                  "."     ------->    "net"
                  "net"       ------->    "bilibili.com"                          
                  "net"       <-------    "bilibili.com"
                  "."     <-------    "net"
                  當地DNS服務器    <-------    "."
          client  <----   當地DNS服務器
    
          實際應用中兩者都會使用
    
  • 資源記錄

          在DNS上,信息通過一個叫資源里路的格式保存
          
          資源記錄
    
              - NAME      名字
              - CLASS     通常是IN  (internet)
              - TYPE  類型  A為IPV4地址    AAAA為IPV6地址 CNAME別名,名稱對等 MX為郵件記錄
              - RDATA 信息內容
    
          例:
    
          NAME        CLASS   TYPE    RDATA
    
          www     IN  A   192.168.1.1
          mail        IN  A   192.168.1.2 
          server1     IN  CNAME   www
                  IN  MX 10   mail.bilibili.com
    
  • 資源記錄類型

          DNS的資源記錄可以記錄很多類型的資源,不僅僅是IP地址,
          常見的資源記錄 
          
          A       IPV4地址
          AAAA        IPV6地址
          MX      郵件記錄
          CNAME       別名
          PTR     指針(逆向解析)
          SRV     服務資源
    
  • DNS服務器類型

          Primary DNS Server (Master)
          一個域的主服保存該域的zone配置文件,域內所有配置更改都在這里進行
          Secondary DNS Server (Slave)
          從主服務器抓取配置文件,作為主服務的冗余負載
          Caching only Server
          DNS服務器緩存服務不負責任和zone文件,僅僅依靠緩存為客戶端提供服務,常用于負載均衡及加速訪問使用
    
  • ZONE
    在DNS服中一個域用過一個zone文件保存該域信息

          zone文件格式標準化配置如下:
    
          STTL ID
          @IN SOA     @rname.invalid.(
                      0   ;serial     配置文件的修改次數
                      1D  ;refresh    刷新時間 1D就是1DAY
                      1H  ;retry      重試時間 1H即使1HOUR
                      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 -t mx qq.com
          dig -x www.bilibili.com
          dig -t soa bilibili.com
    

第二節 BIND服務基礎及域主服務器配置
  • BIND

      現在使用的最廣泛的DNS服務器軟件BIND
      最早為伯克利大學學生編寫
      現在最新為9
      
      BIND支持現今絕大多數OS
    
      BIND服務的名稱為named
    
      我們可以通過以下命令安裝BIND
    
          yum install -y bind bind-chroot bind-utils
      
      DNS默認使用UDP,TCP協議,默認使用端口53(domain),953(mdc)
    
  • BIND配置文件

          配置文件主要位置:
          
              /etc/named.conf -BIND服務主配置文件
          
              /var/named/ -zone文件
      
          如果安裝了bind-chroot,BIND會被封裝到一個偽根目錄,配置文件的位置變為:
    
              /var/named/chroot/etc/named.conf
    
              /var/named/chroot/var/named/    
    
          chroot是通過相關巍峨見封裝在一個偽根目錄內,已達到安全防護的目的,
          一旦該程序被攻破,只能訪問偽根目錄的內容,而不是真實的根目錄
    
  • BIND模板配置文件

          在不同于其他服務,BIND在安裝后不會有任何預制的配置文件,
          但是在BIDN文檔文件夾    (/usr/share/doc/bind-9.9.4)
          BIND為我們提供了配置文件模板,可以直接拷貝過來:
          
              cp -rv /usr/share/doc/bind-9.9.4/sample/ect/*  /var/named/chroot/etc/
              cp -rv /usr/share/doc/bind-9.9.4/sample/var/*  /var/named/chroot/var/
    
          示例中的主配置文件內容較多,
          實驗環境下我們可以刪減不需要的內容,配置named.conf
          最小化配置如下:
      
              options{
                  listen-on port 53   {127.0.0.1;};
                  directory       "/var/named";           
              };
          或者
              options{
                  directory       "/var/named";   
                  listen-on port 53   {127.0.0.1;};
                  listen-on-v6 port 53    {127.0.0.1;};       
              };
          
          注:ubuntu中該代碼在named.conf.options文件中
    
  • 域主服務器配置

          一個域的主服務器是這個域的信息權威服務器,所有這個域的信息都是由域的主服務器控制,
          配置一個域的主服務器需要一下幾個步驟
    
          1.在bind的主配置文件中添加該域的定義
      
          2.在/var/named/chroot/var/named中創建該域的zone信息
    
          3.編輯zone文件,添加需要的信息
    
          4.啟動bind服務或使bind刷新配置
    
          5.使用host或dig命令檢測域信息是否正常             
    
  • 配置域主服務器-1

          在bind的主配置文件中添加域bilibili.com的定義
    
          配置文件位置:
    
              /var/named/chroot/etc/named.conf
    
                  options {
                  directory "/var/named"; 
                  listen-on port 53   { 127.0.0.1; };
                  listen-on-v6 port 53    { ::1; };
                  };
    
    
          在主配置文件中添加一行域的zone定義:(ubuntu中代碼參考在named.conf.default-zones文件)
    
              zone"bilibili.com"{
                  type master
                  file"bilibili.com.zone"     文件名可以隨便,ubuntu中使用絕對路徑形式(由于centos中上面的option已定義了查找目錄)
              };
    
  • 配置域主服務器-2

          為定義的域添加zone配置文件
    
          zone文件位置
    
              /var/named/chroot/var/named/bilibili.com.zone
    
          zone文件內容
    
              zone文件內容比較復雜,手工輸入很容易出錯,所以一般使用默認的named.localhost配置文件作為模板
    
                  cp named.localhost bilibili.com.zone
    
              添加一個資源記錄(RR)
    
                  IN MX 10    mail.bilibili.com
              www IN A    192.168.1.111
              mail    IN A    192.168.1.222
    
    
              確保配置文件都有讀權限
    
  • 配置域主服務器-3

          1.啟動bind服務或刷新配置
    
              service named start
              service named reload
    
          2.將本機的DNS配置指向本機
    
              /etc/resolv.conf    (debian系不能單純修改該文件 需要修改網卡配置或者找到/etc/resolvconf/resolv.conf.d/base文件修改)
              nameserver 127.0.0.1
    
          3.使用命令host或dig驗證DNS配置
    
              host    www.bilibili.com
              dig     www.bilibili.com    
    
  • 錯誤排查

      DNS語法復雜晦澀,容易出錯,bind提供了語法檢查命令
    
          命令named-checkconf 檢查主配置文件
      
              named-checkconf /var/named/chroot/etc/named.conf
              無返回 則無錯誤
    
          命令named-checkzone 檢查zone配置文件
              
              named-checkzone bilibili.com bilibili.com.zone
    

第三節 BIND服務從服務器與緩存服務器配置
  • 域從服務器

          一個域從服務器為了備份負載均衡使用,所有DNS信息由主服務器提供
          配置如下
    
          1.在bind的主配置文件愛你中添加該域的定義
    
          2.啟動bind服務或者bind刷新配置
    
          3.查看域的zone文件是否正常抓到/var/named/slaves
    
          4.使用host或者dig命令檢測域信息是否正常
    
  • 配置域從服務器-1

          在bind的主配置文件中添加從域bilibili.com的配置信息
    
          配置文件位置
    
              /var/named/chroot/etc/named.conf
    
          在主配置文件中添加一行域的zone定義
    
              zone"bilibili.com"{
                  type slave
                  masters{192.168.1.1;};
                  file"slaves/linuxcast.net.zone";
              };
    
  • 配置域從服務器-2

          1.重啟bind服務或刷新配置
    
              service named start
              service named reload
    
          2.查看zone文件是否正常抓取下來
    
              vim /var/named/chroot/var/named/slaves/bilibili.com.zone
    
          3.將本機的DNS指向自己
    
              vim /etc/resolv.conf
    
                  nameserver 127.0.0.1
    
          4.使用命令host或dig驗證DNS配置
    
              host    www.bilibili.com
              dig www.bilibili.com
    
  • 配置緩存服務器

          一個DNS服務可以既不是主也不是從服務
          接到DNS后緩存服務會遞歸查詢解析,會將結果緩存
          這樣的服務稱為CACHING NAME SERVER
    
          通常在局域網中配置緩存是為了加速訪問網絡
    
          也可為緩存服務配置一個上游DNS服務器地址,緩存服務器可以給客戶提供一個上游DNS的地址
    
              forwarders{218.0.0.1;} ;  (上游DNS服務器地址)
    
          也可以通過以下選項讓服務器轉發所有dns到forwarders服務器:
    
              forward only;
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容