Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> Linux 下的遠程配置DNS系統的實現

Linux 下的遠程配置DNS系統的實現

日期:2017/2/8 10:37:04      編輯:關於服務器


                                  


  由於Linux 是一個類Unix 的操作系統,操作系統的管理又是一個煩瑣的過程。英特網的發展給我們帶來了一個簡易的計算作業平台,其應用已經遍布科研教學、企業電子商務及網絡生活等各個角落,Web 技術使英特網的信息傳輸更為快捷迅速,瘦客戶機的計算模型在英特網中得到了廣泛的應用。如果我們能夠把Linux 的系統管理移植到Web 計算平台上,將使Linux 系統管理員的負擔大大減輕,方便Linux 的系統管理。同時由於Web 的分布式計算特點,系統的管理不受地域的限制,能夠方便的實現Linux 系統的遠程管理。

  鑒於以上分析,我在這裡將實現一個簡易的基於Linux Web 平台的Linux DNS域名遠程管理系統。由於Sun 的Sparc芯片的服務器性能比PC機優良,而且總線是64位的,因此我們選用Sparc機作服務器,選用剛推出的64位中文Linux Penguin64操作系統,作為系統的硬件環境.

  用CGI遠程調用DNS原理分析:

  1) 這一套系統是Web頁面形式的,這樣方便用戶可以在任何可以連接到服務器的主機上進行配置.我們可以用php或perl進行編寫cgi 程序,用php編寫起來比較簡單,利於上手,但考慮到要用cgi調用DNS的命令,利用perl 更利於操作,因此用perl進行編寫.用cgi調用DNS的命令和配置文件,直接對配置文件進行改寫然後保存使DNS服務器起作用.

  2) 下面可以根據圖表和抓圖來具體分析一下cgi程序調用DNS進行配置的過程:

  首先介紹一下本系統的幾個重要的模塊: 

web-lib.pl:這個模塊裡直接定義了本系統其他模快需要的函數.
如: PrintHeader    打印HTTP 流的數據頭
header(title)  輸出一個帶標題的頁面頭部
還有讀入,查找,等其他函數.
records-lib.pl:這個模塊裡存放了有關一些記錄信息的處理函數
如 保存記錄,創造,刪除記錄等函數.
bind8-lib.pl: 這個模塊裡存放了對bind8 中配置文件操作的基本函數
(這裡的bind8就是指DNS)
create_master.cgi: 這個模塊用於建立一個新的主域.
master_form.cgi : 此模塊建立一個新的主域
edit_master_zone.cgi: 此模塊編輯已經存在的主域的選項和結構.
save_master.cgi : 此模塊保存主域選項的改變到named.conf.
edit_text.cgi: 此模塊顯示和修改一個用於手工編輯記錄文件的表結構.
save_text.cgi: 此模塊保存一個手工編輯的域文件.
edit_record.cgi: 此模塊編輯某種已經存在的記錄類型.
save_record.cgi: 此模塊添加或更新某些類型的記錄
delete_zone.cgi: 此模塊刪除一個已經存在的主域、從域或轉交域,以及它的記錄文件.
dns_boot.cgi: 此模塊建立一個空的named.conf 文件並重定向到index.cgi.
start.cgi: 此模塊啟動bind8
restart.cgi: 此模塊重起正在運行的程序named
index.cgi:  這個文件是用戶登錄的首頁,用戶可以在此頁面選擇創建或編輯DNS的域.該文件再調用上面的各模
塊進行操作.

  系統運行過程:

  在index.cgi首頁上可以進行創建主域,編輯主域或添加修改SOA信息.用戶點擊創建一個主域後就進入下一頁面master_form.cgi,用戶在此頁面填寫創建的信息:

  填完信息後點擊保存,此時系統調用create_master.cgi,將用戶所填的信息在/etc/named.conf中添加一行信息如:


            zone "guhang.com"{
    type master;
    file "www.guhang.com";
};
(DNS的named.conf文件配置,在上面已經講到)

  同時,create_master.cgi在/var/named/目錄裡創建www.guhang.com記錄文件.詳細解釋了”guhang.com” 域的的信息.,創建完畢後,系統回到index.cgi頁面等待用戶進行編輯域信息.

  回到主頁面後,用戶可以點中剛創建的主域,如:www.guhang.com,調入edit_master.cgi頁面進行添加主域的信息或修改其內容。

  用戶可在這一頁面點擊各選項圖標進行配置, 可以添加域內的主機地址,名字服務器的地址,郵件服務器的地址等, 

  然後調用edit_recs.cgi將所填入的信息創建出來顯示在該頁面上,並調用save_record.cgi保存到 /var/named/目錄下的”www.guhang.com”文件中,生成如下的主域解釋信息:

