歡迎您光臨本站 註冊首頁

Linux之域名服務

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

  域名服務是互連網上一個十分重要的服務,也是internet能夠迅速普及的一個重要原因。域名解析服務解決了用戶記憶IP地址的麻煩,因為記住有意義的主機名比記住IP地址要容易得多,例如主機名www.ibm.com與IP地址 129.42.17.99,我相信www.ibm.com更加容易被記住。

  域名服務的功能是一種將主機名轉換成IP地址的一種機制,因為計算機之間的通訊是不能直接識別主機名,只能識別IP地址。有多種把主機名轉換成IP地址的方法,但是在Internet上,是用域名伺服器(domain name server)來處理成千上萬個主機和IP地址的轉換。

  申請域名空間

  中國的域名管理機構是中國國家互連網中心(www.cnnic.net.cn),從2002年12月16日起,國家互連網中心不再直接面對最終用戶提供CN域名註冊相關服務,域名註冊服務將轉由CNNIC認證的域名註冊服務機構提供。在註冊域名時,最好選擇本地的域名註冊服務機構。

  註冊域名成功后,需要註冊商為自己的域名空間解析一個或多個主機,大部分的域名註冊服務商會分配給用戶帳號,允許用戶在自己的域名空間做解析操作。為了自己建立域名伺服器,最好申請一段全球唯一單播IP地址。

  安裝域名伺服器BIND

  大部分linux發行版都附帶Bind安裝包,先運行命令 # rpm ?qa | grep bind ,看是否安裝域名服務軟體bind.如果沒有安裝的話,可以用linux的安裝光碟,找到rpm安裝包後手動安裝。正確安裝成功后,會生成一些相應的配置文件、守護進程及啟動腳本;如:在目錄/etc下有named.conf, rndc.key, rndc.conf, /etc/rc.d目錄下的啟動腳本named,以及 /var 下的區域文件named.ca、named.local文件。也可以下載bind的源碼包來安裝。

  配置域名伺服器

  配置域名伺服器似乎比配置其他的服務要麻煩一些,因為除了修改配置文件外,還需要自己動手編寫在配置文件里定義的區域文件,而其他一些服務程序僅僅是更改一下配置文件。在配置文件中定義的區域越多,需要手動創建的區域文件也越多。

  在未做配置之前,讓我們先熟悉一下配置文件named.conf的默認狀態值。
CODE:
options {
directory 「/var/named」; //定義區域文件所在的目錄
};

zone 「.」 IN { //頂級域名伺服器區域文件名稱
type hint;
file 「named.ca」;
};

zone 「localhost」 IN { //本機地址正向解析
type master; //DNS伺服器的類型分主與輔助兩種
file 「localhost.zone」;
allow-update {none};
};

zone 「0.0.127.in-addr.arpa IN { //本機地址反向解析
type master;
allow-update{none};
file 「named.local」;
};

  在實際的配置過程中,只需在named.conf文件里,照「zone{};」代碼塊的格式添加相關的行,是不是很容易呢?當然,根據具體的需要,還可以在named.conf文件中加入其他代碼快,比如轉發器 「forwarder {};」.現在,假設申請了一個域名空間sery.com,一段可用的全球唯一單播IP地址,並且在域名註冊服務商的伺服器上解析出一台主機ns.sery.com,其IP地址為202.108.99.222(假設的,勿對號入座),接下來就可以著手來配置了。

  先把安裝了域名解析服務的機器IP設置成202.108.99.222,然後修改配置文件/etc/named.conf,內容如下:
CODE:
//默認的代碼塊如上,此處省略以減少篇幅
zone 「sery.com」 IN { //正向解析
type master;
file 「named.sery.com」;
};

zone 「99.108.202-addr.arpa」 IN { //反向解析
type master;
file 「ip.sery.com」;
};
include 「/etc/rndc.key」;

  保存文件然後退出。然後參照默認的區域文件/var/named/localhost.zone的樣式手動創建在/etc/named.conf中定義的區域文件named.sery.com及ip.sery.com文件。localhost.zone文件的內容如下:
