999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Pysnmp的局域網自動化網管的研究

2021-04-22 05:40:02秦子實
電腦知識與技術 2021年8期

秦子實

摘要:隨著企業內網規模的擴大,內網接入終端逐漸增多,終端接入控制業務也越發繁雜,導致企業信息部門的日常業務存在大量重復性工作,且效率較低易出錯。因此,企業信息部門需要一種簡單的自動化網管方法,能夠代替人工自動管理IP、MAC資源等網絡資源,并能夠進行端口MAC綁定等準入業務。本文設計并實現了一種基于Pysnmp的交換設備管理方法,通過SNMP協議讀取、設置交換機配置,以達到自動化管理交換設備的目的。該方法具有依賴庫少、代碼編寫簡單、執行效率高等特點,適合局域網客制化開發與部署。

關鍵詞:網絡運維;SNMP;Python

中圖分類號:TP393? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)08-0047-02

1 概述

在企業內部辦公局域網,尤其是物理隔離的內網中,通常需要信息部門進行終端準入,以保護內網信息安全。隨著內網規模的擴大,終端接入準入、接入點變更、設備變更、設備注銷等業務也大量增加,此類業務具有工作量大、重復性高、人工易出錯且步驟固定等特點,適合通過腳本自動化管理。由于企業內網較為封閉的特點,自動化腳本不應有較多的庫依賴關系,同時應該方便信息部門開發部署。此外,對于大型辦公內網,腳本應該具有較高的執行效率。本文針對該場景,基于Pysnmp設計了一種易于開發方便部署的方法。

2 Pysnmp安裝

Pysnmp的依賴庫僅有四個,依賴關系如下圖1所示。

這四個依賴庫為純Python庫,沒有平臺編譯依賴,可以直接使用pypi上提供的wheel文件安裝,下載完成后在內網環境按照ply、jinja2、pysmi、pyasn1、pysnmp的順序安裝即可:

或使用github上提供的源碼,按照ply、jinja2、pysmi、pyasn1、pysnmp的順序,通過在源碼根目錄中運行“python setup.py”,從源碼安裝依賴。

3 系統設計

3.1 獲取數據

對于企業內網站準入業務而言,準入控制僅需要網關交換機中的ARP數據,即IP到MAC的映射關系。批量獲取此類數據需要使用“nextCmd”函數:其中在第二個參數使用“CommunityData”對象生成團體字,在第三個參數使用“UdpTransportTarget”生成目標對象指定交換機snmp的IP與端口:

nextCmd函數返回一個生成器對象,可以直接使用for循環遍歷:

3.2 異常數據

for循環中的四個參數在循環體中分別用于:

snmp引擎(SnmpEngine)出現異常時,errorIndication不為空,可以用于拋出異?;蛴涗浗粨Q設備級的錯誤日志;

snmp代理(snmpAgent)產生異常數據時,errorStatus不為空且errorIndex有用于指定錯誤所在的索引值,可以用于拋出異?;蛴涗浗粨Q機上報的異常數據。

若前三個變量均為空,則可以通過varBinds取回正常數據,異常處理通常編寫如下:

3.3 ARP數據處理

在交換機返回的SNMP數據中,IP-MAC映射數據的oid為“.1.3.6.1.2.1.3.1.1.2”(即“獲取數據”例子中一節“ObjectIdentity”中的參數)。在請求該oid數據后,會返回從該oid開始的UDP中的原始結果,每個條目包含一個ObjectType對象表示oid名稱,以及一個OctetString對象表示oid下的值。原始數據包含非utf-8編碼和十六進制數據,不方便直接處理,因此可以使用這兩個對象的“prettyPrint”輸出方便處理的信息。

使用nextCmd函數讀取該oid數據時,對應調用的snmp“GETBULK”命令,即批量獲取“下一個指定oid相關”數據,返回的數據有順序。由于nextCmd返回從指定的oid開始的所有oid數據,本文利用數據的排序特征,僅獲取.1.3.6.1.2.1.3.1.1.2集合中的數據,當snmp代理接收到第一條不屬于.1.3.6.1.2.1.3.1.1.2的數據時,立即停止接收,此舉能夠大幅縮短數據讀取時間(經測試在華為5700系列交換機上,接收IP-MAC映射數據僅耗時約1秒,而接收所有數據將耗時數十秒)。接收varBinds并判斷oid是否結束的示例寫法:

