

摘要:自動化網絡運維通常需要獲取網絡設備配置文件內的信息來進行分析,本文基于華為的eNSP模擬網絡環境設計仿真實驗,通過python的telnetlib模塊登錄網絡設備,收集配置信息上傳到FTP服務器上,可以提高網絡維護效率。
關鍵詞:eNSP;文件備份;telnetlib;Python
自動化網絡運維可以大大提高網絡維護效率,成為網絡運維的發展趨勢。華為的Datacom網絡工程師職業資格認證內容中,也引入了Python自動化運維的內容。網絡設備可以通過Telnet或SSH的方式登錄,其中Telnet登錄配置較SSH簡單,一般用于網絡環境安全的場景[1]。本文基于華為的eNSP虛擬仿真環境,設計了一種Python自動獲取網絡設備配置文件信息的方法。
一、網絡設計與配置:
網絡管理員需要將網絡設備S1、S2、S3、R1的配置文件自動上傳到FTP Server服務器上。為此,管理員的PC即本機電腦通過Cloud云將本機和接入層交換機S1橋接起來。FTP Server服務器通過在一個Windows虛擬機上部署FTP服務實現,通過Cloud云將FTP Server虛擬機和交換機S3橋接起來[2]。網絡拓撲如圖1所示。
網絡管理員劃分為VLAN 10,網絡地址為10.27.10.0/24,研發部劃分為VLAN 20,網絡地址為10.27.20.0/24,FTP Server劃分為VLAN30,網絡地址是10.27.30.0/24。S1和S2交換機的管理VLAN分別劃分在VLAN1和 VLAN 2, 管理IP地址分別為10.27.1.1和10.27.2.1。
接入層交換機S1和S2先配置VLAN、管理接口IP、默認路由,以下是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
匯聚層交換機S3先配置VLAN、VLANif接口和OSPF路由協議,使得內部網絡能夠互聯互通,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先配置內網接口IP地址和OSPF路由。局域網通過出口路由器R1訪問Internet網絡,在這里只測試內網網絡設備的維護,訪問外網的接口IP、NAT和訪問外網的默認路由配置這里不做配置。
最后在4個網絡設備上配置Telnet協議,使得網絡管理員PC能夠telnet登錄到各個設備。4個設備的Telnet登錄的用戶賬號都一樣,配置命令一樣,先配置AAA視圖,設置用戶名和密碼,以及服務類型為Telnet,然后在vty視圖下配置認證方式為AAA認證。
二、Python編程
網絡管理員通過運行Python代碼實現自動將網絡設備的配置文件上傳到FTP Server服務器。運行代碼前,將網絡設備名和IP地址信息依次分行寫入name.txt文本文件中。代碼的執行流程如圖2所示。
三、實現結果
網絡管理員所在的本機PC上執行Python代碼,運行后FTP Server服務器上可以看到上傳成功的4個網絡設備的配置文件。
四、結束語
基于 eNSP 軟件搭建網絡實驗環境,通過Cloud 云實現本機和FTP Server 虛擬機與網絡設備的橋接,使用 Python 編程來實現網絡設備的自動備份。本實驗環境在本機電腦上就能搭建實現,不需要真實的網絡設備環境。利用 Python 的 telnetlib 庫登錄網絡設備,將設備的配置文件寫入 FTP Server 服務器上。
作者單位:王莉軍 隋欣 上海杉達學院
參" 考" 文" 獻
[1]王獻宏.基于Python批量推送設備配置[J].電腦編程技巧與維護,2021.8:9-10.
[2]周亞軍. 華為HCIA-Datacom認證指南[M].北京:電子工業出版社,2021.