CODE:
$TTL 86400 //解析的地址在資料庫中緩存時間
$ORIGIN localhost
@ ld IN SOA @ root (
20060101 //序列號
28800 //刷新時間
7200 //重試時間
3600000 //過期時間
3h //保存時間
)
ld IN NS @
ld IN A 127.0.0.1
用vi編輯器把文件/var/named/named.sery.com改成下列式樣:

$TTL 86400
@ IN SOA sery.com. root.sery.com. (
20060101
28800
144000
3600000
86400
)
;Name servers
IN NS ns.sery.com. //主DNS
IN NS ns1.sery.com. //輔DNS
;mail server
IN MX mail.sery.com.

ns IN A 202.108.99.222
ns1 IN A 202.108.99.200
www IN A 202.108.99.201
mail IN A 202.108.99.202
ftp IN A 202.108.99.203
再創建反向解析文件 # vi /var/named/ip.sery.com:
$TTL 86400
@ IN SOA 99.108.22-addr.arpa. root.sery.com. (
20060101
28800
144000
3600000
86400
)
IN NS ns.sery.com.
IN NS ns1.sery.com.
IN MX mail.sery.com.
200 IN PTR ns1.sery.com.
201 IN PTR www.sery.com.
202 IN PTR mail.sery.com.
203 IN PTR ftp.sery.com.
222 IN PTR ns.sery.com

  到這個步驟,一個具備基本功能的域名解析伺服器就創建成功了。一個不可忽視的問題是在域名空間和主機名的後面都有一個代表頂級域的點「.」,很多配置任務不能成功的原因就是把這個「.」給丟掉了。出於安全考慮,最好給配置文件和區域文件加□□□□問許可權,只允許超級用戶有訪問許可權。即 # chmod 700 /etc/named.conf , # chmod ?R 777 /var/named/.也可以把區域文件用 # tar cvf named.tar /etc/named 打包后把它備份到安全的地方,這個方案對於充當多域解析或要解析大量主機的伺服器很有好處,因為在發生故障或遷移伺服器時恢復DNS服務將大大節省時間。

  在比較重要的網路環境中,可能需要服務不間斷的運行,一個單獨的DNS無法保障網路服務不間斷的提供,這需要配備一個或多個輔助域名伺服器.輔助域名伺服器需要單獨的伺服器來擔當.與主域名伺服器的配置文件相比,只需少許的變化.接前面的例子,我們把另外一台linux 伺服器的IP地址設置成202.108.99.200,修改配置文件/etc/named.conf:
CODE:
options {
directory 「/var/named」;
};

zone 「.」 IN {
type hint;
file 「named.ca」;
};

zone 「localhost」 IN {
type master;
file 「localhost.zone」;
allow-update {none};
};

zone 「0.0.127.in-addr.arpa IN {
type master;
allow-update{none};
file 「named.local」;
};
zone 「sery.com」 IN {
type slave;
file 「named.sery.com」;
master { 202.108.99.222;};
};

zone 「99.108.202-addr.arpa」 IN {
type slave;
file 「ip.sery.com」;
master {202.108.99.222;};
};
include 「/etc/rndc.key」;

  修改完配置文件后,把主伺服器上創建的區域文件拷貝到輔助伺服器的/var/name目錄下.

  DNS服務的啟動和關閉

  由於DNS服務需要持續運行,在大部分情況下,都是把它作為系統服務自動運行的.要確保相應的運行級別目錄有啟動運行腳本.運行命令 # service named start 啟動DNS服務,命令 # service named stop 停止DNS 服務.

  DNS服務的驗證

  有很多種方法檢驗DNS伺服器配置的正確性,最簡單的方法是nslookup,我通常使用從外地的機器訪問用DNS服務解析的主機.比如我讓上海的兄弟ping 我解析的主機.

  額外的話題

  1、 關於多域的DNS解析配置.一個域名伺服器可以提供多域解析服務,需要的操作是在配置文件定義區域,然後單獨創建定義的每個區域文件。

  2、 主機域名與IP地址並非一一對應的關係

  3、 DNS對於負載均衡的作用。通過別名的定義可以實現簡單的網路訪問的負載均衡。

[火星人 ] Linux之域名服務已經有273次圍觀

http://coctec.com/docs/linux/show-post-204036.html