張 華
?
局域網(wǎng)自動(dòng)域名系統(tǒng)更新機(jī)制研究
張 華
(阜陽職業(yè)技術(shù)學(xué)院 實(shí)訓(xùn)中心,安徽 阜陽 236031)
互聯(lián)網(wǎng)中某一個(gè)節(jié)點(diǎn)的名字叫做域名,計(jì)算機(jī)系統(tǒng)中使用域名互聯(lián)網(wǎng)協(xié)議(IPv4/IPv6)來完成節(jié)點(diǎn)之間的通信。但I(xiàn)P地址這樣的數(shù)串更適合于計(jì)算系統(tǒng)的數(shù)據(jù)處理,而不適合計(jì)算機(jī)用戶的日常使用,用戶想要更加方便地訪問互聯(lián)網(wǎng)還需要選擇使用域名。域名系統(tǒng)(DNS)提供了IP到域名的映射方案,但尚且存在一些配置缺陷。本文設(shè)想了一種自動(dòng)配置DNS和動(dòng)態(tài)更新域名的方案,以期解決域名系統(tǒng)更新較慢的問題。
DNS;IPv6;計(jì)算機(jī)網(wǎng)絡(luò);域名解析
在計(jì)算機(jī)網(wǎng)絡(luò)中,域名代表唯一不同的節(jié)點(diǎn)。因IP地址數(shù)串比較難記,用戶會(huì)更傾向于使用域名而不是IP地址來識(shí)別節(jié)點(diǎn),但在計(jì)算機(jī)的數(shù)據(jù)處理系統(tǒng)也使用域名是不現(xiàn)實(shí)的,因此我們需要建立起IP和域名之間的映射,即域名系統(tǒng)(DNS)。
本文將設(shè)想一個(gè)局域網(wǎng)自動(dòng)域名系統(tǒng)(Local Area Network automatic Domain name System,LANDS)來解決DNS的數(shù)據(jù)更新延遲問題。在這個(gè)系統(tǒng)中,LANDS將主機(jī)文件作為數(shù)據(jù)庫,采取一種新的更新機(jī)制對(duì)其文件進(jìn)行解析和配置,并及時(shí)上傳計(jì)算機(jī)域名和IP地址的映射。與使用集中服務(wù)器的BIND和采取全網(wǎng)傳播的DNS不同, LANDS以權(quán)限分散的方式進(jìn)行工作并對(duì)局域網(wǎng)進(jìn)行限制。LANDS的主要目的是提供一個(gè)易于使用和配置的域名解析器對(duì)局域網(wǎng)中所有的主機(jī)地址進(jìn)行學(xué)習(xí)記憶,并通過專用端口進(jìn)行通信。
2.1 主機(jī)文件
主機(jī)文件[1]是域名與IP地址的映射文件。主機(jī)文件由斯坦福研究院(SRI)維護(hù)并通過文件共享提供給阿帕網(wǎng)用戶。而用戶則需通過這種文件共享機(jī)制首先從系統(tǒng)服務(wù)器上下載主機(jī)文件以進(jìn)行域名解析(見圖1)。
2.2 BIND
BIND(Berkeley Internet name domain service)[2]是加利福尼亞大學(xué)伯克利設(shè)計(jì)的最廣泛使用的域名系統(tǒng),90%以上的域名解析都使用此系統(tǒng)。BIND由3個(gè)主要組件組成:域名解析器、域名授權(quán)服務(wù)器和用于測(cè)試服務(wù)器的工具(圖2)。
圖1 主機(jī)系統(tǒng)工作模式
圖2 BIND組成
圖2中named進(jìn)程是BIND授權(quán)服務(wù)器算法中的關(guān)鍵進(jìn)程,通過識(shí)別和記憶named.conf進(jìn)行初始化啟動(dòng)并配置數(shù)據(jù)文件,域名解析服務(wù)的準(zhǔn)備工作完成之后,根據(jù)BIND 配置做日志記錄。query.log是用于測(cè)試服務(wù)器的工具,通過發(fā)送大量的域名解析模擬請(qǐng)求對(duì)服務(wù)器進(jìn)行壓力測(cè)試。
2.3 互聯(lián)網(wǎng)協(xié)議
2.3.1 IPv4
IPv4[3]是一個(gè)32位的唯一地址,在書寫方式上一般采用小數(shù)點(diǎn)將其分為4個(gè)相等的部分,每個(gè)部分從0到255進(jìn)行取值。得到授權(quán)的終端可以在IPv4環(huán)境下向DNS服務(wù)器發(fā)送消息以完成映射的重置。如果用戶使用撥號(hào)、ADSL或DHCP cable連接網(wǎng)絡(luò)并且想實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用服務(wù)器的架設(shè)(FTP、WEB、MAIL),使用IPv4就可以對(duì)DNS進(jìn)行自動(dòng)注冊(cè)。
2.3.2 IPv6
IPv6[4]是Internet Protocol Version 6的縮寫,是由IETF(互聯(lián)網(wǎng)工程任務(wù)組,Internet Engineering Task Force)設(shè)計(jì)以替代IPv4的新版本IP協(xié)議,解決了IPv4地址枯竭的問題。IPv6的地址長度為128b,是IPv4地址長度的4倍。這128b又分為8個(gè)部分,每個(gè)部分16b,使用的是十六進(jìn)制值。在各部分的最小值為0000,最大值為FFFF。
在IPv6環(huán)境中,節(jié)點(diǎn)改變了網(wǎng)絡(luò)位置后會(huì)獲得新的IPv6地址,因此這種地址的改變要能及時(shí)地影響DNS服務(wù)器的數(shù)據(jù)更新,以實(shí)現(xiàn)用戶的正確訪問。通過節(jié)點(diǎn)對(duì)DNS的更新請(qǐng)求和DNS對(duì)請(qǐng)求的響應(yīng)可以實(shí)現(xiàn)所謂DNS的自動(dòng)更新。通過這種自動(dòng)配置機(jī)制,用戶對(duì)網(wǎng)絡(luò)管理尤其是局域網(wǎng)管理的體驗(yàn)得到了提升。
現(xiàn)有的系統(tǒng)在配置、維護(hù)和使用上尚存在一些問題,列舉如下:
3.1 用戶直接使用不方便
雖然在局域網(wǎng)中IP能勝任FTP、文件共享、檢查連接、配置及其他網(wǎng)絡(luò)相關(guān)的任務(wù),但依然存在用戶使用不方便的問題。IPv4是十進(jìn)制數(shù)字,相對(duì)還算容易記住,而IPv6是十六進(jìn)制數(shù),使用起來更為不便?,F(xiàn)在IPv4和IPv6會(huì)共存一段時(shí)間,在不久的將來,所有的網(wǎng)絡(luò)都會(huì)用IPv6實(shí)現(xiàn),當(dāng)IPv6在全世界互聯(lián)網(wǎng)上實(shí)現(xiàn)時(shí),網(wǎng)絡(luò)維護(hù)人員的工作將變得更加復(fù)雜,故本地域服務(wù)器的出現(xiàn)勢(shì)在必行。
3.2 主機(jī)文件的手工配置和維護(hù)滯后
網(wǎng)絡(luò)中的主機(jī)文件的更新和管理通常是由某一臺(tái)優(yōu)先級(jí)最高的主機(jī)集中負(fù)責(zé),所有其他主機(jī)將下載主機(jī)文件并保存在各自的文件夾中。該模式的主要問題在于,一方面如果主機(jī)文件中備份和更新域名數(shù)據(jù)不及時(shí),可能導(dǎo)致系統(tǒng)中的通信失??;另一方面當(dāng)網(wǎng)絡(luò)使用DHCP(動(dòng)態(tài)主機(jī)配置協(xié)議)為其他主機(jī)提供IP時(shí),可能會(huì)發(fā)生IP會(huì)動(dòng)態(tài)改變而主機(jī)文件沒有自動(dòng)更新。
3.3 BIND的配置和數(shù)據(jù)集中的實(shí)現(xiàn)較為困難
如果說上述兩個(gè)問題可以使用BIND來解決也是可行的,但BIND尚且存在初始配置和維護(hù)的困難。BIND工程就像服務(wù)器/客戶端結(jié)構(gòu),其中BIND充當(dāng)中央服務(wù)器。這種架構(gòu)決定了BIND需要一直高效運(yùn)行。比如,如果BIND為了保存不斷更新的主機(jī)文件而啟用日志模式,就要面對(duì)龐大的域名訪問量以及繁雜的訪客情況的數(shù)據(jù)處理。在這個(gè)統(tǒng)計(jì)的過程中,BIND需對(duì)對(duì)日志文件進(jìn)行反復(fù)的讀寫操作,這勢(shì)必會(huì)受到服務(wù)器硬件配置和系統(tǒng)流暢性的制約。為避免BIND負(fù)載過重、資源占用太多導(dǎo)致域名服務(wù)器流暢性和穩(wěn)定性降低, BIND的日志模式一般是停用的。這當(dāng)然又會(huì)影響到數(shù)據(jù)更新的及時(shí)性,此外,域名數(shù)據(jù)多級(jí)分層,手工修改系統(tǒng)參數(shù)和數(shù)據(jù)既繁瑣又易出錯(cuò),并且出錯(cuò)后很難及時(shí)修復(fù)。因此需要提出一種更加先進(jìn)的工作機(jī)制來優(yōu)化服務(wù)器的性能,解決此類問題。
LANDS是一個(gè)基于自動(dòng)更新的DNS數(shù)據(jù)庫的系統(tǒng),能實(shí)現(xiàn)自動(dòng)配置、域名自學(xué)習(xí)、地址自動(dòng)匹配和權(quán)限分散。該系統(tǒng)使用主機(jī)文件作為數(shù)據(jù)庫并以此為基礎(chǔ)來解決所有的更新問題。LANDS只提供更新的主機(jī)文件,主機(jī)文件包括節(jié)點(diǎn)域名、密碼、地址、地址、節(jié)點(diǎn)狀態(tài)、域名有效期等,而域名和IP的映射關(guān)系由操作系統(tǒng)提供的機(jī)制轉(zhuǎn)換而成,它使用特定端口進(jìn)行通信,端口信息僅向LANDS系統(tǒng)進(jìn)行發(fā)送,系統(tǒng)中發(fā)送的信息類似于DHCP通信信息。此系統(tǒng)工作的關(guān)鍵要素之一就是權(quán)限分散,也就是說任何安裝LANDS軟件的系統(tǒng)都具有相同的優(yōu)先級(jí)。另外,因?yàn)長ANDS的工作模式是基于局域網(wǎng)內(nèi)的信息廣播,故它不能解決局域網(wǎng)外的域名問題。
4.1 LANDS更新消息
LANDS使用3種類型的消息更新主機(jī)文件:
請(qǐng)求:在局域網(wǎng)發(fā)送消息以請(qǐng)求LANDS服務(wù)器中的主機(jī)文件信息,此消息為廣播消息,以期得到最新的主機(jī)文件信息。
回復(fù):系統(tǒng)發(fā)送單播消息到發(fā)送請(qǐng)求消息的系統(tǒng)。此回復(fù)攜帶主機(jī)文件信息。
確認(rèn):在收到回復(fù)消息和更新主機(jī)文件后由客戶端發(fā)送,LANDS接收到確認(rèn)消息后將此客戶端主機(jī)文件屬性標(biāo)記為已更新。
4.2 LANDS對(duì)主機(jī)文件更新的處理
LANDS提供一系列的機(jī)制來更新主機(jī)文件。更新可以是周期性的、手動(dòng)的或者是由各種系統(tǒng)事件觸發(fā)的。以下是幾類觸發(fā)LANDS更新主機(jī)文件的系統(tǒng)事件:
4.2.1 系統(tǒng)啟動(dòng)觸發(fā)事件
在所有的系統(tǒng)啟動(dòng)觸發(fā)事件下LANDS都將更新主機(jī)文件并在局域網(wǎng)內(nèi)發(fā)送廣播信息,在此局域網(wǎng)內(nèi)安裝有LANDS的系統(tǒng)將響應(yīng)此信息并在驗(yàn)證授權(quán)信息后更新主機(jī)文件中的IP和域名。
4.2.2 客戶端配置更改觸發(fā)事件
客戶端負(fù)責(zé)自動(dòng)檢測(cè)本機(jī)IP地址是否改變,系統(tǒng)管理員可以根據(jù)局域網(wǎng)需求設(shè)置客戶端自檢頻率,當(dāng)網(wǎng)絡(luò)配置更改比如IP、域名等更改的情況下,則自動(dòng)向LANDS服務(wù)器端發(fā)送觸發(fā)信號(hào),服務(wù)器端驗(yàn)證授權(quán)信息后,主機(jī)文件將會(huì)更新,LANDS將發(fā)送廣播消息,安裝有LANDS的客戶端將響應(yīng)此信息并更新主機(jī)文件中的IP和域名。這就可以實(shí)現(xiàn)當(dāng)某個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)配置發(fā)生改變時(shí),主機(jī)文件會(huì)得到及時(shí)地更新。
4.2.3 LANDS服務(wù)器定期更新
LANDS服務(wù)器將定期更新主機(jī)文件。此屬性設(shè)置為檢查是否添加任何新系統(tǒng)到網(wǎng)絡(luò)中。定期檢測(cè)并統(tǒng)計(jì)主機(jī)文件,將其與系統(tǒng)已有的主機(jī)文件進(jìn)行比較,若主機(jī)文件已經(jīng)改變,則自動(dòng)在局域網(wǎng)內(nèi)發(fā)送廣播消息信息進(jìn)行更新,安裝有LANDS的客戶端將響應(yīng)此信息并在驗(yàn)證授權(quán)信息后更新主機(jī)文件中的IP和域名。此外在服務(wù)器的定期更新過程中,主機(jī)文件還會(huì)對(duì)節(jié)點(diǎn)域名進(jìn)行有效期的更新,如果某節(jié)點(diǎn)域名超出了有效期,并且長期不使用,系統(tǒng)會(huì)實(shí)現(xiàn)刪除操作且記入主機(jī)文件一并廣播。故對(duì)于LANDS網(wǎng)絡(luò)中的節(jié)點(diǎn)來說,并不存在域名有效期更新滯后的問題。
4.2.4 手工強(qiáng)化更新
如果用戶感覺有更新主機(jī)文件的必要性,亦可以發(fā)起更新觸發(fā)事件。此類更新事件的優(yōu)先權(quán)等同于4.2.1所述系統(tǒng)啟動(dòng)觸發(fā)事件。
在互聯(lián)網(wǎng)中,我們可以使用BIND或者改進(jìn)的BIND,本文中設(shè)想的LANDS提供了局域網(wǎng)中主機(jī)文件更新的解決方案,考慮到其自動(dòng)配置和自動(dòng)學(xué)習(xí)域名的特點(diǎn),LANDS為中小型局域網(wǎng)提供了更好的方案。本文只是提供了一個(gè)抽象的工作機(jī)制,在將來的工作中,需要測(cè)試出更清晰的發(fā)送消息、明確的端口號(hào)和支持系統(tǒng)運(yùn)作的環(huán)境。
[1]王莉軍. 域名解析文件自動(dòng)生成技術(shù)研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2013(6):19-22+26.
[2]王振宇,施東煒.基于BIND域名解析服務(wù)管理的設(shè)計(jì)[J]. 計(jì)算機(jī)工程,2007(15):134-136.
[3]蘭少華,楊余望.TCP/IP 網(wǎng)絡(luò)與協(xié)議[M].北京:清華大學(xué)出版社,2006.
[4]吳建平,吳茜,徐恪.下一代互聯(lián)網(wǎng)體系結(jié)構(gòu)基礎(chǔ)研究及探索[J].計(jì)算機(jī)學(xué)報(bào),2008(9):1536-1548.
TP393.04
A
1672-4437(2017)03-0053-04
2017-03-28
張華(1980-),男,安徽阜陽人,阜陽職業(yè)技術(shù)學(xué)院實(shí)驗(yàn)師,主要研究方向:分布式計(jì)算、網(wǎng)絡(luò)管理與安全。