摘要:自動(dòng)化網(wǎng)絡(luò)運(yùn)維通常需要獲取網(wǎng)絡(luò)設(shè)備配置文件內(nèi)的信息來(lái)進(jìn)行分析,本文基于華為的eNSP模擬網(wǎng)絡(luò)環(huán)境設(shè)計(jì)仿真實(shí)驗(yàn),通過(guò)python的telnetlib模塊登錄網(wǎng)絡(luò)設(shè)備,收集配置信息上傳到FTP服務(wù)器上,可以提高網(wǎng)絡(luò)維護(hù)效率。
關(guān)鍵詞:eNSP;文件備份;telnetlib;Python
自動(dòng)化網(wǎng)絡(luò)運(yùn)維可以大大提高網(wǎng)絡(luò)維護(hù)效率,成為網(wǎng)絡(luò)運(yùn)維的發(fā)展趨勢(shì)。華為的Datacom網(wǎng)絡(luò)工程師職業(yè)資格認(rèn)證內(nèi)容中,也引入了Python自動(dòng)化運(yùn)維的內(nèi)容。網(wǎng)絡(luò)設(shè)備可以通過(guò)Telnet或SSH的方式登錄,其中Telnet登錄配置較SSH簡(jiǎn)單,一般用于網(wǎng)絡(luò)環(huán)境安全的場(chǎng)景[1]。本文基于華為的eNSP虛擬仿真環(huán)境,設(shè)計(jì)了一種Python自動(dòng)獲取網(wǎng)絡(luò)設(shè)備配置文件信息的方法。
一、網(wǎng)絡(luò)設(shè)計(jì)與配置:
網(wǎng)絡(luò)管理員需要將網(wǎng)絡(luò)設(shè)備S1、S2、S3、R1的配置文件自動(dòng)上傳到FTP Server服務(wù)器上。為此,管理員的PC即本機(jī)電腦通過(guò)Cloud云將本機(jī)和接入層交換機(jī)S1橋接起來(lái)。FTP Server服務(wù)器通過(guò)在一個(gè)Windows虛擬機(jī)上部署FTP服務(wù)實(shí)現(xiàn),通過(guò)Cloud云將FTP Server虛擬機(jī)和交換機(jī)S3橋接起來(lái)[2]。網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
網(wǎng)絡(luò)管理員劃分為VLAN 10,網(wǎng)絡(luò)地址為10.27.10.0/24,研發(fā)部劃分為VLAN 20,網(wǎng)絡(luò)地址為10.27.20.0/24,F(xiàn)TP Server劃分為VLAN30,網(wǎng)絡(luò)地址是10.27.30.0/24。S1和S2交換機(jī)的管理VLAN分別劃分在VLAN1和 VLAN 2, 管理IP地址分別為10.27.1.1和10.27.2.1。
接入層交換機(jī)S1和S2先配置VLAN、管理接口IP、默認(rèn)路由,以下是S1的配置,S2的配置命令和S1類似。
[S1]vlan 10
[S1-vlan10]interface e0/0/1
[S1-Ethernet0/0/1]port link-type access
[S1-Ethernet0/0/1]port default vlan 10
[S1-Ethernet0/0/1]q
[S1]interface e0/0/2
[S1-Ethernet0/0/2]port link-type trunk
[S1-Ethernet0/0/2]port trunk allow-pass vlan 10
[S1-Ethernet0/0/2]q
[S1]interface vlanif 1
[S1-Vlanif1]ip address 10.27.1.1 24
[S1-Vlanif1]q
[S1]ip route-static 0.0.0.0 0.0.0.0 10.27.1.254
匯聚層交換機(jī)S3先配置VLAN、VLANif接口和OSPF路由協(xié)議,使得內(nèi)部網(wǎng)絡(luò)能夠互聯(lián)互通,S3的配置命令如下。
[S3]vlan batch 2 10 20 30 101
[S3]interface g0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 101
[S3-GigabitEthernet0/0/1]q
[S3]interface g0/0/4
[S3-GigabitEthernet0/0/4]port link-type access
[S3-GigabitEthernet0/0/4]port default vlan 30
[S3-GigabitEthernet0/0/4]q
[S3]interface g0/0/2
[S3-GigabitEthernet0/0/2]port link-type trunk
[S3-GigabitEthernet0/0/2]port trunk allow-pass vlan 10
[S3-GigabitEthernet0/0/2]q
[S3]interface g0/0/3
[S3-GigabitEthernet0/0/3]port link-type trunk
[S3-GigabitEthernet0/0/3]port trunk pvid vlan 2
[S3-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 20
[S3-GigabitEthernet0/0/3]q
[S3]interface vlanif 1
[S3-Vlanif1]ip address 10.27.1.254 24
[S3-Vlanif1]q
[S3]interface vlanif 2
[S3-Vlanif2]ip address 10.27.2.254 24
[S3-Vlanif2]q
[S3]interface vlanif 10
[S3-Vlanif10]ip address 10.27.10.254 24
[S3-Vlanif10]q
[S3]interface vlanif 20
[S3-Vlanif20]ip address 10.27.20.254 24
[S3-Vlanif20]q
[S3]interface vlanif 30
[S3-Vlanif30]ip address 10.27.30.254 24
[S3-Vlanif30]q
[S3]interface vlanif 101
[S3-Vlanif101]ip address 10.27.101.1 24
[S3-Vlanif101]q
[S3]ospf 1
[S3-ospf-1]area 0
[S3-ospf-1-area-0.0.0.0]network 10.27.1.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]network 10.27.2.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]network 10.27.10.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]network 10.27.20.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]network 10.27.30.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]network 10.27.101.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]q
出口路由器R1先配置內(nèi)網(wǎng)接口IP地址和OSPF路由。局域網(wǎng)通過(guò)出口路由器R1訪問(wèn)Internet網(wǎng)絡(luò),在這里只測(cè)試內(nèi)網(wǎng)網(wǎng)絡(luò)設(shè)備的維護(hù),訪問(wèn)外網(wǎng)的接口IP、NAT和訪問(wèn)外網(wǎng)的默認(rèn)路由配置這里不做配置。
最后在4個(gè)網(wǎng)絡(luò)設(shè)備上配置Telnet協(xié)議,使得網(wǎng)絡(luò)管理員PC能夠telnet登錄到各個(gè)設(shè)備。4個(gè)設(shè)備的Telnet登錄的用戶賬號(hào)都一樣,配置命令一樣,先配置AAA視圖,設(shè)置用戶名和密碼,以及服務(wù)類型為Telnet,然后在vty視圖下配置認(rèn)證方式為AAA認(rèn)證。
二、Python編程
網(wǎng)絡(luò)管理員通過(guò)運(yùn)行Python代碼實(shí)現(xiàn)自動(dòng)將網(wǎng)絡(luò)設(shè)備的配置文件上傳到FTP Server服務(wù)器。運(yùn)行代碼前,將網(wǎng)絡(luò)設(shè)備名和IP地址信息依次分行寫入name.txt文本文件中。代碼的執(zhí)行流程如圖2所示。
三、實(shí)現(xiàn)結(jié)果
網(wǎng)絡(luò)管理員所在的本機(jī)PC上執(zhí)行Python代碼,運(yùn)行后FTP Server服務(wù)器上可以看到上傳成功的4個(gè)網(wǎng)絡(luò)設(shè)備的配置文件。
四、結(jié)束語(yǔ)
基于 eNSP 軟件搭建網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境,通過(guò)Cloud 云實(shí)現(xiàn)本機(jī)和FTP Server 虛擬機(jī)與網(wǎng)絡(luò)設(shè)備的橋接,使用 Python 編程來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備的自動(dòng)備份。本實(shí)驗(yàn)環(huán)境在本機(jī)電腦上就能搭建實(shí)現(xiàn),不需要真實(shí)的網(wǎng)絡(luò)設(shè)備環(huán)境。利用 Python 的 telnetlib 庫(kù)登錄網(wǎng)絡(luò)設(shè)備,將設(shè)備的配置文件寫入 FTP Server 服務(wù)器上。
作者單位:王莉軍 隋欣 上海杉達(dá)學(xué)院
參" 考" 文" 獻(xiàn)
[1]王獻(xiàn)宏.基于Python批量推送設(shè)備配置[J].電腦編程技巧與維護(hù),2021.8:9-10.
[2]周亞軍. 華為HCIA-Datacom認(rèn)證指南[M].北京:電子工業(yè)出版社,2021.