@  IN SOA guhang.com. hostmaster.guhang.com. (
   1997022700 ; serial
   28800 ; refresh
   14400 ; retry
   3600000 ; expire
   86400 ; default_ttl
   )
@  IN NS www.guhang.com.
@  IN MX 10 mj.guhang.com.
localhost  IN A 127.0.0.1
mj  IN A 192.192.192.35
song  IN A 159.226.4.200
zou  IN A 159.226.4.211
www  IN A 192.192.192.35
#www  IN CNAME @

  若要保存整個edit_master.cgi頁面的信息則調用save_master.cgi進行保存後返回edit_master.cgi頁面, 若要刪除主域信息則調用delete_zone.cgi將整個主域信息內容全部刪除掉,並返回到index.cgi等待用戶添加新的信息.

  這樣修改如同在linux控制台下進行手工配置一樣,然後保存重起named就可以起作用了.配置完成之後就可以訪問到www.guhang.com這個域了.

  總結:

  通過CGI調用DNS進行配置的確起到操作簡單,配置輕松的好處,而且可以不限制在服務器上,相比較在Linux 控制台下進行手工配置要方便的多,但是這也需要配置人員對DNS的原理有一定的了解,最好是手工配過DNS服務器,因為CGI 還是將你的配置信息寫入,BIND8的配置文檔裡,調用的BIND8的命令而已.我們還可以觸類旁通,利用 CGI進行Apache,Sendmail,Dhcp,Ftp,甚至是Linux的用戶,文件的配置和管理操作.當然,我們可以用shell,c,等進行編寫CGI同樣可以調用Linux的命令操作,但由於Perl是超級shell語言功能強大,所以還是用Perl寫比較方便一些,但由於Perl的語法規則比較多,尤其是正規表達式和模式匹配這一部分較難理解,所以在編寫過程中不免有些漏洞和不解之處,由於時間短,所以對Perl了解不深,難免出錯,這在將來的開發中還要進行修改和加強 .

  名詞解釋:


名詞 描述
HTML Hypertext Markup Language,超文本鏈接標示語言。
C/S Client/Server,客戶機/服務器模式。
SQL Structured Query Language,結構化查詢語言。
Samba 一組程序,可以使你的Linux具備理解SMB協議(Server Message Block,一種在OS/2、WindowsNT、
Windows9x和Windows for workgroups等Windows系列中廣泛使用的協議,該協議主要用來實現文件和打印機共
享)的能力。
DNS Domain Name Server,域名服務器,為計算機網絡提供名字解析服務。
SMTP Simple Message Transfer Protocol,簡單郵件傳輸協議,用於電子郵件的傳輸。
POP Post Office Protocol,郵局協議,由與電子郵件的接受。
AppleTalk Mac蘋果機所用的網絡協議之一。
ISDN Integrated Services Digital Network,綜合業務數字網。
PPP Peer-Peer Protocol,端對端協議。
SLIP Serial Line Interface Protocol,串行線路接口協議。
ATM Asynchronous Transfer Mode,異步傳輸模式。
FTP File Transfer Protocol,文件傳輸協議。
DHCP Dynamic Host Configuration Protocol,動態主機配置協議,允許主機自動從網絡獲取本機的基本配
置信息(IP、DNS、…)。
TCP/IP TCP:Transfer Control Protocol,傳輸控制協議。
IP:Internet Protocol,網際協議。
NFS Network File System,網絡文件系統。
CGI Common Gateway Interface,通用網關接口。
Java 一種新型的面向對象計算機編程語言,廣泛應用於英特網及嵌入式系統設計。
Perl Practical Extraction and Report Language,Unix系統上的一種編程語言。
POSIX Portable Operating System Interface,可移植操作系統界面。
GUI Graphics User Interface,圖形用戶界面。


Copyright © Windows教程網 All Rights Reserved