文/郭峰 吳回 李樹(shù)軍
IPv6動(dòng)態(tài)域名系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
文/郭峰 吳回 李樹(shù)軍
通過(guò)在IPv6環(huán)境下動(dòng)態(tài)域名系統(tǒng)的設(shè)計(jì)方案,可以對(duì)Web服務(wù)端子系統(tǒng)、DNS更新子系統(tǒng)和DNS服務(wù)器子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)提供幫助,有利于對(duì)IPv6應(yīng)用在校園網(wǎng)絡(luò)上的推廣與部署。
下一代互聯(lián)網(wǎng)技術(shù)日趨成熟,在發(fā)達(dá)國(guó)家已經(jīng)成功進(jìn)入商用領(lǐng)域。我國(guó)的下一代互聯(lián)網(wǎng)建設(shè)也在如火如荼地進(jìn)行中,CNGI骨干網(wǎng)絡(luò)已經(jīng)建設(shè)成功,IPv4向IPv6網(wǎng)絡(luò)過(guò)渡已是大勢(shì)所趨。在享受IPv6網(wǎng)絡(luò)帶來(lái)的高質(zhì)量服務(wù)的同時(shí),我們也碰到一些新問(wèn)題,比如IPv6的地址比IPv4的地址更難記憶。
對(duì)于采用無(wú)狀態(tài)自動(dòng)配置IPv6地址的環(huán)境,RFC3041引入了一種隨機(jī)地址配置機(jī)制,網(wǎng)絡(luò)內(nèi)的主機(jī)根據(jù)路由器通告的路由前綴和一組隨機(jī)的數(shù)字生成自己的IPv6地址,該地址具有一定的生存周期,隨著生存周期的結(jié)束,該地址會(huì)自動(dòng)更換,這對(duì)普通用戶來(lái)說(shuō)也存在諸多不便。比如用戶需要遠(yuǎn)程訪問(wèn)自己的主機(jī),或者臨時(shí)提供服務(wù)給別人訪問(wèn)的時(shí)候,往往不知道或者不記得自己的IPv6地址,因此設(shè)計(jì)一個(gè)功能完善的動(dòng)態(tài)域名系統(tǒng)就顯得尤為重要。利用動(dòng)態(tài)域名系統(tǒng)提供的服務(wù),用戶可以把動(dòng)態(tài)的IPv6地址綁定在一個(gè)固定的域名上,通過(guò)簡(jiǎn)短好記的域名來(lái)進(jìn)行網(wǎng)絡(luò)訪問(wèn)。
總體設(shè)計(jì)思想
本系統(tǒng)是一套基于三層或多層的C/S和B/S架構(gòu)的域名綜合服務(wù)系統(tǒng),它包含用戶端、Web前臺(tái)、Web管理后臺(tái)和DNS服務(wù)器四個(gè)字系統(tǒng)。系統(tǒng)總體設(shè)計(jì)思想如下:
(1)Web服務(wù)端通過(guò)網(wǎng)頁(yè)方式為系統(tǒng)管理員提供注冊(cè)用戶管理、域名管理和DNS服務(wù)器參數(shù)配置功能;
(2)用戶通過(guò)瀏覽器訪問(wèn)Web服務(wù)器端,注冊(cè)和管理屬于自己的賬號(hào),注冊(cè)和管理屬于自己的域名;相應(yīng)信息通過(guò)Web服務(wù)器保存到數(shù)據(jù)庫(kù)服務(wù)器;
(3)DNS更新客戶端軟件實(shí)時(shí)監(jiān)測(cè)用戶的IP地址信息,把IP信息提交到Web服務(wù)器并最終保存到數(shù)據(jù)庫(kù)服務(wù)器中;
(4)DNS服務(wù)器接受來(lái)自網(wǎng)絡(luò)的DNS查詢,DNS服務(wù)器通過(guò)查詢數(shù)據(jù)庫(kù)服務(wù)器,取得和域名對(duì)應(yīng)的IP地址,把結(jié)果反饋給查詢者。
開(kāi)發(fā)工具與支撐環(huán)境
本系統(tǒng)Web服務(wù)端采用ASP開(kāi)發(fā),運(yùn)行在Windows 2008 Server IIS7.0環(huán)境下;DNS更新客戶端程序采用.NET開(kāi)發(fā);數(shù)據(jù)庫(kù)服務(wù)器采用MS SQL Server 2005,DNS服務(wù)器參照BIND,采用C++進(jìn)行開(kāi)發(fā)。
圖1 IPv6動(dòng)態(tài)域名系統(tǒng)架構(gòu)
圖2 Web服務(wù)子系統(tǒng)功能設(shè)計(jì)
Web服務(wù)子系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的技術(shù)要點(diǎn)
作為動(dòng)態(tài)域名系統(tǒng)的重要組成部分之一,Web服務(wù)子系統(tǒng)直接面向用戶,在功能完善的基礎(chǔ)上,要求界面美觀大方,操作簡(jiǎn)潔、人性化。
圖3 DNS更新客戶端功能設(shè)計(jì)
Web服務(wù)子系統(tǒng)可以看成是一個(gè)具有特殊功能的網(wǎng)站系統(tǒng),相關(guān)技術(shù)要點(diǎn)如下:
(1)采用JQuery框架與微軟的ASP(Active Server Page)進(jìn)行具體實(shí)現(xiàn);
(2)在編碼時(shí),在代碼安全性方面要特別注意,防止Web注入攻擊和跨站腳本攻擊。此外,要特別注意域名更新頁(yè)面和用戶D N S更新客戶端程序信息交換時(shí)的安全,相關(guān)信息要用提前預(yù)置的密鑰進(jìn)行加密傳輸;
(3)要考慮到程序的可擴(kuò)展性和可移植性,程序部署要簡(jiǎn)單;
(4) 注意程序的執(zhí)行邏輯與效率,代碼的優(yōu)化,降低Web程序執(zhí)行時(shí)對(duì)服務(wù)器資源的消耗,能承受大量用戶的并發(fā)訪問(wèn)。
DNS更新客戶端程序設(shè)計(jì)與實(shí)現(xiàn)的技術(shù)要點(diǎn)
DNS更新程序運(yùn)行在用戶端,要求它能隨用戶電腦的啟動(dòng)而自動(dòng)運(yùn)行,能監(jiān)測(cè)到用戶IPv6地址的變化,及時(shí)把最新的IPv6地址提交到服務(wù)器。
在實(shí)際實(shí)現(xiàn)時(shí),域名更新功能單獨(dú)設(shè)計(jì)成一個(gè)服務(wù)器程序,在用戶電腦注冊(cè)為系統(tǒng)服務(wù),達(dá)到開(kāi)機(jī)即可自動(dòng)運(yùn)行的效果(即使用戶還沒(méi)有登錄系統(tǒng))。它的功能也比較單一,讀取保存在注冊(cè)表里面的參數(shù),提取用戶IPv6地址信息,利用密鑰對(duì)相關(guān)信息加密后,提交到Web服務(wù)器。其它功能模塊通過(guò)一個(gè)托盤(pán)程序?qū)崿F(xiàn)(用戶登錄系統(tǒng)后,程序自動(dòng)運(yùn)行并最小化在任務(wù)欄右側(cè),用戶單擊圖標(biāo),則彈出程序界面)。相關(guān)技術(shù)要點(diǎn)如下:
(1)程序采用.NET框架實(shí)現(xiàn)。利用.N E T框架強(qiáng)大的應(yīng)用快速開(kāi)發(fā)能力,可以很方便的進(jìn)行服務(wù)器程序和托盤(pán)程序的開(kāi)發(fā);
(2) 當(dāng)前用戶接入IPv6網(wǎng)絡(luò)存在多種形式,用戶是通過(guò)隧道方式還是直接接入IPv6網(wǎng)絡(luò)的,要分情況對(duì)待。此外,在提取用戶IPv6地址的時(shí)候要特別注意,提交給服務(wù)器的應(yīng)該是全局地址,而不是鏈路本地地址或者站點(diǎn)本地地址;
(3)在無(wú)狀態(tài)自動(dòng)配置IPv6地址的網(wǎng)絡(luò),如果用戶操作系統(tǒng)是Windows XP,系統(tǒng)會(huì)存在多個(gè)IPv6地址的情況(多個(gè)地址都為有效地址),建議不要一得到新地址就提交給服務(wù)器;
(4) 為了減輕服務(wù)器的壓力,應(yīng)該把客戶的當(dāng)前地址保存下來(lái),只有客戶地址有變化的情況下才提交給服務(wù)器。
DNS服務(wù)器設(shè)計(jì)
作為服務(wù)于IPV6環(huán)境下里的動(dòng)態(tài)域名系統(tǒng),和別的DNS服務(wù)器軟件相比較,功能相對(duì)簡(jiǎn)單。有開(kāi)源的程序參考,實(shí)現(xiàn)較為容易,相關(guān)技術(shù)要點(diǎn)如下:
(1)能支持標(biāo)準(zhǔn)AAAA類型的域名查詢即可;
(2)服務(wù)器收到來(lái)自網(wǎng)絡(luò)的查詢請(qǐng)求后,從數(shù)據(jù)庫(kù)進(jìn)行查詢,然后把結(jié)果反饋回去。為了提高服務(wù)器的查詢與響應(yīng)效率,在數(shù)據(jù)庫(kù)上通過(guò)擴(kuò)展存儲(chǔ)過(guò)程進(jìn)行查詢;
(3) 動(dòng)態(tài)域名系統(tǒng)想要發(fā)揮作用,每個(gè)域名的TTL(生存期)值必須設(shè)置得很小,一般以秒為單位,這種機(jī)制就決定了不能通過(guò)域名緩存方式來(lái)提高效率。為了能承受大量用戶的并發(fā)查詢,除了對(duì)數(shù)據(jù)庫(kù)建立合適的索引和優(yōu)化外,程序應(yīng)該采用多線程方式。
此系統(tǒng)由江蘇省大學(xué)生創(chuàng)新項(xiàng)目——“IPv6環(huán)境下動(dòng)態(tài)域名系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)”小組設(shè)計(jì)完成。通過(guò)此項(xiàng)工作,學(xué)生對(duì)IPv6相關(guān)協(xié)議有了較為深入的了解,提高了學(xué)生對(duì)IPv6新知識(shí)的學(xué)習(xí)與應(yīng)用能力。
(作者單位為鹽城師范學(xué)院信息科學(xué)與技術(shù)學(xué)院)
未來(lái)數(shù)據(jù)中心需高性能基因
云計(jì)算已經(jīng)成為一種勢(shì)不可擋的IT大趨勢(shì),變革整體IT服務(wù)和計(jì)算模式已經(jīng)迫在眉睫。由于云計(jì)算將一系列IT概念,如網(wǎng)絡(luò)計(jì)算、SaaS、效用計(jì)算和網(wǎng)格計(jì)算等納入到一個(gè)單一的抽象服務(wù)中來(lái),因此其依賴于一個(gè)復(fù)雜的網(wǎng)絡(luò)基礎(chǔ)架構(gòu),才能對(duì)各種服務(wù)進(jìn)行大量有效處理。為了實(shí)現(xiàn)云計(jì)算服務(wù),服務(wù)商不僅需要一個(gè)大型數(shù)據(jù)中心,更需要一種強(qiáng)大的網(wǎng)絡(luò)支撐平臺(tái)。
瞻博網(wǎng)絡(luò)QFabric是該公司面向未來(lái)10年數(shù)據(jù)中心發(fā)展的網(wǎng)絡(luò)架構(gòu)。基于此,該公司提出 “3-2-1”的數(shù)據(jù)中心簡(jiǎn)化策略,最終使用戶實(shí)現(xiàn)一層網(wǎng)絡(luò)架構(gòu)。瞻博網(wǎng)絡(luò)亞太區(qū)副總裁Matt Kolo指出,QFabric可以將整個(gè)數(shù)據(jù)中心的延遲控制在5微秒以內(nèi)。這一測(cè)試假定采用了最長(zhǎng)互聯(lián)線纜,此外該測(cè)試還假設(shè)因?yàn)楣馑俚脑蝾~外增加了1微秒的延遲。但如果在使用較短電纜的情況下,測(cè)量的延遲將只有3.7微妙。QFabric比以往任何基于機(jī)架的以太網(wǎng)交換機(jī)的速度都要快,并且能夠持續(xù)保持高速傳輸。同時(shí)瞻博網(wǎng)絡(luò)已經(jīng)證明了,QFabric能夠以線性方式,從數(shù)十個(gè)端口擴(kuò)展至6000多個(gè)萬(wàn)兆以太網(wǎng)端口,并且在未來(lái),還將提供能夠擴(kuò)展至數(shù)萬(wàn)個(gè)端口的巨型fabric。
QFabric由三個(gè)Fabric的組件組成。QF節(jié)點(diǎn)是該Fabric的分布式?jīng)Q策引擎,QF互連(QF Interconnect)是傳輸設(shè)備,而QF引導(dǎo)器(QF Director)是一個(gè)公共窗口,將所有設(shè)備作為一個(gè)設(shè)備來(lái)控制。Matt Kolo提到,“QFX3500是一臺(tái)物理交換機(jī),同時(shí)它也是QFabric的一個(gè)重要部件。在傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)中,企業(yè)開(kāi)始可以使用其他廠商的產(chǎn)品,與QFX3500一起組建網(wǎng)絡(luò)。”