李 真 黃斯旎
(廣西電網(wǎng)有限責(zé)任公司信息中心,廣西 南寧 510000)
基于混合編程的網(wǎng)絡(luò)設(shè)備自動(dòng)備份的設(shè)計(jì)與實(shí)現(xiàn)
李 真 黃斯旎
(廣西電網(wǎng)有限責(zé)任公司信息中心,廣西 南寧 510000)
交換機(jī)在現(xiàn)今的網(wǎng)絡(luò)中有著非常廣泛的應(yīng)用,對(duì)網(wǎng)絡(luò)的穩(wěn)定運(yùn)行起了巨大的作用。文章針對(duì)交換機(jī)手動(dòng)備份十分繁瑣和不便的現(xiàn)狀,通過(guò)分析研究,設(shè)計(jì)和實(shí)現(xiàn)了windows平臺(tái)下交換機(jī)配置文件的自動(dòng)備份系統(tǒng)。該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)網(wǎng)絡(luò)內(nèi)交換機(jī)配置文件的自動(dòng)備份和定時(shí)執(zhí)行備份的功能,同時(shí)能減輕網(wǎng)絡(luò)管理人員的工作量,大幅提高工作效率。
交換機(jī);配置文件;自動(dòng)備份
在網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)設(shè)施的配置文件及內(nèi)部操作系統(tǒng)同電腦的操作系統(tǒng)一樣,容易出現(xiàn)問(wèn)題,常見(jiàn)的有系統(tǒng)文件損壞或丟失等。如果有某臺(tái)交換機(jī)的操作系統(tǒng)出現(xiàn)問(wèn)題而造成了配置文件的丟失,則會(huì)對(duì)整個(gè)網(wǎng)絡(luò)產(chǎn)生比較嚴(yán)重的干擾。為了解決這個(gè)問(wèn)題,就需要網(wǎng)管人員手動(dòng)的給每臺(tái)交換機(jī)配置文件進(jìn)行備份,并且需要定期更新備份文件。手動(dòng)備份的工作量是十分巨大的,同時(shí)會(huì)浪費(fèi)網(wǎng)絡(luò)管理人員的大量時(shí)間。因此,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)交換機(jī)配置文件自動(dòng)備份系統(tǒng)是十分緊迫和必要的。
以往的文獻(xiàn)在這方面已經(jīng)有了相關(guān)的研究。文獻(xiàn)[2]已經(jīng)實(shí)現(xiàn)了linux環(huán)境下交換機(jī)配置文件的自動(dòng)備份,但是仍然有一定的局限性。首先它的實(shí)現(xiàn)使用的是telnet遠(yuǎn)程登錄控制交換機(jī),而telnet是不安全的,現(xiàn)在的企業(yè)網(wǎng)絡(luò)從安全性方面考慮是禁止使用telnet登錄到交換機(jī)。其次,linux環(huán)境下的實(shí)現(xiàn)需要網(wǎng)管員懂得較多的編程知識(shí)和熟悉linux系統(tǒng)的操作。文獻(xiàn)[1]在window環(huán)境下實(shí)現(xiàn)了交換機(jī)配置文件的自動(dòng)備份,但是仍然使用telnet連接交換機(jī)的,其它文獻(xiàn)也類(lèi)似。而本文基于混合編程思想實(shí)現(xiàn)的windows環(huán)境下交換機(jī)自動(dòng)備份系統(tǒng)采用了更為安全的遠(yuǎn)程登錄協(xié)議ssh,并且非常易于操作和維護(hù),對(duì)網(wǎng)管員沒(méi)有較高的要求,易于使用和推廣。
傳統(tǒng)的備份工作如圖1所示。網(wǎng)管員每備份一臺(tái)交換機(jī)時(shí)都需要一臺(tái)終端與其相連,然后輸入相關(guān)命令進(jìn)行備份,十分的繁瑣和不便。
圖1 交換機(jī)配置工作連接示意圖
本文實(shí)現(xiàn)的交換機(jī)配置文件自動(dòng)備份系統(tǒng)主要由五個(gè)模塊組成。一是界面模塊;二是本地存儲(chǔ)加密模塊;三是ssh安全通信模塊;四是遠(yuǎn)程備份模塊;五是定時(shí)備份模塊。
系統(tǒng)結(jié)構(gòu)圖如圖2所示。
界面模塊的主要功能是給網(wǎng)管員提供十分友好的操作界面。網(wǎng)管員可以輸入交換機(jī)的相關(guān)信息,如IP地址,用戶(hù)名,密碼等。在運(yùn)行此程序前,網(wǎng)管員需要設(shè)置好這些信息,并確保運(yùn)行該系統(tǒng)的計(jì)算機(jī)能夠連接到需要備份的交換機(jī)。輸入完信息后可以選擇需要備份的交換機(jī),發(fā)出備份命令。
本地存儲(chǔ)加密模塊的主要功能是加密網(wǎng)管員輸入的交換機(jī)相關(guān)信息。在備份過(guò)程中,加密模塊會(huì)解密交換機(jī)的相關(guān)信息供備份程序使用。
ssh安全通信模塊的主要功能是建立計(jì)算機(jī)到交換機(jī)的安全連接,讓計(jì)算機(jī)控制交換機(jī)進(jìn)行備份工作。
遠(yuǎn)程備份模塊的主要功能是進(jìn)行備份工作。在界面模塊獲得交換機(jī)相關(guān)信息后,網(wǎng)管員可以選擇需要備份的交換機(jī),然后程序就開(kāi)始備份工作,并將備份文件保存在本地磁盤(pán)中。
定時(shí)備份模塊的主要功能是定時(shí)進(jìn)行備份操作。網(wǎng)管員可以設(shè)定執(zhí)行備份的時(shí)間,如每天凌晨4點(diǎn),系統(tǒng)就會(huì)在指定時(shí)間執(zhí)行備份。
圖2 交換機(jī)自動(dòng)備份系統(tǒng)系統(tǒng)結(jié)構(gòu)
3.1 技術(shù)選型
本系統(tǒng)是一個(gè)Window平臺(tái)下的綜合集成系統(tǒng),采用C#+Python+TFTP的技術(shù)路線。
C#是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語(yǔ)言。它是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的,由C和C++衍生出來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言,特別適合Window平臺(tái)下桌面程序的開(kāi)發(fā)。
Python是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,Python語(yǔ)法簡(jiǎn)潔而清晰,具有豐富和強(qiáng)大的類(lèi)庫(kù)。它常被昵稱(chēng)為膠水語(yǔ)言,它能夠把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起.
TFTP(Trivial File Transfer Protocol,簡(jiǎn)單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個(gè)用來(lái)在客戶(hù)機(jī)與服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開(kāi)銷(xiāo)不大的文件傳輸服務(wù)。在系統(tǒng)中,我們將交換機(jī)的配置文件上傳到TFTP服務(wù)器。這里我們使用的是Window平臺(tái)下SolarWinds TFTP Server服務(wù)器。
自動(dòng)備份系統(tǒng)的界面程序使用C#編寫(xiě),主要用來(lái)和網(wǎng)管員進(jìn)行交互。首先網(wǎng)管員輸入交換機(jī)的相關(guān)信息,系統(tǒng)會(huì)進(jìn)行保存,然后選擇需要備份的交換機(jī)進(jìn)行備份。備份程序采用Python腳本語(yǔ)言編寫(xiě)。沒(méi)有直接用C#寫(xiě)備份程序是因?yàn)镃#實(shí)現(xiàn)ssh連接交換機(jī)并且模擬交互操作比較復(fù)雜,而采用Python腳本語(yǔ)言實(shí)現(xiàn)相對(duì)簡(jiǎn)單。備份時(shí)Python程序會(huì)先讀取保存下來(lái)的交換機(jī)相關(guān)信息,然后對(duì)應(yīng)的進(jìn)行備份,生成配置文件。TFTP是簡(jiǎn)單文件傳輸協(xié)議,可以傳輸文件。配置文件生成后,我們將其傳輸至主機(jī)上的TFTP服務(wù)器。
3.2 界面模塊實(shí)現(xiàn)
系統(tǒng)界面如圖3所示。該界面主要由三個(gè)模塊組成:設(shè)備信息,備份,定時(shí)操作。
圖3 系統(tǒng)界面示意圖
設(shè)備信息界面是網(wǎng)管員用來(lái)輸入交換機(jī)相關(guān)信息的界面,主要就是一個(gè)表格。網(wǎng)管員只需將相關(guān)信息輸入表格中,點(diǎn)擊保存按鈕就能將信息加密保存到系統(tǒng)中。其中最重要的信息是交換機(jī)的管理IP,只有知道了交換機(jī)的IP,系統(tǒng)才能夠連接到該交換機(jī),并執(zhí)行下一步的工作。
備份界面是執(zhí)行備份命令的界面,也是由一個(gè)表格組成。網(wǎng)管員輸入信息后再打開(kāi)該界面就能看到輸入的交換機(jī)信息,選擇需要進(jìn)行備份的交換機(jī),點(diǎn)擊備份按鈕就能實(shí)現(xiàn)備份功能。
定時(shí)操作界面是設(shè)置定時(shí)執(zhí)行備份的界面,主要由日期和時(shí)間空間組成。網(wǎng)管員可以選擇定時(shí)執(zhí)行的時(shí)間,系統(tǒng)就能定時(shí)進(jìn)行備份。
3.3 本地存儲(chǔ)加密模塊實(shí)現(xiàn)
交換機(jī)的相關(guān)信息加密存儲(chǔ)在本地,每臺(tái)交換機(jī)的信息經(jīng)過(guò)加密處理后保存到一個(gè)文本文件中。加密處理使用DES對(duì)稱(chēng)加密算法。DES全稱(chēng)為Data Encryption Standard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法,安全性較高。
DES算法在C#中已經(jīng)有了完整的實(shí)現(xiàn)。加密時(shí)只需要調(diào)用加密函數(shù),解密時(shí)調(diào)用解密函數(shù),十分的方便。加密函數(shù)代碼如下:
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Encoding utf = new UTF8Encoding();
ICryptoTransform encryptor = des.CreateEncryptor(DesKey, DesVi);
byte[] bData = utf.GetBytes(data);
byte[] bEnc = encryptor.TransformFinalBlock(bData, 0, bData.Length);
3.4 ssh安全通信模塊實(shí)現(xiàn)
由于公司網(wǎng)絡(luò)交換機(jī)禁止telnet訪問(wèn),所以本文采用SSH安全外殼協(xié)議連接到交換機(jī)。SSH 是目前較可靠,專(zhuān)為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露問(wèn)題。
SSH實(shí)現(xiàn)是調(diào)用了paramiko模塊。paramiko是用python語(yǔ)言寫(xiě)的一個(gè)模塊,遵循SSH2協(xié)議,支持以加密和認(rèn)證的方式,進(jìn)行遠(yuǎn)程服務(wù)器的連接。在程序里面調(diào)用paramiko里的相關(guān)函數(shù)就能夠連接到交換機(jī)
3.5 遠(yuǎn)程備份模塊實(shí)現(xiàn)
網(wǎng)管人員點(diǎn)擊備份按鈕后,系統(tǒng)就自動(dòng)調(diào)用備份模塊進(jìn)行備份工作。備份模塊其實(shí)就是一個(gè)Python程序,它所做的工作就是模擬網(wǎng)管員手動(dòng)備份交換機(jī)配置文件。首先,程序會(huì)調(diào)用ssh安全通信模塊連接到交換機(jī)中;然后,程序讀取經(jīng)加密處理后的文本文件得到交換機(jī)相關(guān)信息,隨后利用這些信息進(jìn)行登錄;最后,程序向交換機(jī)發(fā)送備份的相關(guān)命令,模擬網(wǎng)管員備份的過(guò)程,交換機(jī)收到備份命令后開(kāi)始備份,并將備份文件上傳至TFTP服務(wù)器。至此,備份工作已基本完成。
3.6 定時(shí)備份模塊實(shí)現(xiàn)
備份是Python程序完成的。網(wǎng)管員在界面程序點(diǎn)擊備份按鈕,系統(tǒng)會(huì)自動(dòng)調(diào)用Python程序來(lái)完成備份。所以定時(shí)備份也就是定時(shí)由系統(tǒng)執(zhí)行相應(yīng)的Python程序。定時(shí)功能由C#中的Timer實(shí)現(xiàn)。Timer是多線程計(jì)時(shí)器,在界面程序設(shè)定好定時(shí)執(zhí)行時(shí)間后,Timer會(huì)在到達(dá)指定時(shí)間后執(zhí)行相應(yīng)的工作,這里就是執(zhí)行Python程序進(jìn)行備份。定時(shí)操作設(shè)置好后,系統(tǒng)就能自動(dòng)的進(jìn)行備份工作,不再需要任何操作。
比如筆者設(shè)定每天凌晨 4點(diǎn)對(duì)公司網(wǎng)絡(luò)的幾百臺(tái)交換機(jī)進(jìn)行遍歷,采集配置文件并自動(dòng)存儲(chǔ)。系統(tǒng)不但不會(huì)影響到管理人員的正常休息, 而且對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量的影響也可以降為最小。
筆者在機(jī)房對(duì)10臺(tái)交換機(jī)進(jìn)行了測(cè)試,結(jié)果還是比較滿(mǎn)意的。點(diǎn)擊備份按鈕后,馬上能夠看到生成的交換機(jī)配置文件。不過(guò)程序執(zhí)行需要時(shí)間,生成10個(gè)配置文件大概用了30秒左右。定時(shí)執(zhí)行也比較成功,我們?cè)O(shè)定定時(shí)執(zhí)行時(shí)間為1小時(shí)。程序運(yùn)行1小時(shí)后,配置文件就一個(gè)一個(gè)自動(dòng)的生成。隨后又設(shè)為每天凌晨4點(diǎn)自動(dòng)運(yùn)行,經(jīng)過(guò)一個(gè)星期的測(cè)試,系統(tǒng)能夠正常運(yùn)行,比較穩(wěn)定。
在大型網(wǎng)網(wǎng)絡(luò)中,交換機(jī)是網(wǎng)絡(luò)通信的基本設(shè)備,通過(guò)它們不僅可以聯(lián)通計(jì)算機(jī),還能選擇數(shù)據(jù)傳送的途徑,并阻斷非法的訪問(wèn),保障重點(diǎn)業(yè)務(wù)的網(wǎng)絡(luò)帶寬,因此交換機(jī)的維護(hù)變得尤為重要。交換機(jī)配置的備份是交換機(jī)日常維護(hù)工作的一項(xiàng)重要內(nèi)容,當(dāng)交換機(jī)停止正常運(yùn)行時(shí),能夠利用這些備份文件迅速恢復(fù)交換機(jī)配置。如果沒(méi)有做好交換機(jī)配置的備份,一旦交換機(jī)出了故障導(dǎo)致配置文件丟失的情況出現(xiàn),恢復(fù)工作將很繁重,而且容易出錯(cuò)。
運(yùn)行在Window平臺(tái)上的備份系統(tǒng)通過(guò)利用 C# + Python模塊+TFTP服務(wù)器自動(dòng)備份交換機(jī)配置文件,設(shè)定固定時(shí)段遍歷工作區(qū)域內(nèi)的交換機(jī),并進(jìn)行存儲(chǔ)。這種方式提高了備份的有效性,方便了工作人員的維護(hù),縮減了維護(hù)成本。以后視情況可以添加交換機(jī)自動(dòng)恢復(fù)的功能,就能夠?qū)崿F(xiàn)交換機(jī)的自動(dòng)備份和恢復(fù)。
[1] 胡紹立.企業(yè)網(wǎng)絡(luò)交換機(jī)配置文件的批量備份[J].計(jì)算機(jī)與網(wǎng)絡(luò),2014,(21):67-70.
[2] 劉宇.關(guān)于交換機(jī)配置文件實(shí)現(xiàn)自動(dòng)備份的研究[J].電腦與電信,2011,(3):59-61.
[3] 戴元.網(wǎng)絡(luò)設(shè)備配置信息備份系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2011,(11):14-15.
[4] 唐壽高,陶永,王洪濤.用批處理和VBS批量配置交換機(jī)[J].中國(guó)教育網(wǎng)絡(luò),2010,(7):76-77.
[5] 孫緒華,魏楚元,李敏.如何自動(dòng)備份大型交換機(jī)配文件[J].中國(guó)教育網(wǎng)絡(luò),2010,(4):71-72.
[6] 靳亞楠.批量備份校園網(wǎng)路由器/交換機(jī)配置數(shù)據(jù)的探索[J].科技信息,2010,(16):236-237.
[7] 蘇軼,劉樹(shù)峰,張曉平,等.路由器配置文件自動(dòng)備份的實(shí)現(xiàn)[J].山東氣象,2010,(1):41-43.
[8] 袁海峰,張道軍,吳銀芳.基于Telnet協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備的自動(dòng)管理[J].蘇州科技學(xué)院學(xué)報(bào),2006,(4):69-73.
本篇為順應(yīng)高校信息化的發(fā)展,將學(xué)生日常一卡通數(shù)據(jù)運(yùn)用數(shù)據(jù)挖掘的技術(shù)進(jìn)行整合與分析,主要針對(duì)某大學(xué)學(xué)生校園一卡通消費(fèi)數(shù)據(jù)進(jìn)行消費(fèi)習(xí)慣分析。首先通過(guò)數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)轉(zhuǎn)換與數(shù)據(jù)歸約等數(shù)據(jù)預(yù)處理手段提取出一個(gè)小型數(shù)據(jù)倉(cāng)庫(kù),然后采用一種優(yōu)化的K-means算法進(jìn)行聚類(lèi)分析。該算法優(yōu)化了初始聚類(lèi)中心,通過(guò)類(lèi)密集程度這一指標(biāo)尋求一個(gè)最優(yōu)聚類(lèi)效果。所得結(jié)果將學(xué)生分為幾類(lèi),并分析不同類(lèi)別行為特征,最后還運(yùn)用決策樹(shù)模型和十折交叉驗(yàn)證法評(píng)估聚類(lèi)結(jié)果,輔助學(xué)生工作管理人員將學(xué)生按特征分類(lèi)管理,并對(duì)后勤管理部門(mén)更好的服務(wù)學(xué)生提供幫助,對(duì)高校的學(xué)生管理工作具有參考價(jià)值。
【參考文獻(xiàn)】
[1] 梁瑩.基于數(shù)據(jù)挖掘技術(shù)的客戶(hù)消費(fèi)行為分析系統(tǒng)的開(kāi)發(fā)與應(yīng)用[D].廣西:廣西大學(xué),2011.
[2] 廖珣.基于K-means和CBR方法的高校就業(yè)預(yù)測(cè)模型應(yīng)用研究[J].人力資源管理, 2010,3(3):79-80.
[3] 葉煉.電信客戶(hù)行為分析系統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2009.
[4] 姚雙良.數(shù)據(jù)挖掘在高校課程相關(guān)性中的應(yīng)用研究[J].科技通報(bào), 2012, 28(12):232-234
The design and implementation of network equipment automatic backup based of hybrid programming
Switch has a very wide range of application in today's networks, it played a huge role for the stable operation of the network. In this paper, we designed and implemented a automatic backup system for switch configuration file in windows in case of the tedious and inconvenient situation of switch manually back up.The system can automatically backup configuration file switch within network, it also can timing backup. The system can reduce the workload of network management, improve efficiency obviously.
Switch; configuration file; automatic backup
TP31
A
1008-1151(2015)01-0037-03
2014-12-12
李真(1983-),男,廣西電網(wǎng)有限責(zé)任公司信息中心助理工程師,從事系統(tǒng)運(yùn)維工作。