GB | BIG5
|
| 首頁 > 應用技術 > DNS > 正文 |
 |
| 建立DNS域名服務器 |
| 王國泰 (2001-04-16 12:38:45) |
在 “ TCP/IP” 的 網 路 世 界 裡 , 每 部 電 腦 的 身 分 都 是 由 4 個
數 字 所 組 成 的 “ IP Address” 來 辨 識 ( 例 如 168.95.192.1 ) , 這 些
數 字 號 碼 就 像 是 我 們 的 身 分 証 號 碼 一 樣 , 某 些 部 份 數 字 分
別 代 表 不 同 的 意 義 。 當 我 們 在 使 用 網 際 網 路 資 源 時 , 如 果
直 接 使 用 “ IP Address” 來 進 行 連 線 , 那 是 最 直 接 不 過 了 ! 但
是 , 全 部 數 字 化 的 位 址 在 使 用 上 真 的 有 些 不 夠 友 善 , 光 是
記 一 堆 數 字 就 夠 頭 疼 的 了 !
網 路 位 址 vs. 主 機 名 稱
還 好 , 提 供 “ TCP/IP” 網 路 服 務 的 作 業 系 統 都 提 供 系 統
管 理 者 可 以 建 立 一 個 名 叫 “ HOSTS” 的 檔 案 ( 例 如 Linux/UNIX中
的 /etc/hosts) , 在 這 個 系 統 檔 案 檔 案 裡 , 系 統 管 理 者 可 以 將
已 知 的 網 路 機 器 分 別 賦 予 一 個 「 主 機 名 稱 」 並 且 相 對 映 該
機 器 的 “ IP Address” 。 如 此 一 來 , 在 進 行 網 路 連 線 時 , 使 用
者 就 不 必 一 定 要 直 接 指 定 “ IP Address” 來 連 線 , 因 為 系 統 可
以 提 供 應 用 程 式 透 過 “ HOSTS” 中 所 提 供 的 「 主 機 名 稱 與 位 址
對 照 資 料 」 取 得 該 「 主 機 名 稱 」 的 「 網 路 位 址 」 。
這 樣 子 , 使 用 網 路 程 式 時 是 方 便 多 了 , 但 是 , 國 際 網
路 的 機 器 成 千 上 萬 , 如 果 只 是 利 用 “ HOSTS” 的 方 式 來 處 理
主 機 名 稱 」 與 「 網 路 位 址 」 的 對 映 工 作 , 那 實 在 是 件 很 沒
效 率 又 幾 乎 不 可 能 的 事 。 所 以 , 如 果 網 路 使 用 的 領 域 只 是
單 純 的 內 部 網 路 , 因 為 機 器 數 目 不 多 的 情 形 , 那 麼 使 用
HOSTS” 就 可 以 應 付 網 路 連 線 上 的 需 求 了 。
為 了 因 應 大 型 網 路 上 「 主 機 名 稱 」 與 「 網 路 位 址 」 對
映 的 需 求 , 就 有 所 謂 建 立 「 名 稱 伺 服 器 」 來 負 責 以 「 主 機
名 稱 」 查 詢 「 網 路 位 址 」 的 工 作 , 依 據 建 立 的 架 構 方 式 大
致 有 兩 種 , “ Domain Name System” ( 簡 稱 : DNS) 、 “ NFS Network
Information Service” ( 簡 稱 : NIS) 。 我 們 都 可 以 在 Linux系 統 中
架 設 這 兩 種 服 務 程 式 。
“ NIS” 較 早 是 由 Sun所 提 出 的 解 決 方 案 , 運 用 “ RPC” 的
功 能 來 提 供 解 決 「 主 機 名 稱 與 位 址 」 的 查 詢 , “ NIS” 的 伺
服 程 式 大 都 是 以 “ yp” 起 頭 的 程 式 檔 案 ( ypbind、
ypinit....) 。 筆 者 並 不 準 備 在 這 裡 說 明 “ NIS” 伺 服 器 的 建 立
方 式 。 而 是 將 焦 點 擺 在 「 建 立 DNS名 稱 伺 服 器 」 的 話 題 上 。
DNS服 務 型 態 的 種 類
時 下 在 國 際 網 路 上 所 存 在 的 「 名 稱 伺 服 器 」 一 般 都 是
屬 於 DNS伺 服 器 , 因 此 筆 者 才 會 將 焦 點 放 在 “ DNS” 的 建 立
上 。 由 於 “ DNS” 已 經 有 個 相 當 標 準 的 規 定 , 因 此 雖 然 不 同
平 台 上 作 業 系 統 可 能 有 相 當 的 差 異 , 但 是 建 立 “ DNS Server”
的 方 式 可 能 都 非 常 類 似 。 而 對 於 使 用 “ DNS” 的 方 式 也 是 大
同 小 異 。 關 於 使 用 或 架 設 “ DNS” 的 部 份 , 可 以 大 致 歸 為 下
面 幾 類 :
● 使 用 遠 端 名 稱 伺 服 器 :
如 果 自 己 主 機 上 並 沒 有 架 設 “ DNS” , 可 以 設 定 一 台 已
知 的 「 名 稱 伺 服 器 」 作 為 本 主 機 網 路 連 線 時 的 名 稱 資 訊 的
提 供 者 。 在 Linux 系 統 中 , 我 們 可 以 藉 由 “ /etc/resolv.conf” 這
個 系 統 參 數 檔 案 來 指 定 本 主 機 的 「 遠 端 名 稱 伺 服 器 」 。 例
如 :
simon:~# cat /etc/resolv.conf
#
#電 信 局 HINET的 名 稱 伺 服 器 為 168.95.192.1
#下 面 就 設 定 該 主 機 為 本 主 機 的 「 名 稱 伺 服 器 」
#
#
nameserver 168.95.192.1
#
#
一 般 使 用 者 環 境 大 都 是 屬 於 這 一 類 的 使 用 型 態 。
● 所 謂 “ Cache-Only ” 的 名 稱 伺 服 器 :
一 個 「 名 稱 伺 服 器 」 也 不 可 能 擁 有 國 際 網 路 上 所 有 的
主 機 資 訊 , 因 此 它 提 供 一 個 轉 送 方 式 , 將 自 己 「 名 稱 伺 服
器 」 無 法 處 理 的 「 查 詢 要 求 」 轉 送 至 上 一 層 的 「 名 稱 伺 服
器 」 查 詢 , 然 後 將 所 得 到 的 查 詢 結 果 , 傳 送 給 提 出 查 詢 要
求 的 主 機 。
而 “ Cache-Only” 的 “ DNS” 就 是 該 伺 服 器 的 主 機 資 訊 裡 除
了 自 己 之 外 就 沒 有 了 , 它 將 所 有 的 查 詢 要 求 都 轉 送 至 其 他
伺 服 器 去 查 詢 。
● “ Primary” 名 稱 伺 服 器 :
一 個 完 整 功 能 的 「 名 稱 伺 服 器 」 , 管 理 一 個 或 數 個
Domain” 的 機 器 資 訊 。 而 這 些 主 機 相 關 的 資 料 都 依 照 格 式 儲
存 於 伺 服 器 的 檔 案 目 錄 中 , 然 後 會 在 伺 服 器 啟 動 時 將 這 些
資 料 讀 入 系 統 。
● “ Secondary” 名 稱 伺 服 器 :
基 本 上 它 也 是 一 個 完 整 功 能 的 「 名 稱 伺 服 器 」 , 只 是
所 不 同 的 是 , 它 的 主 機 資 料 並 非 完 全 儲 存 於 伺 服 器 所 在 的
檔 案 目 錄 , 而 由 某 個 “ Primary DNS” 來 提 供 。
在 本 次 的 主 題 裡 , 我 們 會 就 以 建 立 “ Cache-Only” 以 及
Primary” 的 名 稱 伺 服 器 做 個 范 例 說 明 。
使 用 BIND-4.9.6建 立 DNS Server
在 Linux系 統 裡 , 我 們 使 用 “ BIND” ( Berkeley Internet Name
Domain Name Server) 來 建 立 我 們 的 「 名 稱 伺 服 器 」 。
BIND” 這 個 軟 體 每 個 Linux安 裝 套 件 都 會 有 , 所 以 你 只 要
確 定 在 安 裝 時 把 “ BIND” 軟 體 安 裝 至 Linux系 統 中 , 那 麼 就 已
經 具 備 建 立 “ DNS Server” 的 軟 體 環 境 了 。 不 過 在 架 設 “ DNS”
之 前 , 筆 者 建 議 讀 者 最 好 能 夠 對 於 網 路 主 機 名 稱 的 命 名 原
則 先 有 些 概 念 ( 不 妨 參 考 前 幾 期 HOPE_NET月 刊 上 的 網 路 專 題 、
或 是 坊 間 網 路 相 關 的 書 籍 , 我 就 不 在 此 詳 述 ) 。 接 下 來 我
們 以 一 個 假 設 環 境 來 配 合 說 明 架 設 「 DNS名 稱 伺 服 器 」 的 步
驟 。 假 設 環 境 的 一 些 情 形 如 下 :
領 域 名 稱 ( Domain) : simon.net
伺 服 器 主 機 名 稱 ( Host) : simon
伺 服 器 網 路 位 址 ( IP) : 192.9.100.1
根 名 稱 伺 服 器 ( Root DNS) : hinet.net ( 168.95.192.1)
● 建 立 “ /etc/named.boot” 啟 動 設 定 檔
“ BIND” 伺 服 程 式 在 啟 動 時 首 先 會 讀 取 “ /etc/named.boot”
這 個 控 制 檔 , 因 此 首 先 就 來 進 行 “ named.boot” 的 設 定 工 作 。
(A)“ directory” 是 用 來 指 定 「 主 機 相 關 資 訊 」 資 料 檔 案 的 所
在 目 錄 。
(B)“ named.boot” 一 般 常 用 到 的 資 料 格 式 為 「 格 式 、 領 域 、 來
源 主 機 或 檔 案 、 備 份 檔 案 名 稱 」 , 除 了 設 定 “ Secondary DNS”
時 較 會 用 到 備 份 檔 案 這 個 欄 位 外 , 其 餘 大 都 只 用 到 前 個
欄 位 。 關 於 檔 案 名 稱 部 份 並 沒 有 限 制 , 除 了 “ named.boot” 不
可 變 更 之 外 , 其 他 的 主 機 資 料 檔 案 可 以 自 行 指 定 名 稱 。 (圖
一)
(C)“ cache” 表 示 在 < root.cache> 這 個 檔 案 設 定 著 本 伺 服 器 的
上 層 網 路 名 稱 伺 服 器 。
“ primary” 則 分 別 設 定 每 個 指 定 「 領 域 」 的 主 機 的 資 料
檔 案 。
(D)在 「 領 域 」 這 個 欄 位 中 「 .」 代 表 “ OTHER” , 在 本 例 子
中 , 如 果 查 詢 的 主 機 所 在 領 域 並 未 特 別 定 義 時 , 則 使 用
cache」 的 設 定 轉 至 上 層 名 稱 伺 服 器 查 詢 。 而 對 於 我 們 自 己
管 理 的 「 領 域 」 則 可 以 使 用 “ primary” 、 “ secondary” 來 定 義
各 別 「 領 域 」 主 機 資 料 紀 錄 所 在 。
< simon.net> 是 一 般 主 機 名 稱 的 形 式 , 有 些 時 候 使 用 者
會 以 “ IP Address” 來 查 詢 主 機 資 訊 , 對 此 需 求 , 也 可 以 參 照
< 100.9.192.INADDR.ARPA> 的 格 式 來 定 義 < 192.9.100.x> 的 主 機 資
訊 。
● 建 立 “ /etc/named.hosts” 主 機 資 料
在 本 例 中 “ named.hosts” 被 指 定 為 儲 存 < simon.net> 這 個 網
路 上 主 機 資 料 , 因 此 我 們 就 必 須 將 本 網 路 上 的 主 機 資 料 全
部 建 立 在 這 個 資 料 檔 案 中 。
(A)“ SOA” 這 個 欄 位 在 每 個 「 領 域 」 資 料 檔 中 只 能 有 一 個 。
(B)指 定 < postmaster@simon.simon.net > 是 本 名 稱 伺 服 器 的 聯 絡 人
郵 件 信 箱 。
(C)< simon IN A 192.9.100.1> 表 示 “ simon.simon.net” 這 台 主 機 的
位 址 」 是 < 192.9.100.1> , 接 下 來 的 另 一 行 並 未 指 定 哪 台 主
機 名 稱 則 表 示 該 設 定 仍 是 針 對 < simon> 這 台 主 機 。 由 於 可 設
定 的 資 料 項 目 不 少 , 我 們 在 此 挑 選 常 見 的 項 目 在 此 簡 要 說
明 。
< A> --指 定 網 路 位 址
< CNAME> --設 定 主 機 的 別 名 , 例 如 < simon.simon.net> 的 別 名 是
<gopher.simon.net>
< HINFO> --可 以 使 用 一 段 文 字 描 述 主 機 環 境 。
< MX> --用 來 設 定 E-Mail傳 遞 交 換 的 優 先 路 徑 , 例 如 范 例 中 的
< simon5> 的 設 定 , < simon5.simon.net> 的 信 件 都 先 往
simon5.simon.net > 這 台 主 機 傳 送 , 如 果 無 法 與 該 主 機 連 線 時
那 就 會 往 < simon.simon.net> 傳 送 。
< NS> --用 來 指 定 子 網 路 的 名 稱 伺 服 器 所 在 。
< PTR> --與 < A> 有 點 相 對 的 功 能 , 它 可 以 指 定 某 個 “ IP” 是
指 向 某 個 主 機 名 稱 , 這 樣 就 可 以 以 “ IP” 來 查 詢 主 機 的 其 他
資 訊 。
● 建 立 “ /etc/named.rev”
前 面 “ named.hosts” 是 當 網 路 的 使 用 者 以 “ xxx.simon.net”
的 方 式 查 詢 主 機 資 訊 時 所 參 考 的 資 料 檔 , 而 這 個
“ named.rev” 功 能 則 是 提 供 使 用 者 以 「 192.9.100.x」 查 詢 主 機
資 訊 時 參 考 。
;--------------------------
;/etc/root.cache
;--------------------------
. 99999999 IN NS HINET.NET
. HINET.NET 99999999 A 168.95.192.1
;------------------------- End of File
● 建 立 “ /etc/root.cache” 啟 動 設 定 檔
完 成 前 面 本 地 網 路 的 主 機 資 料 的 建 立 工 作 後 , 再 來 就
是 設 定 本 伺 服 器 的 「 根 伺 服 器 」 ( Root Name Server) 。 下 列 應
該 是 最 簡 單 的 設 定 內 容 了 , 讀 者 不 妨 參 照 此 設 定 。
● 啟 動 “ BIND” 伺 服 程 式
完 成 這 些 主 機 資 訊 的 建 立 工 作 後 , 最 重 要 的 工 作 就 是
啟 動 “ BIND” 的 伺 服 程 式 < Named> , 你 可 以 直 接 以 系 統 使 用
者 的 身 分 執 行 此 程 式 , 在 執 行 後 , 建 議 您 最 好 執 行 < Ps> 指
令 檢 查 一 下 < Named> 是 否 成 功 執 行 。 如 果 執 行 < Ps> 有 見 到
< Named> 那 表 示 主 要 的 控 制 檔 內 容 無 誤 。
然 後 , 你 最 好 將 啟 動 「 名 稱 伺 服 程 式 」 的 工 作 加 入
Linux系 統 啟 動 程 序 中 。 以 “ Slackware Linux” 為 例 , 請 修 改
/etc/rc.d/rc.inet2” 這 個 檔 案 中 關 於 < Named> 的 設 定 , 如 下 的
內 容 。
#/etc/rc.d/rc.inet2
. . . . . # Start the NAMED/BIND name server.
if [ -f ${NET}/named ]; then
echo -n “ named”
${NET}/named
fi
. . . . . .
. . . . . . .
這 樣 子 , 在 下 次 啟 動 系 統 時 就 會 自 動 執 行 “ BIND” 伺 服
程 式 , 而 您 的 Linux也 就 具 有 “ DNS Server” 的 功 能 了 。
測 試 查 詢 「 名 稱 伺 服 器 」 的 運 作
為 了 確 定 「 名 稱 伺 服 器 」 的 運 作 正 常 , 因 此 在 此 提 供
一 些 測 試 的 方 式 供 做 參 考 。
●使 用 < Ping >
直 接 使 用 < Ping主 機 名 稱 > 的 方 式 來 測 試 是 否 可 以 成
功 , 這 是 最 簡 單 的 方 式 , 而 在 測 試 過 程 除 了 與 自 己 網 路 上
主 機 連 線 之 外 , 最 好 也 要 對 外 連 線 , 以 便 測 試 < Cache> 的 設
定 是 否 正 確 。 使 用 < FTP> < Telnet> 等 網 路 程 式 進 行 連 線 也
可 以 達 到 同 樣 的 目 的 。
● 使 用 < Nslookup>
使 用 < Ping> 可 能 只 參 考 到 主 機 的 “ IP” 位 址 而 已 , 而
如 要 查 詢 主 機 資 訊 , 那 就 得 透 過 < Nslookup> 這 個 程 式 來 進
行 。 < Nsl -ookup> 會 與 系 統 指 定 的 「 名 稱 伺 服 器 」 連 線 並 根
據 使 用 者 提 出 的 查 詢 條 件 由 「 名 稱 伺 服 器 」 取 得 查 詢 結
果 。 以 下 是 一 些 使 用 例 子 。
重 新 讀 取 「 主 機 資 料 」
因 為 伺 服 程 式 是 在 啟 動 時 就 將 讀 取 「 主 機 資 料 」 , 因
此 即 使 你 在 執 行 階 段 更 改 了 主 機 資 料 的 內 容 , 仍 然 不 會 生
效 。 必 須 重 新 啟 動 < Named> 才 會 使 你 更 新 過 的 資 料 生 效 。 如
果 遇 上 此 情 形 , 你 可 以 用 下 列 之 一 種 來 處 理 :
< kill -9 named的 PID> 先 殺 伺 服 程 式 , 再 重 新 執 行 乙 次 。
< kill -HUP named的 PID> 讓 伺 服 程 式 進 行 重 置 的 行 為 。
執 行 〈 named.restart〉 讓 重 新 伺 服 程 式 執 行 。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
===閩=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |