歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

基於Linux的網絡試驗系統的設計(三)

  第三章 DNS(域名系統)和設置    第一節 DNS介紹     一、DNS    連接TCP/IP的每個網絡接口用一個唯一的32位的IP地址標識,但由於數字比較復雜、難以記憶而且沒有形象性。因而人們發明了用域名系統來解決它,在這種情況下,我們可以使用易於理解和較為形象的名稱來作為一台計算機的標識。在大多數情況下,數字地址和域名地址可以交替使用;但無論用數字地址或是域名進行網絡應用時,網絡總是以IP地址為基礎來進行的。在網絡進行連接前,系統必須將域名地址轉換成IP地址。這就是DNS的任務。    將域名轉換成IP地址有常用的兩種方法。一種較古老的方法是從一個稱為“主機表”的文件中查找主機名;後來一般使用的是一個稱為“域名服務(DNS)”的分布式數據庫系統,將名字轉換成IP地址。    主機表是一個簡單的文本文件,可以使IP地址與主機名相關聯。在Redhat5.2中,主機表文件為/etc/hosts,該文件的每一表項包含一個IP地址和用空格隔開的與該地址關聯的主機名列表。     雖然主機表比較簡單,但它有一些缺點。域名系統則能克服這些缺點:    -DNS的擴充性好。它並不依靠單獨一個大表,而是一個分布式數據庫系統,不會因為數據庫的增長而陷入困境。    -DNS可確保在必要時將新主機的信息傳播到網絡中其他部分。不僅能自動地傳播信息,而且可以只傳播所需的信息。    DNS的工作原理為:如果一台DNS服務器接收到一個要求獲取有關主機信息的請求,它就將該請求發送給一台管理服務器。管理服務器是負責保持查詢域的精確信息的任何服務器。當它響應該請求時,本地服務器就將回答信息保存在高速緩存中供將來使用。當下一次本地服務器再接收到該信息的請求時,它本身就回答這個請求。    二、DNS服務器的類型    1、“Cache-Only”的DNS服務器:     一個DNS服務器也不可能擁有國際網絡上所有的主機信息,因此它提供一個轉送方式,將自己的DNS服務器無法處理的查詢要求轉送至上一層的DNS服務器查詢,然後將所得到的查詢結果,傳送給提出查詢要求的主機。而“Cache-Only” 的“ DNS” 就是該DNS服務器的主機信息裡除了自己之外就沒有了,它將所有的查詢要求都轉送至其他DNS服務器去查詢。     2、“ Primary” DNS服務器:     一個完整功能的DNS服務器,管理一個或數個“ Domain” (域)的機器信息。而這些主機相關的資料都依照格式儲存於服務器的檔案目錄中,然後會在服務器啟動時將這些資料讀入系統。    “ Secondary” DNS服務器:     基本上它也是一個完整功能的DNS服務器,只是所不同的是,它的主機資料並非完全儲存於服務器所在的檔案目錄,而由某個“Primary DNS” 來提供。    我們的實驗系統將是一個“Primary”的DNS服務器,它一方面提供本地局域網用戶的查詢,另一方面則將其他的請求做緩存處理。    第二節 DNS的設置    一、應用條件    在Linux上已經帶有了DNS軟件,我采用的是Internet使用最為廣泛的BIND(Berkeley Internet Name Domain Name Server)版本8。    我們的應用條件如下:     1、一個C類網段地址 (172.31.0);     2、域名為 ec.edu,(主域名服務器地址 172.31.0.10,主機名為Linuxserver.ec.edu);     3、局域網通過網關與Internet連接 。    DNS服務器的主體是域名服務器進程named,named 啟動後向DNS客戶機提供域名解析服務,把域名轉換成IP地址。    named 啟動時需要讀取幾個數據文件,在bind 4下缺省情況下是先/etc/named.boot,所以/etc/named.boot是named的基本配置文件。在bind 8下,缺省情況下先是/etc/named.conf。(請注意red hat 5.1中自帶的是bind 4,而red hat 5.2自帶的是bind 8,我就是在這上面花費了大量的時間)。    雖然啟動named可直接執行named,在Linux上我們可以使用一個控制named的工具ndc。ndc可以用於啟動、中止、重啟動、刷新DNS數據、輸出DNS數據等多種調試功能,我就是用這個工具來幫助DNS服務器的調試。     二、建立named配置文件 /etc/named.boot、etc/named.conf    1、/etc/named.boot是基本的配置文件,但不包含任何DNS數據,針對我們前面的設定,先建立以下/etc/named.boot,其內容如下:    ; boot file for name server    Directory /var/named     domain ec.edu named.hosts     primary 0.0.127.in-addr.arpa named.local    primary 0.31.0.172.in-addr.arpa named.rev    cache . named.ca     其中以“;”開頭的行是注釋行,其他各行含義如下:     (1)diretory /var/named :指定named從 /var/named 目錄下讀取DNS數據文件,這個目錄用戶可自行指定並創建,指定後所有的DNS數據文件都存放在此目錄下;    (2)domain ec.edu named.hosts :指定named作為ec.edu域的主域名服務器,named.hosts文件中包含所有 *.ec.edu形式的域名轉換數據;    (3)primary 0.0.127.IN-ADDR.ARPA named.local :指定named作為127.0.0網段地址轉換主服務器,named.local文件中包含了127.0.0.*形式的地址到域名的轉換數據(127.0.0網段地址是局域網接口的內部 loopback地址);    (4)primary 0.31.0.172.in-addr.arpa named.rev :指定named作為172.31.0網段地址轉換主服務器,named.rev文件中包含了所有 172.31.0.*形式的地址到域名的轉換數據;    (5)cache . named.ca :指定named從 named.ca 文件中獲得Internet的頂層“根”服務器地址 。    (3)、(4)兩行中的網段地址是倒寫的,另外,各個文件名也是可以自行決定的。     2、 /etc/named.conf是基本的配置文件,不包含任何DNS數據,針對我們前面的設定,建立以下 /etc/named.conf,其內容如下:     // generated by named-bootconf.pl    options {    directory “/var/named”;    // query-source address * port 53;    };    // a caching only nameserver config    zone “.” {    type hint;    file “named.ca”;    };    zone “0.0.127.in-addr.arpa” {    type master;    file “named.local”;    };    //-------------------------------    zone “0.31.172.in-addr.arpa” {    type master;    file “named.rev”;    };    zone “ec.edu” {    type master;    file “named.hosts”;    };    //這些為添加的內容    //-------------------------------    這個文件也可以使用named-bootconf.pl腳本從named.boot轉化得到。    三、建立各個DNS數據文件    現在,要按 /etc/named.boot中的定義,建立各個DNS數據文件。     1、建立正向域名轉換數據文件named.hosts    根據/etc/named.boot的定義,我們在/var/named目錄下建立named.hosts,其中應該包括所有在ec.edu域內的主機節點。但在機器數量較多時,為了調試方便,建議一開始只把幾台節點的數據放入文件,待named正常工作後再把其他節點的數據補充進去。下面是named.hosts的例子:    @ IN SOA LinuxServer.ec.edu. root.LinuxServer.ec.edu. (    1999051702 ; serial    36000 ; refresh    8640 ; retry    360000 ; eXPire     86400 ) ; minim    IN NS LinuxServer.ec.edu.    MX 10 LinuxServer.ec.edu.    localhost IN A 127.0.0.1    LinuxServer IN A 172.31.0.10    o2 IN A 172.31.0.1    ntsever IN A 172.31.0.110    w100 IN A 172.31.0.100    W101 IN A 172.31.0.101    W102 IN A 172.31.0.102    W103 IN A 172.31.0.103    W104 IN A 172.31.0.104    W105 IN A 172.31.0.105    W106 IN A 172.31.0.106    W107 IN A 172.31.0.107    W108 IN A 172.31.0.108    W109 IN A 172.31.0.109    W111 IN A 172.31.0.111    W112 IN A 172.31.0.112    W113 IN A 172.31.0.113    W114 IN A 172.31.0.114    W115 IN A 172.31.0.115    W116 IN A 172.31.0.116    W117 IN A 172.31.0.117    W118 IN A 172.31.0.118    W119 IN A 172.31.0.119    W120 IN A 172.31.0.120    gateway IN A 172.31.0.200    mail MX 10 Linuxserver.ec.edu.     www CNAME Linuxserver.ec.edu.    FTP CNAME Linuxserver.ec.edu.    …    其中第一行是SOA記錄,定義了域名數據的基本信息,依次是DNS服務器名、DNS 管理員郵件地址(這裡的"@"用"."代替),括號內的第一個數字是文件版本號(一般為當天的時間和修改次數組成),每次本文件內容修




Copyright © Linux教程網 All Rights Reserved