經過這一步處理,即可獲取IP-MAC映射列表,本文以列表形式輸出為例,此外也可以通過字典形式輸出,可以用于數據去重:

可以看出,每條數據的第一個元素為mib字符串,可以很容易地將IP數據分離出來,第二個成員即為MAC數據。這樣一來,可以得到IP-MAC數據的關系,進而通過dict或set等數據結構進行去重,將多個網關的ARP信息進行整合,即可得到局域網的整體ARP信息。

3.4 異步I/O加速

在交換機較多的場景中,若順序執行上述步驟,依次從每個交換機中獲取數據,可能會需要較長時間。Pysnmp還提供了異步I/O版本的UdpTransportTarget:

只需要將nextCmd中的第二個參數替換為這個asyncio版本的即可,之后就可以使用async/await聲明函數,并使用Python異步框架asyncio中的各種調度器異步執行了。經測試,使用同步函數獲取1臺交換機的ARP數據約耗時1秒,使用同步函數順序獲取10臺交換機數據越需要15秒,同步函數的耗時正比于交換機數量;而換用異步函數獲取10臺交換機約需要2秒,而交換機繼續增多的情況下,耗時也并未顯著增加。

4 結束語

本文介紹了使用Pysnmp獲取交換機IP-MAC映射數據的方法,可以方便地實現自動化準入管理。該方法依賴庫少,便于內網部署,對于交換機數量較多的大型局域網,可以使用異步I/O版本的函數,可以較大幅度地縮短函數的等待時間,是一種方便部署、性能優良的網絡管理方法。

【通聯編輯:梁書】

主站蜘蛛池模板: 二级特黄绝大片免费视频大片| 久久国产V一级毛多内射| 亚洲综合激情另类专区| 国产福利免费视频| 国产精品一区在线观看你懂的| 国产不卡国语在线| 欧洲熟妇精品视频| 视频一本大道香蕉久在线播放| 日韩在线永久免费播放| 欧美a在线看| 99re免费视频| 久久黄色一级片| 国产女人喷水视频| 日本一本在线视频| 久久五月视频| 91网址在线播放| 国产精品永久久久久| 国产精品视频第一专区| 亚洲日韩久久综合中文字幕| 国产精品尤物在线| 久久久精品久久久久三级| 精品国产美女福到在线直播| 97视频免费看| 亚洲欧美人成电影在线观看| 视频在线观看一区二区| 在线精品欧美日韩| 91青青草视频在线观看的| 久久综合伊人77777| 亚洲中久无码永久在线观看软件| 亚洲毛片在线看| 国产成人亚洲精品无码电影| 91青青草视频在线观看的| 欧美精品在线观看视频| www.国产福利| 亚洲国产日韩欧美在线| 精品视频在线观看你懂的一区| 精品视频第一页| 国产欧美日韩综合一区在线播放| 五月天久久综合| 美女亚洲一区| 99无码熟妇丰满人妻啪啪 | 国产免费怡红院视频| 欧美日韩第三页| 高清码无在线看| 国产精品自在在线午夜| 亚洲熟妇AV日韩熟妇在线| 91精品人妻一区二区| 亚洲国产成人自拍| 色婷婷成人| 日韩高清成人| 午夜无码一区二区三区| 亚洲成人高清在线观看| 激情六月丁香婷婷四房播| 久久精品66| 亚洲国产综合精品一区| 国产成人亚洲欧美激情| 99国产精品国产| 一级在线毛片| 在线国产资源| 无码丝袜人妻| 97一区二区在线播放| 欧美a级在线| 午夜老司机永久免费看片| 三区在线视频| 伊人久久久大香线蕉综合直播| 少妇极品熟妇人妻专区视频| 亚洲欧美日韩久久精品| 亚洲午夜片| 精品国产Av电影无码久久久| 99久久亚洲精品影院| 永久免费无码成人网站| 欧美精品在线观看视频| 国产欧美精品午夜在线播放| 国产一区二区三区免费| 国产超薄肉色丝袜网站| 日韩亚洲综合在线| 中文字幕色在线| av在线无码浏览| 91麻豆国产在线| 国产人人射| 国产特级毛片aaaaaa| 日韩福利视频导航|