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