2026年7月30日 星期四

在 Ubuntu 26.04 架設網域名稱伺服器(DNS)及相關設定說明

        BIND(Berkeley Internet Name Domain 伯克利網際網路域名) 是全世界最廣泛用來提供DNS服務的軟體,能夠將 網域名稱 <-對應-> IP 。提供兩種工具:1.named  2.rndc (遠端管理named 工具)
        1.安裝BIND
           sudo apt install bind9

        2.檢測是否安裝成功
            sudo ss -tulnp | grep named
            各個指令的意義:
             ss 顯示 Socket 相關的資訊
             -t 顯示 TCP連線
             -u 顯示 UDP連線
             -l 顯示 監聽中的連線
             -n 顯示 連接埠數字
             -p 顯示 占用連線的行程(process)
            (1).當 TCP 與 UDP 監聽 連接埠 53 表示 BIND 安裝成功
            (2).當TCP 監聽 連接埠 953 表示 rndc 會用到的連接埠  
       一、named:BIND 提供的守護程式(daemon)
       1.主要設定檔- named.conf:預設位置 /etc/bind/
        named.conf 內容:
       (1) named.conf.options 用來存放 options (選項),內容:
    其中 directory "/var/cache/bind";
                    directory 指定一個目錄,作為DNS資料庫,預設目錄為 /var/cache/bind
            forwarders {    
                 0.0.0.0;       
            };                     
                    forwarders 指定多個IP,以分號 ; 區隔。當我們DNS 無法回應使用者的查詢請求時,
                    轉移(forward) 指定的IP (就目前的IP為 0.0.0.0)
            dnssec-validation auto;
                    讓我們DNS 支援 DNSSEC (Domain Name System Security Extension)
            Listen-on-v6 設定監聽 IPv6範圍
       (2) named.conf.local 用來存放本地和使用者自定的 Zone 區塊。設定A.正解 B.反解
            A.正解(用網域名稱 查 IP) 
            B.反解(用IP 查 網域名稱)
       (3) zones.rfc1918 用來定義私有網域為 10.0.0.0 ~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0 ~ 192.168.255.255,內容為
       172.16.0.0~172.16.255.255 zone的反解寫法:
        zone "16.172.in-addr.arpa" {    ...    };
        那 zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty";  };
       file 指定一個檔案給 zone 區塊對應的網域或IP,
             而該檔案內有DNS資源紀錄(Resource Record  RR)。        
       /etc/bind/db.empty 是 BIND 內建的設定檔,內容如下:
       type 設定值有三:A.master B.slave C.hint
        A.master 表示 zone 是主從架構的DNS中的 主要主機 
        B.slave   表示 zone 是主從架構的DNS中的 從屬主機
        C.hint     用於對應 . 的時候。 . 表示 [根域名](root name)
       (4) db.empty 內容:
       $TTL 86400
   
    $TTL 設定此RR(資源紀錄Resource Record) 作為解答的快取時間,單位是秒。
       $TTL 86400 意思是使用者的查詢請求只要問過DNS一次,就可以持續一整天(86400秒)

        @   IN  SOA localhost. root.localhost. (                                                   
                           1     ; Serial      
                 604800     ; Refresh     
                   86400     ; Retry       
               2419200     ; Expire      
                   86400 )   ; Negative Cache TTL
                   @                                       代表   zone name :目前網域(Zone Root )
                  IN                                       代表   Class          :InterNet 類別
  SOA(Start Of Authority 授權開始)  代表   這筆DNS紀錄值的格式
              localhost.                               代表   主要(master)主機的網域名稱                  
           root.localhost.                           代表   管理者的電子信箱
              Serial                                      代表   版本序號
              Refresh                                   代表   從屬(slave)主機的更新時間
               Retry                                     代表    重試的時間間隔
             Expire                                     代表    逾時時間
      Negative Cache TTL                     代表    最小的TTL值

        @   IN   NS   localhost.
                NS(Name Server)                代表    指定此網域的權威 DNS 伺服器                                      
      其他常用的DNS 資源記錄類型,如下:
      A            :指定網域名稱所對應的IPv4。正解用。
      AAAA   :指定網域名稱所對應的IPv6。正解用。
      PTR       :指定IP所對應的網域名稱。反解用。
      CNAME:指定別名。正解用。
      MX        :用於指定電子郵件交換器的主機名稱。
       TXT      :指定網域名稱對應某筆字串資料,通常用於驗證網域所有權。

資料來源:

在 Ubuntu 26.04 架設網域名稱伺服器(DNS)及相關設定說明

        BIND(Berkeley Internet Name Domain 伯克利網際網路域名) 是全世界最廣泛用來提供DNS服務的軟體,能夠將 網域名稱 <-對應-> IP 。提供兩種工具:1.named  2.rndc (遠端管理named 工具)   ...