技術(shù)領(lǐng)域
本發(fā)明涉及域名服務(wù)領(lǐng)域,具體涉及一種DNS服務(wù)的預(yù)加載啟動方法、預(yù)加載系統(tǒng)及管理系統(tǒng)。
背景技術(shù):
DNS(Domain Name System)為域名系統(tǒng),是因特網(wǎng)上作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的IP數(shù)串。
向外提供高效穩(wěn)定的DNS服務(wù)的重要性不言而喻。尤其在10萬量級的大型DNS服務(wù)中,Docker 容器正在廣泛應(yīng)用,所述Docker容器是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。Docker 容器是完全使用沙箱機制,相互之間不會有任何接口。Docker容器的使用非常廣泛,在Docker容器高速增長的情況下, 高效穩(wěn)定的對外提供DNS服務(wù)尤其重要。
在大型DNS服務(wù)系統(tǒng)中,隨著域名數(shù)量的增加,DNS服務(wù)系統(tǒng)加載zone的時間以及域名變更后重載zone的時間也會增長,若需要加載10萬個域名,則需要耗費相當(dāng)長的時間。在DNS(域名解析系統(tǒng))環(huán)境中,zone是指分配給某個服務(wù)器的特定命名空間。zone 文件即區(qū)域配置文件中包含的指令能夠?qū)⒒ヂ?lián)網(wǎng)域名解析為對應(yīng)的IP地址。
在目前的DNS服務(wù)系統(tǒng)中,如果很多用戶在線對域名進行變更,在響應(yīng)用于對域名進行變更的程序的魯棒性不夠的情況下,十分容易導(dǎo)致變更后的DNS配置文件中出現(xiàn)語法錯誤,從而會導(dǎo)致DNS服務(wù)無法啟動。
如圖1所示,在DNS服務(wù)的預(yù)加載過程中,在進行常規(guī)的program name檢測和assertion回調(diào)后會進行DNS配置文件的語法檢測,若檢測失敗,則引發(fā)abort和exit,從而無法加載DNS服務(wù),進而無法向用戶提供DNS服務(wù)。其中abort引發(fā)不正常進程的終止而exit直接退出進程。
DNS服務(wù)默認加載配置文件/etc/named.conf,默認情況下DNS服務(wù)啟動之前,會優(yōu)先檢測配置文件的語法,如果出現(xiàn)語法的錯誤,則會導(dǎo)致異常退出。在一些大型的DNS服務(wù)系統(tǒng)中,頻繁的異常退出和zone的重載顯然嚴重的影響用戶體驗,而不能提供穩(wěn)健的DNS服務(wù)而導(dǎo)致系統(tǒng)的性能損耗也相當(dāng)嚴重。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明一種DNS服務(wù)的預(yù)加載啟動方法、預(yù)加載系統(tǒng)及管理系統(tǒng)。通過在配置文件出現(xiàn)語法錯誤的情況下,仍然保證正常啟動DNS服務(wù)從而避免DNS服務(wù)因配置文件出現(xiàn)語法錯誤而被退出,從而避免了因配置文件出現(xiàn)錯誤而導(dǎo)致的zone的重載以及域名的重載,向外輸出高效穩(wěn)定的DNS服務(wù)。
本發(fā)明是以如下技術(shù)方案實現(xiàn)的。
一種DNS服務(wù)的預(yù)加載啟動方法,包括:
獲取DNS配置文件;
對所述DNS配置文件進行語法檢測:
若檢測通過,則加載區(qū)域配置文件,并根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù);
若檢測未通過,則根據(jù)所述檢測結(jié)果生成警告信息,加載區(qū)域配置文件,并根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù)。
進一步地,若檢測未通過,則在啟動DNS服務(wù)后根據(jù)所述警告信息修正所述DNS配置文件中的語法錯誤。
進一步地,在修正所述DNS配置文件中的語法錯誤后,重新加載所述DNS配置文件。
進一步地,通過reconfig或者reload來重新加載所述DNS配置文件以消除語法錯誤。
一種DNS服務(wù)的預(yù)加載系統(tǒng),包括:
DNS配置文件獲取模塊,用于獲取DNS配置文件;
語法檢測模塊,用于對所述DNS配置文件進行語法檢測;
預(yù)加載模塊,用于根據(jù)所述語法檢測結(jié)果進行DNS服務(wù)的預(yù)加載;
所述預(yù)加載模塊包括:
區(qū)域配置文件加載子模塊,用于加載區(qū)域配置文件;
啟動模塊,用于根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù);
警告生成模塊,用于根據(jù)所述檢測結(jié)果生成警告信息。
進一步地,包括:
所述預(yù)加載模塊還包括:
修正子模塊,用于根據(jù)所述警告信息修正所述DNS配置文件中的語法錯誤。
進一步地,還包括重新加載模塊,用于在修正所述DNS配置文件中的語法錯誤后,重新加載所述DNS配置文件。
進一步地,所述重新加載模塊通過調(diào)用reconfig或reload指令重新加載所述DNS配置文件以消除語法錯誤。
一種DNS服務(wù)管理系統(tǒng),包括:DNS管控服務(wù)器、DNS服務(wù)數(shù)據(jù)庫和DNS服務(wù)器,所述DNS服務(wù)器中加載有上述DNS預(yù)加載系統(tǒng);
所述DNS服務(wù)數(shù)據(jù)庫用于存儲DNS服務(wù)有關(guān)的數(shù)據(jù);
所述DNS管控服務(wù)器接受用于對于域名的修改請求,并根據(jù)所述修改請求和所述DNS服務(wù)數(shù)據(jù)庫中的數(shù)據(jù)生成DNS配置文件和區(qū)域配置文件;
所述DNS配置文件和區(qū)域配置文件被下發(fā)至所述DNS服務(wù)器;
所述DNS服務(wù)器用于獲取所述DNS配置文件和區(qū)域配置文件,并根據(jù)所述DNS配置文件和區(qū)域配置文件向用戶提供DNS服務(wù)。
進一步地,所述DNS配置文件和區(qū)域配置文件為同時下發(fā)。
本發(fā)明的有益效果是:
本發(fā)明提出了一種DNS服務(wù)的預(yù)加載啟動方法、預(yù)加載系統(tǒng)及管理系統(tǒng)。本發(fā)明具有如下優(yōu)點:
(1)通過在配置文件出現(xiàn)語法錯誤的情況下,仍然保證正常啟動DNS服務(wù)從而避免DNS服務(wù)因配置文件出現(xiàn)語法錯誤而被退出,從而避免了因配置文件出現(xiàn)錯誤而導(dǎo)致的zone的重載以及域名的重載,向外輸出高效穩(wěn)定的DNS服務(wù)。
(2)根據(jù)檢測到的語法錯誤對于配置文件進行自動修正,從而將語法錯誤造成的性能損失降到最小。
(3)提供了一種DNS服務(wù)的管理系統(tǒng),能夠提供對于域名進行中控管理,響應(yīng)用戶對于域名的修改請求,并且向外輸出域名的管理信息,使得各個終端根據(jù)域名的管理信息穩(wěn)定提供DNS服務(wù)。
附圖說明
圖1是背景技術(shù)提供的DNS服務(wù)預(yù)加載方法流程圖;
圖2是實施例1提供的DNS服務(wù)的預(yù)加載啟動方法流程圖;
圖3是實施例2中提供的DNS的預(yù)加載系統(tǒng)的示意圖;
圖4是實施例2中提供的預(yù)加載模塊的示意圖;
圖5是實施例3中提供的DNS服務(wù)管理系統(tǒng)的框圖;
圖6是實施例3中提供的DNS服務(wù)管理系統(tǒng)的示意圖;
圖7是實施例4中提供的終端的示意圖。
具體實施方法
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
需要說明的是,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實施例1:
一種DNS服務(wù)的預(yù)加載啟動方法,如圖2所示,包括:
S101. 獲取DNS配置文件;
所述DNS配置文件為/etc/named.conf。
S102. 對所述DNS配置文件進行語法檢測:
S103. 若檢測通過,則加載區(qū)域配置文件,并根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù);
S104. 若檢測未通過,則根據(jù)所述檢測結(jié)果生成警告信息,加載區(qū)域配置文件,并根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù)。
現(xiàn)有技術(shù)中,在目前的DNS服務(wù)系統(tǒng)中,如果很多用戶在線對域名進行變更,如果響應(yīng)所述變更的程序存在漏洞,則和容易導(dǎo)致配置文件的語法錯誤,從而會導(dǎo)致DNS無法啟動,并無法對外提供服務(wù)。
本實施例中若出現(xiàn)語法錯誤,則會跳過語法檢測,保證bind正常啟動,zone的正常加載,服務(wù)啟動之后,可以修正語法錯誤,執(zhí)行reconfig或者reload來消除語法的錯誤。bind為將一本地地址與一套接口捆綁,適用于未連接的數(shù)據(jù)報或流類套接口,在connect()或listen()調(diào)用前使用。zone某種意義上同domain的含義類似,指管理員的管理范圍。在DNS(域名解析系統(tǒng))環(huán)境中,zone是指分配給某個服務(wù)器的特定命名空間。zone 文件中包含的指令能夠?qū)⒒ヂ?lián)網(wǎng)域名解析為對應(yīng)的IP地址。所述區(qū)域配置文件即為用于加載zone的文件。
即,若檢測未通過,則在啟動DNS服務(wù)后根據(jù)所述警告信息修正所述DNS配置文件中的語法錯誤。
具體地,在修正所述DNS配置文件中的語法錯誤后,重新加載所述DNS配置文件。
具體地,通過reconfig或者reload來重新加載所述DNS配置文件以消除語法錯誤。
本實施例中提供了一種DNS服務(wù)的預(yù)加載啟動方法,通過在配置文件出現(xiàn)語法錯誤的情況下,仍然保證正常啟動DNS服務(wù)從而避免DNS服務(wù)因配置文件出現(xiàn)語法錯誤而被退出,從而避免了因配置文件出現(xiàn)錯誤而導(dǎo)致的zone的重載以及域名的重載,向外輸出高效穩(wěn)定的DNS服務(wù)。此外,本實施例中還能夠根據(jù)檢測到的語法錯誤對于配置文件進行自動修正,從而將語法錯誤造成的性能損失降到最小。
實施例2:
一種DNS的預(yù)加載系統(tǒng),如圖3所示,包括:
DNS配置文件獲取模塊201,用于獲取DNS配置文件;
語法檢測模塊202,用于對所述DNS配置文件進行語法檢測;
預(yù)加載模塊203,用于根據(jù)所述語法檢測結(jié)果進行DNS的預(yù)加載。
所述預(yù)加載模塊203,如圖4所述,包括:
區(qū)域配置文件加載子模塊2031,用于加載區(qū)域配置文件;
啟動模塊2032,用于根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù);
警告生成模塊2033,用于根據(jù)所述檢測結(jié)果生成警告信息。
修正子模塊2034,用于根據(jù)所述警告信息修正所述DNS配置文件中的語法錯誤。
具體地,還包括重新加載模塊204,用于在修正所述DNS配置文件中的語法錯誤后,重新加載所述DNS配置文件。
具體地,所述重新加載模塊204通過調(diào)用reconfig或reload指令重新加載所述DNS配置文件以消除語法錯誤。
本實施例中提供了一種DNS的預(yù)加載系統(tǒng),能夠用于實現(xiàn)實施例1中提供的DNS服務(wù)的預(yù)加載啟動方法。本實施例通過在配置文件出現(xiàn)語法錯誤的情況下,仍然保證正常啟動DNS服務(wù)從而避免DNS服務(wù)因配置文件出現(xiàn)語法錯誤而被退出,從而避免了因配置文件出現(xiàn)錯誤而導(dǎo)致的zone的重載以及域名的重載,向外輸出高效穩(wěn)定的DNS服務(wù)。此外,本實施例中還能夠根據(jù)檢測到的語法錯誤對于配置文件進行自動修正,從而將語法錯誤造成的性能損失降到最小。
實施例3:
一種DNS服務(wù)管理系統(tǒng),如圖5,包括:
DNS管控服務(wù)器401、DNS服務(wù)數(shù)據(jù)庫402和DNS服務(wù)器403,所述DNS服務(wù)器401中加載DNS預(yù)加載系統(tǒng);在DNS預(yù)加載系統(tǒng)中,如果出現(xiàn)語法的錯誤,也會正常啟動bind服務(wù)和zone的加載,保證對外提供DNS服務(wù)。
所述DNS服務(wù)數(shù)據(jù)庫402用于存儲DNS服務(wù)有關(guān)的數(shù)據(jù);
所述DNS管控服務(wù)器401接受用于對于域名的修改請求,并根據(jù)所述修改請求和所述DNS服務(wù)數(shù)據(jù)庫402中的數(shù)據(jù)生成DNS配置文件和區(qū)域配置文件;
所述DNS配置文件和區(qū)域配置文件被下發(fā)至所述DNS服務(wù)器403。
具體地,所述DNS配置文件和區(qū)域配置文件為同時下發(fā)。
所述DNS服務(wù)器403用于獲取所述DNS配置文件和區(qū)域配置文件,并根據(jù)所述DNS配置文件和區(qū)域配置文件向用戶提供DNS服務(wù)。
在DNS預(yù)加載系統(tǒng)中,若不出現(xiàn)語法錯誤,則得到狀態(tài)值ISC_R_SUCCESS,若出現(xiàn)語法錯誤,則根據(jù)語法錯誤產(chǎn)生警告waning并根據(jù)warning來修正語法錯誤。
本實施例中提供的一種DNS服務(wù)管理系統(tǒng),如圖6所示,具體地,由自主研發(fā)的WENDNS平臺作為DNS管控服務(wù)器401,由自主研發(fā)的DB_SERVER作為DNS服務(wù)數(shù)據(jù)庫402,并由DB_SERVER向各個用戶下發(fā)變更后的DNS配置文件和區(qū)域配置文件。
具體地,WENDNS平臺能夠接收多個用戶發(fā)送的提交域名修改的請求,通過與DB_SERVER進行數(shù)據(jù)交互,能夠根據(jù)請求生成DNS配置文件和區(qū)域配置文件。所述DNS配置文件和區(qū)域配置文件的修改結(jié)果被同時下發(fā)至各個用戶所在的DNS服務(wù)器403,由DNS服務(wù)器403根據(jù)所述DNS配置文件和區(qū)域配置文件的修改結(jié)果向用戶提供DNS服務(wù)。
具體地,DNS服務(wù)器403能夠在配置文件出現(xiàn)語法錯誤的情況下,仍然保證正常啟動DNS服務(wù)從而避免DNS服務(wù)因配置文件出現(xiàn)語法錯誤而被退出,避免了因配置文件出現(xiàn)錯誤而導(dǎo)致的zone的重載以及域名的重載,向外輸出高效穩(wěn)定的DNS服務(wù)。還能夠根據(jù)檢測到的語法錯誤對于配置文件進行自動修正,從而將語法錯誤造成的性能損失降到最小。對于用戶而言DNS服務(wù)器403的這一特性能夠為用戶帶來較好的體驗。
本實施例能夠提供對于域名進行中控管理,響應(yīng)用戶對于域名的修改請求,并且向外輸出域名的管理信息,使得各個終端根據(jù)域名的管理信息穩(wěn)定提供DNS服務(wù)。
實施例4:
本發(fā)明的實施例還提供一種終端,所述終端包括一種DNS的預(yù)加載系統(tǒng)。該終端可以是移動終端等終端設(shè)備。可選地,在本實施例中,該終端也可以是計算機終端,還可以替換為計算機終端群中的任意一個計算機終端設(shè)備。
可選地,在本實施例中,上述計算機終端或移動終端可以位于計算機網(wǎng)絡(luò)的多個網(wǎng)絡(luò)設(shè)備中的至少一個網(wǎng)絡(luò)設(shè)備。
可選地,圖7是根據(jù)本發(fā)明實施例的終端的結(jié)構(gòu)框圖。如圖7所示,該終端可以包括:一個或多個(圖中僅示出一個)處理器、存儲器、以及傳輸裝置。
其中,存儲器可用于存儲軟件程序以及模塊,處理器通過運行存儲在存儲器內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器可進一步包括相對于處理器遠程設(shè)置的存儲器,這些遠程存儲器可以通過網(wǎng)絡(luò)連接至計算機終端或移動終端。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
上述的傳輸裝置用于經(jīng)由一個網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個實例中,傳輸裝置包括一個網(wǎng)絡(luò)適配器,其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進行通訊。在一個實例中,傳輸裝置為射頻模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。
其中,具體地,存儲器用于存儲DNS的預(yù)加載應(yīng)用程序。
處理器可以通過傳輸裝置調(diào)用存儲器存儲的信息及應(yīng)用程序,以執(zhí)行下述步驟:
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:
1. 獲取DNS配置文件;
2. 對所述DNS配置文件進行語法檢測:
3. 若檢測通過,則加載區(qū)域配置文件,并根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù);
4. 若檢測未通過,則根據(jù)所述檢測結(jié)果生成警告信息,加載區(qū)域配置文件,并根據(jù)所述區(qū)域配置文件的加載結(jié)果啟動DNS服務(wù)。
上述實施例中的集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在可讀取的存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在存儲介質(zhì)中,包括若干指令用以使得一臺或多臺移動終端或計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的終端,可通過其它的方式實現(xiàn)。其中,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。