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不為空,可以用于拋出異常或記錄交換設備級的錯誤日志;

snmp代理(snmpAgent)產生異常數據時,errorStatus不為空且errorIndex有用于指定錯誤所在的索引值,可以用于拋出異常或記錄交換機上報的異常數據。

若前三個變量均為空,則可以通過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版本的函數,可以較大幅度地縮短函數的等待時間,是一種方便部署、性能優良的網絡管理方法。

【通聯編輯:梁書】

主站蜘蛛池模板: 亚洲欧美日韩另类在线一| 黄色网站不卡无码| 毛片基地视频| 视频在线观看一区二区| 国产高清色视频免费看的网址| 国产午夜精品鲁丝片| 中文字幕无码av专区久久 | 成人在线观看不卡| 欧美国产精品拍自| 91精品国产麻豆国产自产在线| 青青国产视频| 不卡无码h在线观看| 狠狠色丁香婷婷综合| 亚洲天堂777| 国产九九精品视频| 亚洲AV无码久久精品色欲| 91麻豆国产视频| 日韩亚洲综合在线| 欧美成人国产| 狠狠色香婷婷久久亚洲精品| 一级全免费视频播放| 国产一区二区三区在线观看视频| 亚洲美女一区二区三区| 99这里只有精品免费视频| 免费人成视网站在线不卡| 91亚洲免费| 欧美国产在线看| 噜噜噜综合亚洲| 欧美国产日韩在线| 99热这里只有免费国产精品| 九九这里只有精品视频| 网友自拍视频精品区| 日本久久网站| 国产高清在线丝袜精品一区| 手机看片1024久久精品你懂的| 在线看片中文字幕| 亚洲一区二区三区国产精品| 欧美日本二区| 精品久久高清| 99久久国产综合精品2023| 亚洲av无码牛牛影视在线二区| 青青操视频免费观看| 亚洲成年人网| 精品久久高清| 久久公开视频| 天堂在线视频精品| 成人一级免费视频| 国产超薄肉色丝袜网站| 国产欧美性爱网| 91偷拍一区| 蜜臀AVWWW国产天堂| 亚洲人免费视频| 亚洲一区精品视频在线| 福利片91| 国产麻豆精品在线观看| 色噜噜综合网| 亚洲丝袜中文字幕| 国产成人亚洲无码淙合青草| 老司国产精品视频91| 日韩A∨精品日韩精品无码| 国产麻豆福利av在线播放| 免费观看成人久久网免费观看| 五月天天天色| 亚洲无码高清一区| 玖玖精品在线| 亚洲人成色77777在线观看| 国产福利大秀91| 欧美日韩国产在线播放| 在线欧美a| 久久亚洲国产一区二区| 91高清在线视频| 欧美精品在线视频观看| 国内精品久久久久久久久久影视| AV色爱天堂网| 国产福利在线免费观看| 97国产精品视频自在拍| 欧美a级完整在线观看| 黄色国产在线| 99久久精品视香蕉蕉| 99精品福利视频| 欧美三级日韩三级| 一区二区三区国产精品视频|