• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何在Linux上建立DNS服務器

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    一、 假定 本文假定你已對域名服務器 DNS 有基本的了解,如果不是,請參看相關的文襠。 許多DNS的文章都是從DNS原理開始介紹,本人則從使用的角度出發,為Linux的管理員提供一些簡單實用的應用實例。 下面假定我們需要建立一臺企業網的DNS主服務器,應用條件

    一、 假定

    本文假定你已對域名服務器 DNS 有基本的了解,如果不是,請參看相關的文襠。
    許多DNS的文章都是從DNS原理開始介紹,本人則從使用的角度出發,為Linux的管理員提供一些簡單實用的應用實例。

    下面假定我們需要建立一臺企業網的DNS主服務器,應用條件如下:

    (1) 一個C類網段地址 (本例中假定是192.22.33)

    (2)企業域名為 my.com,并已注冊 (主域名服務器地址 192.22.33.20,主機名為 linux.my.com)

    (3)企業網通過路由器與Internet連接

    假如你的應用環境與上述條件不同,也請往下看,本文會在上述例子的基礎上針對以下情況作修正:

    (1) 多個網段

    (2) 封閉的內部網

    (3) 只能訪問局部公共網的情況(如169網、上海熱線等)

    二、named、/etc/named.boot 和 ndc

    DNS 服務器的主體是域名服務器進程 named ,named 啟動后向DNS客戶機提供域名解析服務,把域名轉換成IP地址。
    named 啟動時需要讀取一個初始化文件,缺省情況下是 /etc/named.boot,所以/etc/named.boot 是 named 的基本配置文件。

    雖然啟動 named 可直接執行 named,在Linux上我們可以使用一個控制 named 的工具 ndc。ndc 可以用于啟動、中止、重啟動、刷新DNS數據、輸出DNS數據等多種調試功能,我在這里推薦大家用這個工具來幫助 DNS 服務器的調試。

    有關 ndc 的詳細用法,請參看 Linux 有關文檔。

    三、建立 named 配置文件 /etc/named.boot

    /etc/named.boot 是基本的配置文件,但不包含任何 DNS 數據,針對我們前面的假定,我們先建立以下 /etc/named.boot,其內容如下:
    ;
    ; boot file for name server
    ;
    directory /var/named

    primary my.com db.my
    primary 0.0.127.IN-ADDR.ARPA db.127.0.0
    primary 33.22.192.IN-ADDR.ARPA db.192.22.33
    cache . db.cache

    其中以“;”開頭的行是注釋行,其他各行含義是
    (1)diretory /var/named

    指定 named 從 /var/named 目錄下讀取 DNS 數據文件。這個目錄用戶可自行指定并創建,指定后所有的DNS 數據文件都存放在此目錄下。

    (2)primary my.com db.my

    指定 named 作為 my.com 域的主域名服務器,db.my 文件中包含所有 *.my.com 形式的域名轉換數據。

    (3)primary 0.0.127.IN-ADDR.ARPA db.127.0.0

    指定 named 作為127.0.0網段地址轉換主服務器,db.127.0.0 文件中包含了 127.0.0.* 形式的地址到域名的轉換數據。(127.0.0網段地址是局域網接口的內部 loopback 地址)

    (4)primary 33.22.192.IN-ADDR.ARPA db.192.22.33

    指定 named 作為 192.22.33 網段地址轉換主服務器,db.192.22.33 文件中包含了所有 192.22.33.* 形式的地址到域名的轉換數據。

    (5) cache . db.cache

    指定 named 從 db.cache 文件中獲得 Internet 的頂層“根”服務器地址

    要注意(3)(4)兩行中的網段地址是倒寫的,另外,各個文件名也是可以自行決定的。

    四、建立各個 DNS 數據文件

    下一步,要按 /etc/named.boot 中的定義,建立各個 DNS 數據文件。
    (1)建立正向域名轉換數據文件 db.my

    根據 /etc/named.boot 的定義,我們在 /var/named 目錄下建立 db.my,其中應該包括所有在 my.com 域內的主機節點。但在機器數量較多時,為了調試方便,建議一開始只把幾臺節點的數據放入文件,待 named 正常工作后再把其他節點的數據補充進去。下面是 db.my的例子:

    @ IN SOA linux.my.com. root.linux.my.com. (
    199511301 ; serial, todays date + todays serial #
    28800 ; refresh, seconds
    7200 ; retry, seconds
    3600000 ; expire, seconds
    86400 ) ; minimum, seconds
    NS linux.my.com.
    MX 10 support.my.com.

    localhost A 127.0.0.1
    linux A 192.22.33.20
    support2 A 192.22.33.102
    hp712 A 192.22.33.160
    support A 192.22.33.100
    mail MX 10 support.my.com.
    MX 20 support2.my.com.
    www CNAME hp712.my.com.
    ftp CNAME hp712.my.com.
    ns CNAME linux.my.com.

    其中第一行是 SOA 記錄,定義了域名數據的基本信息,依次是 DNS 服務器名、DNS 管理員郵件地址,括號內的第一個數字是文件版本號,每次本文件內容修改后,必須更改此號。其余數字與DNS服務器直接的數據交換有關,在這里我們不需要改動。
    括號后面有一條 NS 記錄和一條 MX 記錄,定義了域名服務器本身的域名和 形式郵件地址所對應的郵件服務器名字。

    在此以下是各種域名/地址轉換數據,其中 A 記錄是 DNS 域名到 IP 地址的記錄,是必須有的,以 hp712.my.com 為例,在 A 記錄中域 my.com 被省略,只寫成 hp712,named 在處理時會根據 named.boot 中的定義自動加上 my.com,而其對應 IP 地址為 192.22.33.160。

    另一種記錄是 MX 記錄。MX 是郵件地址轉換記錄,本例中定義了將 的郵件地址轉換成 或 ,即實際上真正的郵件服務器是 support.my.com 和 support2.my.com,其中 support.my.com 的優先數為 10,support2.my.com 的優先數為 20,所以通常郵件首先被發往優先數小的主機 support.my.com。

    還有一些是為方便提供的 CNAME 記錄。CNAME 定義了一些主機的別名,比如我們將 hp712.my.com 作為公司的 www 和 ftp 服務器,所以我們提供了 和 作為 hp712.my.com 的別名,用戶只需要根據習慣就可以訪問公司的 www、ftp 服務器了,如果將來我們換用別的主機作 www 和 ftp 服務器,只需要修改 CNAME 記錄就可,對用戶沒有影響。

    注意:MX 和 CNAME 記錄最后的帶域名的主機名后必須帶一個“.”

    (2)建立反向 DNS 數據文件 db.127.0.0 和 db.192.22.33

    反向 DNS 數據文件用來提供根據 IP 地址查詢相應 DNS 主機名,每個網段分別有一個數據文件。

    對于內部網段 127.0.0 通常只有一個地址,即 127.0.0.1 loopback 地址,db.127.0.0 內容如下:

    @ IN SOA linux.my.com root.linux.my.com. (
    1997022700 ; Serial
    28800 ; Refresh
    14400 ; Retry
    3600000 ; Expire
    86400 ) ; Minimum
    IN NS linux.my.com.

    1 IN PTR localhost.

    而外部網段的數據文件 db.192.22.33 中包含所有主機 IP 地址到 DNS 主機名的轉換數據。db.192.22.33 內容如下:
    @ IN SOA linux.my.com. root.pc590.my.com. (
    199609206 ; Serial
    28800 ; Refresh
    7200 ; Retry
    604800 ; Expire
    86400) ; Minimum TTL
    NS linux.my.com.
    ;
    ; All hosts
    ;
    20 PTR linux.my.com.
    102 PTR support2.my.com.
    100 PTR support.my.com.
    160 PTR hp712.my.com.

    反向 DNS 數據文件中的主要部分是 PTR 記錄,PTR 記錄中的 IP 地址都只有主機號,named 會根據 named.boot 的定義自動加上前面的網絡號,注意后面的主機名要附加一個“.”
    (3)獲得 db.cache 文件

    在 Linux 系統上通常在 /var/named 下已經提供了一個 named.ca,該文件文件中包含了 Internet 的頂層域名服務器,但這個文件通常會發生變化,所以建議最好從 Internic 下載最新的版本。該文件可通過匿名 ftp 從 下載,在 domain 目錄下,文件名為 named.root。注意該文件下載后要拷貝到 named 的工作目錄并重命名成 named.boot 中指定的文件名,本文中為 db.cache。

    五、啟動和測試 named

    首先,根據先前推薦的方法,用 ndc 啟動 named:
    ndc start

    然后,為了使用和測試 named,要把 Linux 設置在使用 DNS 狀態。方法是在 /etc 目錄下,創建 resolv.conf 文件。以我們的例子,/etc/resolv.conf 內容為:

    search my.com
    nameserver 192.22.33.20

    然后,我們就可以測試 named 了。
    Linux 和其他 Unix 系統均提供了 nslookup 工具,在命令行狀態下輸入:

    nslookup

    就進入交換式 nslookup 環境,如果 named 正常啟動,nslookup 會顯示當前 DNS 服務器的地址和域名,否則表示 named 沒能正常啟動。下面簡單介紹一些基本的 DNS 診斷:

    (1)檢查正向 DNS 解析

    在 nslookup 提示符下輸入帶域名的主機名,如 hp712.my.com,nslookup 應能顯示該主機名對應的 IP 地址,如果只輸入 hp712,nslookup 會根據 /etc/resolv.conf 的定義,自動添加 my.com 域名并回答對應的 IP 地址。

    (2)檢查反向 DNS 解析

    在 nslookup 提示符下輸入某個 IP 地址,如 192.22.33.20,nslookup 應能回答該 IP 地址所對應的主機名。

    (3)檢查 MX 郵件地址記錄

    在 nslookup 提示符下輸入:

    set q=mx

    然后輸入某個域名,以本文的例子,輸入 my.com 或 mail.my.com,nslookup 應能夠回答對應的郵件服務器地址,即 support.my.com 和 support2.my.com。

    (4)檢查 CNAME 別名記錄

    在 nslookup 提示符下輸入:

    set q=cname

    然后輸入某個別名,如 ,nslookup 應能回答對應的真實主機名,即 hp712.my.com。

    如要退出 nslookup,可輸入 exit。

    六、修改 DNS 數據

    如果要在網絡中增加主機,例如要增加一臺叫做 pc01.my.com 的 PC 機,管理員要在 db.my 中增加該主機對應的 A 記錄,并且要在 db.192.22.33 中增加對應的 PTR 記錄,然后用 ndc 更新 named 的數據:
    ndc reload

    要注意必須同時更改 A 記錄和 PTR 記錄,許多管理員往往只增加 A 記錄而忽略了逆向查詢用的 PTR 記錄,結果會使許多應用程序不能正常運行。

    特別注意,一旦修改了 DNS 數據文件的內容,請務必改動數據文件的版本號( Serial )

    七、使網絡中的其他系統(客戶機)使用 DNS 服務器

    一旦 DNS 服務器開始工作,就可以配置所有企業網內的主機使用 DNS 服務。
    Unix 主機配置的方法,已經在前面說明過,即創建 /etc/resolv.conf 文件,內容見前面第五節。

    Windows 95 的配置則是在網卡的 TCP/IP 配置中,選擇使用 DNS (enable),然后在配置窗口中分別填入各項參數。以本文的例子,如果運行 Windows95 的主機被命名為 pc01.my.com,則在主機名(Host)一欄中填 pc01,在域名(Domain)一欄中填 my.com,然后把域名服務器 (DNS Server)加入搜索列表中。

    Windows NT 節點的配置大致相同。

    八、幾種不同環境下的修正

    (1)如果 IP 網段多于一個
    假定現在在 my.com 域中增加一個 IP 網段 192.22.37,則 /etc/named.boot 的內容中就增加一個網段的定義,具體如下:

    ;
    ; boot file for name server
    ;
    directory /var/named

    primary my.com db.my
    primary 0.0.127.IN-ADDR.ARPA db.127.0.0
    primary 33.22.192.IN-ADDR.ARPA db.192.22.33
    primary 37.22.192.IN-ADDR.ARPA db.192.22.37
    cache . db.cache

    而反向 DNS 數據文件則增加一個定義 192.22.37 網段的文件 db.192.22.37,其中包括了所有處于 192.22.37 網段中的節點,其格式與 db.192.22.33 類似。
    (2)如果企業網是封閉的

    如果企業網絡不與外界 Internet 直接互連,DNS 服務器就不必關心本企業域以外的域名,所以配置 named 的時候可以不理會 db.cache,我們可以將 /etc/named.boot 中的 cache 行去除。

    (3)如果你聯入的公共網不能訪問 Internet

    如果你的內部網接入的公共網只能訪問有限的范圍,如免費的169網、上海熱線等,那么你的 DNS 服務器就不能通過 Internet 的頂層服務器(root server)進行地址解析,所以你必須用你直接能訪問到的 DNS 服務器來替代。具體辦法是用 forwarders 選項來指定上級 DNS 服務器,以本文為例,named.boot 的內容為:

    ;
    ; boot file for name server
    ;
    directory /var/named

    primary my.com db.my
    primary 0.0.127.IN-ADDR.ARPA db.127.0.0
    primary 33.22.192.IN-ADDR.ARPA db.192.22.33
    primary 37.22.192.IN-ADDR.ARPA db.192.22.37
    forwarders ...
    options forward-only

    其中、等是你能直接訪問到的 DNS 服務器的地址,通常就是你的 ISP (169、上海熱線等)的 DNS 服務器的地址,至少要有一個。
    通過 forwarders 和 options forward-only 參數的指定,你的企業 DNS 服務器就工作在 forward-only 模式下,所有本地不能解決的名字都被傳送到 ISP 的 DNS 服務器上去解析。

    九、建立后備 DNS 服務器 (Secondary DNS Server)

    通常有一臺 DNS 主服務器,網絡即可正常工作,但根據 Internic 對域名的管理規范,一個獨立的域名必須至少有兩臺 DNS 服務器,即一臺 DNS 主服務器 ( Primary Server )和一臺后備 DNS 服務器 ( Secondary Server ),這主要是為 DNS 服務的可靠性考慮,能使 Internet 的性能更為可靠。
    現在仍以前面的例子,現在要加入一臺運行 Linux 的機器 nspc.my.com,IP 地址為 192.22.33.60。

    (1)主服務器上的修改

    首先確認 DNS 主服務器工作正常,然后,在主服務器上的正向 DNS 數據文件 db.my 中,加入 nspc.my.com 的有關記錄,并增加一個NS記錄,使主服務器上的 db.my 成為下列內容:

    @ IN SOA linux.my.com. root.linux.my.com. (
    199511301 ; serial, todays date + todays serial #
    28800 ; refresh, seconds
    7200 ; retry, seconds
    3600000 ; expire, seconds
    86400 ) ; minimum, seconds
    NS linux.my.com.
    NS nspc.my.com. ; 必須增加的記錄
    MX 10 support.my.com.

    localhost A 127.0.0.1
    linux A 192.22.33.20
    support2 A 192.22.33.102
    hp712 A 192.22.33.160
    support A 192.22.33.100
    nspc A 192.22.33.60 ; 增加的記錄
    mail MX 10 support.my.com.
    MX 20 support2.my.com.
    www CNAME hp712.my.com.
    ftp CNAME hp712.my.com.
    ns2 CNAME nspc.my.com. ; 增加的記錄
    ns CNAME linux.my.com.

    然后對主服務器上的各個反向 DNS 數據文件做類似的修改,增加有關后備服務器的 NS 記錄,然后重新起動 named。
    可見,其實在主 DNS 服務器上的改動主要是增加了一條 NS 記錄,其余的改動和增加一臺普通節點一樣,如果是用現有的節點做后備 DNS 服務器,則增加 NS 記錄是唯一必須的步驟。

    (2)后備 DNS 服務器(secondary server)的配?

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>